changeset 5649:d026b665014f

Actually obey POSIX rules in #'posix-string-match, don't ignore them. src/ChangeLog addition: 2012-04-25 Aidan Kehoe <kehoea@parhasard.net> * search.c (string_match_1): Actually use the POSIX argument here, pass it to compile_pattern(). Thank you for the bug report, Ilya Shlyakhter! tests/ChangeLog addition: 2012-04-25 Aidan Kehoe <kehoea@parhasard.net> * automated/regexp-tests.el: Check that #'posix-string-match actually returns the longest match; thank you Ilya Shlyakhter in jn1j8t$ujq$1@dough.gmane.org !
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 25 Apr 2012 20:25:33 +0100
parents 3f4a234f4672
children 7fa8667cdaa7 3df910176b6a
files src/ChangeLog src/search.c tests/ChangeLog tests/automated/regexp-tests.el
diffstat 4 files changed, 23 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Apr 21 18:58:28 2012 +0100
+++ b/src/ChangeLog	Wed Apr 25 20:25:33 2012 +0100
@@ -1,3 +1,9 @@
+2012-04-25  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* search.c (string_match_1): Actually use the POSIX argument here,
+	pass it to compile_pattern(). Thank you for the bug report, Ilya
+	Shlyakhter!
+
 2012-04-21  Aidan Kehoe  <kehoea@parhasard.net>
 
 	Support non-ASCII correctly in character classes ([:alnum:] and
--- a/src/search.c	Sat Apr 21 18:58:28 2012 +0100
+++ b/src/search.c	Wed Apr 25 20:25:33 2012 +0100
@@ -419,7 +419,7 @@
 
 static Lisp_Object
 string_match_1 (Lisp_Object regexp, Lisp_Object string, Lisp_Object start,
-		struct buffer *buf, int UNUSED (posix))
+		struct buffer *buf, int posix)
 {
   Bytecount val;
   Charcount s;
@@ -450,7 +450,7 @@
   bufp = compile_pattern (regexp, &search_regs,
 			  (!NILP (buf->case_fold_search)
 			   ? XCASE_TABLE_DOWNCASE (buf->case_table) : Qnil),
-			  string, buf, 0, ERROR_ME);
+			  string, buf, posix, ERROR_ME);
   QUIT;
   {
     Bytecount bis = string_index_char_to_byte (string, s);
--- a/tests/ChangeLog	Sat Apr 21 18:58:28 2012 +0100
+++ b/tests/ChangeLog	Wed Apr 25 20:25:33 2012 +0100
@@ -1,3 +1,9 @@
+2012-04-25  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* automated/regexp-tests.el: Check that #'posix-string-match
+	actually returns the longest match; thank you Ilya Shlyakhter in
+	jn1j8t$ujq$1@dough.gmane.org !
+
 2012-04-21  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* automated/regexp-tests.el:
--- a/tests/automated/regexp-tests.el	Sat Apr 21 18:58:28 2012 +0100
+++ b/tests/automated/regexp-tests.el	Wed Apr 25 20:25:33 2012 +0100
@@ -69,6 +69,15 @@
   (Assert (string-match "Ä" "Ä"))
   (Assert (not (string-match "Ä" "ä"))))
 
+;; Is posix-string-match passing the POSIX flag correctly?
+
+(Assert
+ (equal 
+  (save-match-data
+    (progn (posix-string-match "i\\|ii" "ii") (match-data)))
+  '(0 2))
+ "checking #'posix-string-match actually returns the longest match"))
+
 ;; looking-at
 (with-temp-buffer
   (insert "äÄ")