summaryrefslogtreecommitdiffstats
path: root/modules/charset/escape_status.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/charset/escape_status.go')
-rw-r--r--modules/charset/escape_status.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/modules/charset/escape_status.go b/modules/charset/escape_status.go
new file mode 100644
index 0000000..37b6ad8
--- /dev/null
+++ b/modules/charset/escape_status.go
@@ -0,0 +1,27 @@
+// Copyright 2021 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package charset
+
+// EscapeStatus represents the findings of the unicode escaper
+type EscapeStatus struct {
+ Escaped bool
+ HasError bool
+ HasBadRunes bool
+ HasInvisible bool
+ HasAmbiguous bool
+}
+
+// Or combines two EscapeStatus structs into one representing the conjunction of the two
+func (status *EscapeStatus) Or(other *EscapeStatus) *EscapeStatus {
+ st := status
+ if status == nil {
+ st = &EscapeStatus{}
+ }
+ st.Escaped = st.Escaped || other.Escaped
+ st.HasError = st.HasError || other.HasError
+ st.HasBadRunes = st.HasBadRunes || other.HasBadRunes
+ st.HasAmbiguous = st.HasAmbiguous || other.HasAmbiguous
+ st.HasInvisible = st.HasInvisible || other.HasInvisible
+ return st
+}