(gnus-revision-number): Increment to 17.
[elisp/gnus.git-] / lisp / smiley.el
index cabebf0..842a037 100644 (file)
     ("\\(\\^_?\\^\\)\\W" 1 "WideFaceSmile.xbm")
     ("\\(;_;\\)\\W" 1 "WideFaceWeep.xbm")
     ("\\(T_T\\)\\W" 1 "WideFaceWeep.xbm")
-    ("\\(:-*[<«]+\\)\\W" 1 "FaceAngry.xpm")
+    ("\\(:-*[<\e(I+\e(B]+\\)\\W" 1 "FaceAngry.xpm")
     ("\\(:-+\\]+\\)\\W" 1 "FaceGoofy.xpm")
     ("\\(:-*D\\)\\W" 1 "FaceGrinning.xpm")
-    ("\\(:-*[)>}»]+\\)\\W" 1 "FaceHappy.xpm")
-    ("\\(=[)>»]+\\)\\W" 1 "FaceHappy.xpm")
+    ("\\(:-*[)>}\e(I;\e(B]+\\)\\W" 1 "FaceHappy.xpm")
+    ("\\(=[)>\e(I;\e(B]+\\)\\W" 1 "FaceHappy.xpm")
     ("\\(:-*[/\\\"]\\)[^/]\\W" 1 "FaceIronic.xpm")
     ("\\([8|]-*[|Oo%]\\)\\W" 1 "FaceKOed.xpm")
     ("\\([:|]-*#+\\)\\W" 1 "FaceNyah.xpm")
@@ -73,8 +73,8 @@
     ("\\(:-*|\\)\\W" 1 "FaceStraight.xpm")
     ("\\(:-*p\\)\\W" 1 "FaceTalking.xpm")
     ("\\(:-*d\\)\\W" 1 "FaceTasty.xpm")
-    ("\\(;-*[>)}»]+\\)\\W" 1 "FaceWinking.xpm")
-    ("\\(:-*[Vvµ]\\)\\W" 1 "FaceWry.xpm")
+    ("\\(;-*[>)}\e(I;\e(B]+\\)\\W" 1 "FaceWinking.xpm")
+    ("\\(:-*[Vv\e(I5\e(B]\\)\\W" 1 "FaceWry.xpm")
     ("\\([:|]-*P\\)\\W" 1 "FaceYukky.xpm"))
   "*Normal and deformed faces for smilies."
   :type '(repeat (list regexp
   :group 'smiley)
 
 (defcustom smiley-nosey-regexp-alist
-  '(("\\(:-+[<«]+\\)\\W" 1 "FaceAngry.xpm")
+  '(("\\(:-+[<\e(I+\e(B]+\\)\\W" 1 "FaceAngry.xpm")
     ("\\(:-+\\]+\\)\\W" 1 "FaceGoofy.xpm")
     ("\\(:-+D\\)\\W" 1 "FaceGrinning.xpm")
-    ("\\(:-+[}»]+\\)\\W" 1 "FaceHappy.xpm")
+    ("\\(:-+[}\e(I;\e(B]+\\)\\W" 1 "FaceHappy.xpm")
     ("\\(:-*)+\\)\\W" 1 "FaceHappy.xpm")
-    ("\\(=[)>]+\\)\\W" 1 "FaceHappy.xpm")
+    ("\\(=[)]+\\)\\W" 1 "FaceHappy.xpm")
     ("\\(:-+[/\\\"]+\\)\\W" 1 "FaceIronic.xpm")
     ("\\([8|]-+[|Oo%]\\)\\W" 1 "FaceKOed.xpm")
     ("\\([:|]-+#+\\)\\W" 1 "FaceNyah.xpm")
@@ -98,8 +98,8 @@
     ("\\(:-+|\\)\\W" 1 "FaceStraight.xpm")
     ("\\(:-+p\\)\\W" 1 "FaceTalking.xpm")
     ("\\(:-+d\\)\\W" 1 "FaceTasty.xpm")
-    ("\\(;-+[>)}»]+\\)\\W" 1 "FaceWinking.xpm")
-    ("\\(:-+[Vvµ]\\)\\W" 1 "FaceWry.xpm")
+    ("\\(;-+[>)}\e(I;\e(B]+\\)\\W" 1 "FaceWinking.xpm")
+    ("\\(:-+[Vv\e(I5\e(B]\\)\\W" 1 "FaceWry.xpm")
     ("\\(][:8B]-[)>]\\)\\W" 1 "FaceDevilish.xpm")
     ("\\([:|]-+P\\)\\W" 1 "FaceYukky.xpm"))
   "*Smileys with noses.  These get less false matches."
@@ -255,8 +255,13 @@ above them."
          (while (re-search-forward regexp nd t)
            (let* ((start (match-beginning group))
                   (end (match-end group))
-                  (glyph (smiley-create-glyph (buffer-substring start end)
-                                              file)))
+                  (glyph
+                   (and (or (eq start 1)
+                            (not (string-match "\\(\\^\\|;\\|_\\);)" 
+                                               (buffer-substring 
+                                                (1- start) (+ start 2)))))
+                        (smiley-create-glyph (buffer-substring start end)
+                                             file))))
              (when glyph
                (mapcar 'delete-annotation (annotations-at end))
                (let ((ext (make-extent start end))
@@ -309,11 +314,8 @@ Mouse button3 - menu"))
   (interactive)
   (save-excursion
     (set-buffer gnus-article-buffer)
-    (goto-char (point-min))
-    ;; We skip the headers.
-    (unless (search-forward "\n\n" nil t)
-      (goto-char (point-max)))
-    (smiley-buffer (current-buffer) (point))))
+    (article-goto-body)
+    (smiley-buffer (current-buffer) (point-min) (point-max))))
 
 (provide 'smiley)