aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2019-10-04 14:38:22 -0700
committerPaul Eggert2019-10-04 14:40:29 -0700
commit8023715cf18d0b9e48fd0a4a72e4455edaa89813 (patch)
treecb278e441b88dcf864e54d44286a10085431dc75
parent81c7f3afb34c28972d80c7d45a47903571f2b59d (diff)
downloademacs-8023715cf18d0b9e48fd0a4a72e4455edaa89813.tar.gz
emacs-8023715cf18d0b9e48fd0a4a72e4455edaa89813.zip
Fix bugs found by 2019-09-29 regexp scanner
Problems reported by Mattias Engdegård in: https://lists.gnu.org/r/emacs-devel/2019-09/threads.html * lisp/calendar/iso8601.el (iso8601--year-match) (iso8601--full-date-match, iso8601--without-day-match) (iso8601--week-date-match, iso8601--ordinal-date-match) (iso8601--zone-match): * lisp/textmodes/rst.el (rst-re-alist-def): Put ‘-’ at the end of bracketed ranges, following the style suggestion in the Elisp manual. (iso8601--time-match): Use \([0-9]*\) instead of \([0-9]+\)? to pacify the regexp scanner. (iso8601-parse-time): Adjust accordingly. * lisp/language/burmese.el (burmese-composable-pattern): * lisp/language/indian.el (devanagari-composable-pattern) (bengali-composable-pattern, gurmukhi-composable-pattern) (gujarati-composable-pattern, oriya-composable-pattern) (telugu-composable-pattern, kannada-composable-pattern) (malayalam-composable-pattern): Prefer [ab] to [a-b] when the characters differ by 1, to pacify the regexp scanner. * lisp/language/burmese.el (burmese-composable-pattern): Fix missing-‘\u’ typos. * lisp/language/indian.el (gurmukhi-composable-pattern): Fix missing-‘\’ typo. * lisp/language/tibetan.el (tibetan-regexp): Quote ‘+’ in regexp to pacify the regexp scanner. Simplify. * lisp/textmodes/rst.el (rst-re-alist-def): Fix ‘[]-'...]’ typo by putting the ‘-’ at end of the bracketed expression.
-rw-r--r--lisp/calendar/iso8601.el18
-rw-r--r--lisp/language/burmese.el4
-rw-r--r--lisp/language/indian.el58
-rw-r--r--lisp/language/tibetan.el23
-rw-r--r--lisp/textmodes/rst.el8
5 files changed, 54 insertions, 57 deletions
diff --git a/lisp/calendar/iso8601.el b/lisp/calendar/iso8601.el
index 3ff91d910c7..78a94d47be2 100644
--- a/lisp/calendar/iso8601.el
+++ b/lisp/calendar/iso8601.el
@@ -62,17 +62,17 @@
62 regexps "\\|")) 62 regexps "\\|"))
63 63
64(defconst iso8601--year-match 64(defconst iso8601--year-match
65 "\\([-+]\\)?\\([0-9][0-9][0-9][0-9]\\)") 65 "\\([+-]\\)?\\([0-9][0-9][0-9][0-9]\\)")
66(defconst iso8601--full-date-match 66(defconst iso8601--full-date-match
67 "\\([-+]\\)?\\([0-9][0-9][0-9][0-9]\\)-?\\([0-9][0-9]\\)-?\\([0-9][0-9]\\)") 67 "\\([+-]\\)?\\([0-9][0-9][0-9][0-9]\\)-?\\([0-9][0-9]\\)-?\\([0-9][0-9]\\)")
68(defconst iso8601--without-day-match 68(defconst iso8601--without-day-match
69 "\\([-+]\\)?\\([0-9][0-9][0-9][0-9]\\)-\\([0-9][0-9]\\)") 69 "\\([+-]\\)?\\([0-9][0-9][0-9][0-9]\\)-\\([0-9][0-9]\\)")
70(defconst iso8601--outdated-date-match 70(defconst iso8601--outdated-date-match
71 "--\\([0-9][0-9]\\)-?\\([0-9][0-9]\\)") 71 "--\\([0-9][0-9]\\)-?\\([0-9][0-9]\\)")
72(defconst iso8601--week-date-match 72(defconst iso8601--week-date-match
73 "\\([-+]\\)?\\([0-9][0-9][0-9][0-9]\\)-?W\\([0-9][0-9]\\)-?\\([0-9]\\)?") 73 "\\([+-]\\)?\\([0-9][0-9][0-9][0-9]\\)-?W\\([0-9][0-9]\\)-?\\([0-9]\\)?")
74(defconst iso8601--ordinal-date-match 74(defconst iso8601--ordinal-date-match
75 "\\([-+]\\)?\\([0-9][0-9][0-9][0-9]\\)-?\\([0-9][0-9][0-9]\\)") 75 "\\([+-]\\)?\\([0-9][0-9][0-9][0-9]\\)-?\\([0-9][0-9][0-9]\\)")
76(defconst iso8601--date-match 76(defconst iso8601--date-match
77 (iso8601--concat-regexps 77 (iso8601--concat-regexps
78 (list iso8601--year-match 78 (list iso8601--year-match
@@ -83,10 +83,10 @@
83 iso8601--ordinal-date-match))) 83 iso8601--ordinal-date-match)))
84 84
85(defconst iso8601--time-match 85(defconst iso8601--time-match
86 "\\([0-9][0-9]\\):?\\([0-9][0-9]\\)?:?\\([0-9][0-9]\\)?[.,]?\\([0-9]+\\)?") 86 "\\([0-9][0-9]\\):?\\([0-9][0-9]\\)?:?\\([0-9][0-9]\\)?[.,]?\\([0-9]*\\)")
87 87
88(defconst iso8601--zone-match 88(defconst iso8601--zone-match
89 "\\(Z\\|\\([-+]\\)\\([0-9][0-9]\\):?\\([0-9][0-9]\\)?\\)") 89 "\\(Z\\|\\([+-]\\)\\([0-9][0-9]\\):?\\([0-9][0-9]\\)?\\)")
90 90
91(defconst iso8601--full-time-match 91(defconst iso8601--full-time-match
92 (concat "\\(" (replace-regexp-in-string "(" "(?:" iso8601--time-match) "\\)" 92 (concat "\\(" (replace-regexp-in-string "(" "(?:" iso8601--time-match) "\\)"
@@ -142,7 +142,7 @@ See `decode-time' for the meaning of FORM."
142(defun iso8601-parse-date (string) 142(defun iso8601-parse-date (string)
143 "Parse STRING (in ISO 8601 format) and return a `decode-time' value." 143 "Parse STRING (in ISO 8601 format) and return a `decode-time' value."
144 (cond 144 (cond
145 ;; Just a year: [-+]YYYY. 145 ;; Just a year: [+-]YYYY.
146 ((iso8601--match iso8601--year-match string) 146 ((iso8601--match iso8601--year-match string)
147 (iso8601--decoded-time 147 (iso8601--decoded-time
148 :year (iso8601--adjust-year (match-string 1 string) 148 :year (iso8601--adjust-year (match-string 1 string)
@@ -236,7 +236,7 @@ See `decode-time' for the meaning of FORM."
236 (string-to-number (match-string 2 time)))) 236 (string-to-number (match-string 2 time))))
237 (second (and (match-string 3 time) 237 (second (and (match-string 3 time)
238 (string-to-number (match-string 3 time)))) 238 (string-to-number (match-string 3 time))))
239 (fraction (and (match-string 4 time) 239 (fraction (and (not (zerop (length (match-string 4 time))))
240 (string-to-number (match-string 4 time))))) 240 (string-to-number (match-string 4 time)))))
241 (when (and fraction 241 (when (and fraction
242 (eq form t)) 242 (eq form t))
diff --git a/lisp/language/burmese.el b/lisp/language/burmese.el
index 25425ec4858..7f2a99a41a2 100644
--- a/lisp/language/burmese.el
+++ b/lisp/language/burmese.el
@@ -39,11 +39,11 @@
39(defvar burmese-composable-pattern 39(defvar burmese-composable-pattern
40 (let ((table 40 (let ((table
41 '(("K" . "[\u1004\u105A]\u103A\u1039") ; KINZI sequence 41 '(("K" . "[\u1004\u105A]\u103A\u1039") ; KINZI sequence
42 ("C" . "[\u1000-\u102A\u103F\u1041-\u1049\u104E\u105A-\u105D\u1061\u1065-\u1066\u106E\u1071\u1075\u1081\u108E\uAA60-\uAA6F\uAA71-\uAA76]") ; consonant and vowel letter 42 ("C" . "[\u1000-\u102A\u103F\u1041-\u1049\u104E\u105A-\u105D\u1061\u1065\u1066\u106E\u1071\u1075\u1081\u108E\uAA60-\uAA6F\uAA71-\uAA76]") ; consonant and vowel letter
43 ("V" . "\u1039") ; VIRAMA 43 ("V" . "\u1039") ; VIRAMA
44 ("A" . "\u103A") ; ASAT 44 ("A" . "\u103A") ; ASAT
45 ("S" . "[\u1000-\u1019\u101C\u101E\u1020\u1021\u105A]") ; subscript 45 ("S" . "[\u1000-\u1019\u101C\u101E\u1020\u1021\u105A]") ; subscript
46 ("M" . "[\u103B-\u103E\105E-\1060]") ; medial 46 ("M" . "[\u103B-\u103E\u105E-\u1060]") ; medial
47 ("v" . "[\u102B-\u103A\u103C-\u103E\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A\u109C\uAA70]"))) ; vowel sign, etc. 47 ("v" . "[\u102B-\u103A\u103C-\u103E\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A\u109C\uAA70]"))) ; vowel sign, etc.
48 (regexp "\\(K\\)?C\\(VS\\)?\\(VS\\)?A?M*v*")) 48 (regexp "\\(K\\)?C\\(VS\\)?\\(VS\\)?A?M*v*"))
49 (let ((case-fold-search nil)) 49 (let ((case-fold-search nil))
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index f1e61a354c2..4013faca7cb 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -139,14 +139,14 @@ South Indian language Malayalam is supported in this language environment."))
139 (let ((table 139 (let ((table
140 '(("a" . "[\u0900-\u0902]") ; vowel modifier (above) 140 '(("a" . "[\u0900-\u0902]") ; vowel modifier (above)
141 ("A" . "\u0903") ; vowel modifier (post) 141 ("A" . "\u0903") ; vowel modifier (post)
142 ("V" . "[\u0904-\u0914\u0960-\u0961\u0972]") ; independent vowel 142 ("V" . "[\u0904-\u0914\u0960\u0961\u0972]") ; independent vowel
143 ("C" . "[\u0915-\u0939\u0958-\u095F\u0979-\u097F]") ; consonant 143 ("C" . "[\u0915-\u0939\u0958-\u095F\u0979-\u097F]") ; consonant
144 ("R" . "\u0930") ; RA 144 ("R" . "\u0930") ; RA
145 ("n" . "\u093C") ; NUKTA 145 ("n" . "\u093C") ; NUKTA
146 ("v" . "[\u093E-\u094C\u094E\u0955\u0962-\u0963]") ; vowel sign 146 ("v" . "[\u093E-\u094C\u094E\u0955\u0962\u0963]") ; vowel sign
147 ("H" . "\u094D") ; HALANT 147 ("H" . "\u094D") ; HALANT
148 ("s" . "[\u0951-\u0952]") ; stress sign 148 ("s" . "[\u0951\u0952]") ; stress sign
149 ("t" . "[\u0953-\u0954]") ; accent 149 ("t" . "[\u0953\u0954]") ; accent
150 ("N" . "\u200C") ; ZWNJ 150 ("N" . "\u200C") ; ZWNJ
151 ("J" . "\u200D") ; ZWJ 151 ("J" . "\u200D") ; ZWJ
152 ("X" . "[\u0900-\u097F]")))) ; all coverage 152 ("X" . "[\u0900-\u097F]")))) ; all coverage
@@ -166,13 +166,13 @@ South Indian language Malayalam is supported in this language environment."))
166(defconst bengali-composable-pattern 166(defconst bengali-composable-pattern
167 (let ((table 167 (let ((table
168 '(("a" . "\u0981") ; SIGN CANDRABINDU 168 '(("a" . "\u0981") ; SIGN CANDRABINDU
169 ("A" . "[\u0982-\u0983]") ; SIGN ANUSVARA .. VISARGA 169 ("A" . "[\u0982\u0983]") ; SIGN ANUSVARA .. VISARGA
170 ("V" . "[\u0985-\u0994\u09E0-\u09E1]") ; independent vowel 170 ("V" . "[\u0985-\u0994\u09E0\u09E1]") ; independent vowel
171 ("C" . "[\u0995-\u09B9\u09DC-\u09DF\u09F1]") ; consonant 171 ("C" . "[\u0995-\u09B9\u09DC-\u09DF\u09F1]") ; consonant
172 ("B" . "[\u09AC\u09AF-\u09B0\u09F0]") ; BA, YA, RA 172 ("B" . "[\u09AC\u09AF\u09B0\u09F0]") ; BA, YA, RA
173 ("R" . "[\u09B0\u09F0]") ; RA 173 ("R" . "[\u09B0\u09F0]") ; RA
174 ("n" . "\u09BC") ; NUKTA 174 ("n" . "\u09BC") ; NUKTA
175 ("v" . "[\u09BE-\u09CC\u09D7\u09E2-\u09E3]") ; vowel sign 175 ("v" . "[\u09BE-\u09CC\u09D7\u09E2\u09E3]") ; vowel sign
176 ("H" . "\u09CD") ; HALANT 176 ("H" . "\u09CD") ; HALANT
177 ("T" . "\u09CE") ; KHANDA TA 177 ("T" . "\u09CE") ; KHANDA TA
178 ("N" . "\u200C") ; ZWNJ 178 ("N" . "\u200C") ; ZWNJ
@@ -195,11 +195,11 @@ South Indian language Malayalam is supported in this language environment."))
195 195
196(defconst gurmukhi-composable-pattern 196(defconst gurmukhi-composable-pattern
197 (let ((table 197 (let ((table
198 '(("a" . "[\u0A01-\u0A02\u0A70]") ; SIGN ADAK BINDI .. BINDI, TIPPI 198 '(("a" . "[\u0A01\u0A02\u0A70]") ; SIGN ADAK BINDI .. BINDI, TIPPI
199 ("A" . "\u0A03") ; SIGN VISARGA 199 ("A" . "\u0A03") ; SIGN VISARGA
200 ("V" . "[\u0A05-\u0A14]") ; independent vowel 200 ("V" . "[\u0A05-\u0A14]") ; independent vowel
201 ("C" . "[\u0A15-\u0A39\u0A59-\u0A5E]") ; consonant 201 ("C" . "[\u0A15-\u0A39\u0A59-\u0A5E]") ; consonant
202 ("Y" . "[\u0A2F-u0A30\u0A35\u0A39]") ; YA, RA, VA, HA 202 ("Y" . "[\u0A2F-\u0A30\u0A35\u0A39]") ; YA, RA, VA, HA
203 ("n" . "\u0A3C") ; NUKTA 203 ("n" . "\u0A3C") ; NUKTA
204 ("v" . "[\u0A3E-\u0A4C]") ; vowel sign 204 ("v" . "[\u0A3E-\u0A4C]") ; vowel sign
205 ("H" . "\u0A4D") ; VIRAMA 205 ("H" . "\u0A4D") ; VIRAMA
@@ -221,13 +221,13 @@ South Indian language Malayalam is supported in this language environment."))
221 221
222(defconst gujarati-composable-pattern 222(defconst gujarati-composable-pattern
223 (let ((table 223 (let ((table
224 '(("a" . "[\u0A81-\u0A82]") ; SIGN CANDRABINDU .. ANUSVARA 224 '(("a" . "[\u0A81\u0A82]") ; SIGN CANDRABINDU .. ANUSVARA
225 ("A" . "\u0A83") ; SIGN VISARGA 225 ("A" . "\u0A83") ; SIGN VISARGA
226 ("V" . "[\u0A85-\u0A94\u0AE0-\u0AE1]") ; independent vowel 226 ("V" . "[\u0A85-\u0A94\u0AE0\u0AE1]") ; independent vowel
227 ("C" . "[\u0A95-\u0AB9]") ; consonant 227 ("C" . "[\u0A95-\u0AB9]") ; consonant
228 ("R" . "\u0AB0") ; RA 228 ("R" . "\u0AB0") ; RA
229 ("n" . "\u0ABC") ; NUKTA 229 ("n" . "\u0ABC") ; NUKTA
230 ("v" . "[\u0ABE-\u0ACC\u0AE2-\u0AE3]") ; vowel sign 230 ("v" . "[\u0ABE-\u0ACC\u0AE2\u0AE3]") ; vowel sign
231 ("H" . "\u0ACD") ; VIRAMA 231 ("H" . "\u0ACD") ; VIRAMA
232 ("N" . "\u200C") ; ZWNJ 232 ("N" . "\u200C") ; ZWNJ
233 ("J" . "\u200D") ; ZWJ 233 ("J" . "\u200D") ; ZWJ
@@ -248,13 +248,13 @@ South Indian language Malayalam is supported in this language environment."))
248(defconst oriya-composable-pattern 248(defconst oriya-composable-pattern
249 (let ((table 249 (let ((table
250 '(("a" . "\u0B01") ; SIGN CANDRABINDU 250 '(("a" . "\u0B01") ; SIGN CANDRABINDU
251 ("A" . "[\u0B02-\u0B03]") ; SIGN ANUSVARA .. VISARGA 251 ("A" . "[\u0B02\u0B03]") ; SIGN ANUSVARA .. VISARGA
252 ("V" . "[\u0B05-\u0B14\u0B60-\u0B61]") ; independent vowel 252 ("V" . "[\u0B05-\u0B14\u0B60\u0B61]") ; independent vowel
253 ("C" . "[\u0B15-\u0B39\u0B5C-\u0B5D\u0B71]") ; consonant 253 ("C" . "[\u0B15-\u0B39\u0B5C\u0B5D\u0B71]") ; consonant
254 ("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23-\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38-\u0B39]") ; consonant with below form 254 ("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38\u0B39]") ; consonant with below form
255 ("R" . "\u0B30") ; RA 255 ("R" . "\u0B30") ; RA
256 ("n" . "\u0B3C") ; NUKTA 256 ("n" . "\u0B3C") ; NUKTA
257 ("v" . "[\u0B3E-\u0B4C\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign 257 ("v" . "[\u0B3E-\u0B4C\u0B56\u0B57\u0B62\u0B63]") ; vowel sign
258 ("H" . "\u0B4D") ; VIRAMA 258 ("H" . "\u0B4D") ; VIRAMA
259 ("N" . "\u200C") ; ZWNJ 259 ("N" . "\u200C") ; ZWNJ
260 ("J" . "\u200D") ; ZWJ 260 ("J" . "\u200D") ; ZWJ
@@ -296,9 +296,9 @@ South Indian language Malayalam is supported in this language environment."))
296(defconst telugu-composable-pattern 296(defconst telugu-composable-pattern
297 (let ((table 297 (let ((table
298 '(("a" . "[\u0C01-\u0C03]") ; SIGN CANDRABINDU .. VISARGA 298 '(("a" . "[\u0C01-\u0C03]") ; SIGN CANDRABINDU .. VISARGA
299 ("V" . "[\u0C05-\u0C14\u0C60-\u0C61]") ; independent vowel 299 ("V" . "[\u0C05-\u0C14\u0C60\u0C61]") ; independent vowel
300 ("C" . "[\u0C15-\u0C39\u0C58-\u0C59]") ; consonant 300 ("C" . "[\u0C15-\u0C39\u0C58\u0C59]") ; consonant
301 ("v" . "[\u0C3E-\u0C4C\u0C55-\u0C56\u0C62-\u0C63]") ; vowel sign 301 ("v" . "[\u0C3E-\u0C4C\u0C55\u0C56\u0C62\u0C63]") ; vowel sign
302 ("H" . "\u0C4D") ; VIRAMA 302 ("H" . "\u0C4D") ; VIRAMA
303 ("N" . "\u200C") ; ZWNJ 303 ("N" . "\u200C") ; ZWNJ
304 ("J" . "\u200D") ; ZWJ 304 ("J" . "\u200D") ; ZWJ
@@ -318,12 +318,12 @@ South Indian language Malayalam is supported in this language environment."))
318 318
319(defconst kannada-composable-pattern 319(defconst kannada-composable-pattern
320 (let ((table 320 (let ((table
321 '(("A" . "[\u0C82-\u0C83]") ; SIGN ANUSVARA .. VISARGA 321 '(("A" . "[\u0C82\u0C83]") ; SIGN ANUSVARA .. VISARGA
322 ("V" . "[\u0C85-\u0C94\u0CE0-\u0CE1]") ; independent vowel 322 ("V" . "[\u0C85-\u0C94\u0CE0\u0CE1]") ; independent vowel
323 ("C" . "[\u0C95-\u0CB9\u0CDE]") ; consonant 323 ("C" . "[\u0C95-\u0CB9\u0CDE]") ; consonant
324 ("R" . "\u0CB0") ; RA 324 ("R" . "\u0CB0") ; RA
325 ("n" . "\u0CBC") ; NUKTA 325 ("n" . "\u0CBC") ; NUKTA
326 ("v" . "[\u0CBE-\u0CCC\u0CD5-\u0CD6\u0CE2-\u0CE3]") ; vowel sign 326 ("v" . "[\u0CBE-\u0CCC\u0CD5\u0CD6\u0CE2\u0CE3]") ; vowel sign
327 ("H" . "\u0CCD") ; VIRAMA 327 ("H" . "\u0CCD") ; VIRAMA
328 ("N" . "\u200C") ; ZWNJ 328 ("N" . "\u200C") ; ZWNJ
329 ("J" . "\u200D") ; ZWJ 329 ("J" . "\u200D") ; ZWJ
@@ -343,11 +343,11 @@ South Indian language Malayalam is supported in this language environment."))
343 343
344(defconst malayalam-composable-pattern 344(defconst malayalam-composable-pattern
345 (let ((table 345 (let ((table
346 '(("A" . "[\u0D02-\u0D03]") ; SIGN ANUSVARA .. VISARGA 346 '(("A" . "[\u0D02\u0D03]") ; SIGN ANUSVARA .. VISARGA
347 ("V" . "[\u0D05-\u0D14\u0D60-\u0D61]") ; independent vowel 347 ("V" . "[\u0D05-\u0D14\u0D60\u0D61]") ; independent vowel
348 ("C" . "[\u0D15-\u0D39]") ; consonant 348 ("C" . "[\u0D15-\u0D39]") ; consonant
349 ("Y" . "[\u0D2F-\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA 349 ("Y" . "[\u0D2F\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA
350 ("v" . "[\u0D3E-\u0D4C\u0D57\u0D62-\u0D63]") ; postbase matra 350 ("v" . "[\u0D3E-\u0D4C\u0D57\u0D62\u0D63]") ; postbase matra
351 ("H" . "\u0D4D") ; SIGN VIRAMA 351 ("H" . "\u0D4D") ; SIGN VIRAMA
352 ("N" . "\u200C") ; ZWNJ 352 ("N" . "\u200C") ; ZWNJ
353 ("J" . "\u200D") ; ZWJ 353 ("J" . "\u200D") ; ZWJ
diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el
index 4be25cecab9..b42a1e8fb80 100644
--- a/lisp/language/tibetan.el
+++ b/lisp/language/tibetan.el
@@ -549,19 +549,16 @@
549 ("སྨ" . ""))) 549 ("སྨ" . "")))
550 550
551(defconst tibetan-regexp 551(defconst tibetan-regexp
552 (let ((l (list tibetan-precomposed-transcription-alist 552 (let (pattern)
553 tibetan-consonant-transcription-alist 553 (dolist (alist (list tibetan-precomposed-transcription-alist
554 tibetan-vowel-transcription-alist 554 tibetan-consonant-transcription-alist
555 tibetan-modifier-transcription-alist 555 tibetan-vowel-transcription-alist
556 tibetan-subjoined-transcription-alist)) 556 tibetan-modifier-transcription-alist
557 (separator "\\|") 557 tibetan-subjoined-transcription-alist)
558 tail pattern) 558 (apply #'concat (nreverse (cdr pattern))))
559 (while l 559 (dolist (key-val alist)
560 (setq tail (car l) l (cdr l)) 560 (setq pattern (cons "\\|" (cons (regexp-quote (car key-val))
561 (while tail 561 pattern))))))
562 (setq pattern (cons separator (cons (car (car tail)) pattern))
563 tail (cdr tail))))
564 (apply 'concat (nreverse (cdr pattern))))
565 "Regexp matching a Tibetan transcription of a composable Tibetan sequence. 562 "Regexp matching a Tibetan transcription of a composable Tibetan sequence.
566The result of matching is to be used for indexing alists at conversion 563The result of matching is to be used for indexing alists at conversion
567from a roman transcription to the corresponding Tibetan character.") 564from a roman transcription to the corresponding Tibetan character.")
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index 88c44c06da0..b7438fbb109 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -388,8 +388,8 @@ in parentheses follows the development revision and the time stamp.")
388 ; item tag. 388 ; item tag.
389 389
390 ;; Inline markup (`ilm') 390 ;; Inline markup (`ilm')
391 (ilm-pfx (:alt "^" hws-prt "[-'\"([{<‘“«’/:]")) 391 (ilm-pfx (:alt "^" hws-prt "['\"([{<‘“«’/:-]"))
392 (ilm-sfx (:alt "$" hws-prt "[]-'\")}>’”»/:.,;!?\\]")) 392 (ilm-sfx (:alt "$" hws-prt "[]'\")}>’”»/:.,;!?\\-]"))
393 393
394 ;; Inline markup content (`ilc') 394 ;; Inline markup content (`ilc')
395 (ilcsgl-tag "\\S ") ; A single non-white character. 395 (ilcsgl-tag "\\S ") ; A single non-white character.
@@ -431,7 +431,7 @@ in parentheses follows the development revision and the time stamp.")
431 (fld-tag ":" fldnam-tag ":") ; A field marker. 431 (fld-tag ":" fldnam-tag ":") ; A field marker.
432 432
433 ;; Options (`opt') 433 ;; Options (`opt')
434 (optsta-tag (:alt "[-+/]" "--")) ; Start of an option. 434 (optsta-tag (:alt "[+/-]" "--")) ; Start of an option.
435 (optnam-tag "\\sw" (:alt "-" "\\sw") "*") ; Name of an option. 435 (optnam-tag "\\sw" (:alt "-" "\\sw") "*") ; Name of an option.
436 (optarg-tag (:shy "[ =]\\S +")) ; Option argument. 436 (optarg-tag (:shy "[ =]\\S +")) ; Option argument.
437 (optsep-tag (:shy "," hws-prt)) ; Separator between options. 437 (optsep-tag (:shy "," hws-prt)) ; Separator between options.
@@ -457,7 +457,7 @@ in parentheses follows the development revision and the time stamp.")
457 ; tag. 457 ; tag.
458 458
459 ;; Symbol (`sym') 459 ;; Symbol (`sym')
460 (sym-prt "[-+.:_]") ; Non-word part of a symbol. 460 (sym-prt "[+.:_-]") ; Non-word part of a symbol.
461 (sym-tag (:shy "\\sw+" (:shy sym-prt "\\sw+") "*")) 461 (sym-tag (:shy "\\sw+" (:shy sym-prt "\\sw+") "*"))
462 462
463 ;; URIs (`uri') 463 ;; URIs (`uri')