*** /home/lh/cvsroot/emacs/lisp/subr.el 2006-06-13 12:37:24.000000000 +0200 --- subr.el 2006-06-21 18:44:11.200360589 +0200 *************** *** 2615,2620 **** --- 2615,2642 ---- ;;;; Replacement in strings. + (defconst string-strip-default-white-space "[ \f\t\n\r\v]*" + "The default value of white-space for `string-strip'. + A regexp matching strings of white space.") + + (defun string-strip (string &optional white-space) + "Remove leading and trailing WHITE-SPACE from STRING. + If WHITE-SPACE is non-nil, it should be a regular expression matching white + space. If nil it defaults to `string-strip-default-white-space', normally + \"[ \\f\\t\\n\\r\\v]*\". + + Examples: + (string-strip \" foo \") => \"foo\" + (string-strip \" foo\\nbar\\n \") => \"foo\\nbar\" + (string-strip \" \") => \"\" + " + (let ((ws (or white-space string-strip-default-white-space))) + (save-match-data + (string-match + (concat "\\`\\(?:" ws "\\)\\(\\(?:.\\|\n\\)*?\\)\\(?:" ws "\\)\\'") + string) + (match-string 1 string)))) + (defun subst-char-in-string (fromchar tochar string &optional inplace) "Replace FROMCHAR with TOCHAR in STRING each time it occurs. Unless optional argument INPLACE is non-nil, return a new string."