-;; Notice the subtle differences in the regular expressions in the
-;; two alists below.
-
-(defcustom smiley-deformed-regexp-alist
- '(("\\(\\^_?\\^;;;\\)\\W" 1 "WideFaceAse3.xbm")
- ("\\(\\^_?\\^;;\\)\\W" 1 "WideFaceAse2.xbm")
- ("\\(\\^_?\\^;\\)\\W" 1 "WideFaceAse1.xbm")
- ("\\(\\^_?\\^\\)\\W" 1 "WideFaceSmile.xbm")
- ("\\(\\;_;\\)\\W" 1 "WideFaceWeep.xbm")
- ("\\(\\T_T\\)\\W" 1 "WideFaceWeep.xbm")
- ("\\(:-*[<«]+\\)\\W" 1 "FaceAngry.xpm")
- ("\\(:-+\\]+\\)\\W" 1 "FaceGoofy.xpm")
- ("\\(:-*D\\)\\W" 1 "FaceGrinning.xpm")
- ("\\(:-*[)>}»]+\\)\\W" 1 "FaceHappy.xpm")
- ("\\(:-*[/\\\"]\\)[^/]\\W" 1 "FaceIronic.xpm")
- ("\\([8|]-*[|Oo%]\\)\\W" 1 "FaceKOed.xpm")
- ("\\([:|]-*#+\\)\\W" 1 "FaceNyah.xpm")
- ("\\(:-*[({]+\\)\\W" 1 "FaceSad.xpm")
- ("\\(:-*[Oo\*]\\)\\W" 1 "FaceStartled.xpm")
- ("\\(:-*|\\)\\W" 1 "FaceStraight.xpm")
- ("\\(:-*p\\)\\W" 1 "FaceTalking.xpm")
- ("\\(:-*d\\)\\W" 1 "FaceTasty.xpm")
- ("\\(;-*[>)}»]+\\)\\W" 1 "FaceWinking.xpm")
- ("\\(:-*[Vvµ]\\)\\W" 1 "FaceWry.xpm")
- ("\\([:|]-*P\\)\\W" 1 "FaceYukky.xpm"))
- "Normal and deformed faces for smilies."
- :type '(repeat (list regexp
- (integer :tag "Match")
- (string :tag "Image")))
+;; For compatibility, honor the variable `smiley-data-directory' if the user
+;; has set it.
+
+(defun smiley-directory (&optional style)
+ "Return a the location of the smiley faces files.
+STYLE specifies which style to use, see `smiley-style'. If STYLE
+is nil, use `smiley-style'."
+ (unless style (setq style smiley-style))
+ (nnheader-find-etc-directory
+ (concat "images/smilies"
+ (cond ((eq smiley-style 'low-color) "")
+ ((eq smiley-style 'medium) "/medium")
+ ((eq smiley-style 'grayscale) "/grayscale")))))
+
+(defcustom smiley-data-directory (smiley-directory)
+ "*Location of the smiley faces files."
+ :set (lambda (symbol value)
+ (set-default symbol value)
+ (smiley-update-cache))
+ :initialize 'custom-initialize-default
+ :type 'directory