Made sc-string-text to strip of text properties of buffer text, so string
authorSimon Marshall <simon@gnu.org>
Tue, 25 Apr 1995 08:27:28 +0000 (08:27 +0000)
committerSimon Marshall <simon@gnu.org>
Tue, 25 Apr 1995 08:27:28 +0000 (08:27 +0000)
comparison wouldn't fail in sc-mail-fetch-field and sc-mail-append-field.

lisp/mail/supercite.el

index a4d32d6..21b1308 100644 (file)
@@ -503,26 +503,37 @@ In version 18, the HISTORY argument is ignored."
       (read-string prompt initial-contents)
     (read-string prompt initial-contents)))
 
-(defun sc-submatch (matchnum &optional string)
-  "Returns `match-beginning' and `match-end' sub-expression for MATCHNUM.
+(if (fboundp 'match-string)
+    (defalias 'sc-submatch 'match-string)
+  (defun sc-submatch (matchnum &optional string)
+    "Returns `match-beginning' and `match-end' sub-expression for MATCHNUM.
 If optional STRING is provided, take sub-expression using `substring'
 of argument, otherwise use `buffer-substring' on current buffer.  Note
 that `match-data' must have already been generated and no error
 checking is performed by this function."
-  (if string
-      (substring string (match-beginning matchnum) (match-end matchnum))
-    (buffer-substring (match-beginning matchnum) (match-end matchnum))))
-
-(defun sc-member (elt list)
-  "Like `memq', but uses `equal' instead of `eq'.
+    (if string
+       (substring string (match-beginning matchnum) (match-end matchnum))
+      (buffer-substring (match-beginning matchnum) (match-end matchnum)))))
+
+(if (fboundp 'member)
+    (defalias 'sc-member 'member)
+  (defun sc-member (elt list)
+    "Like `memq', but uses `equal' instead of `eq'.
 Emacs19 has a builtin function `member' which does exactly this."
-  (catch 'elt-is-member
-    (while list
-      (if (equal elt (car list))
-         (throw 'elt-is-member list))
-      (setq list (cdr list)))))
-(and (memq 'v19 sc-emacs-features)
-     (fset 'sc-member 'member))
+    (catch 'elt-is-member
+      (while list
+       (if (equal elt (car list))
+           (throw 'elt-is-member list))
+       (setq list (cdr list))))))
+
+;; One day maybe Emacs will have this...
+(if (fboundp 'string-text)
+    (defalias 'sc-string-text 'string-text)
+  (defun sc-string-text (string)
+    "Return STRING with all text properties removed."
+    (let ((string (copy-sequence string)))
+      (set-text-properties 0 (length string) nil string)
+      string)))
 
 (defun sc-ask (alist)
   "Ask a question in the minibuffer requiring a single character answer.
@@ -645,8 +656,8 @@ the list should be unique."
 If optional ATTRIBS-P is non-nil, the key/value pair is placed in
 `sc-attributions' too."
   (if (string-match "^\\(\\S *\\)\\s *:\\s +\\(.*\\)$" curline)
-      (let* ((key (downcase (sc-submatch 1 curline)))
-            (val (sc-submatch 2 curline))
+      (let* ((key (downcase (sc-string-text (sc-submatch 1 curline))))
+            (val (sc-string-text (sc-submatch 2 curline)))
             (keyval (cons key val)))
        (setq sc-mail-info (cons keyval sc-mail-info))
        (if attribs-p
@@ -658,7 +669,8 @@ If optional ATTRIBS-P is non-nil, the key/value pair is placed in
   "Append a continuation line onto the last fetched mail field's info."
   (let ((keyval (car sc-mail-info)))
     (if (and keyval (string-match "^\\s *\\(.*\\)$" curline))
-       (setcdr keyval (concat (cdr keyval) " " (sc-submatch 1 curline)))))
+       (setcdr keyval (concat (cdr keyval) " "
+                              (sc-string-text (sc-submatch 1 curline))))))
   nil)
 
 (defun sc-mail-error-in-mail-field ()