]> gitweb.michael.orlitzky.com - nagios-mode.git/commitdiff
Fixed regexp-word so that it treats newlines as word boundaries.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 13 Feb 2009 03:42:38 +0000 (22:42 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 13 Feb 2009 03:42:38 +0000 (22:42 -0500)
nagios-mode.el

index 98636881ccbee9b137f96caec2f9e51a832d0990..e1573345a61670b5fb8a9989d3abf622c367ecf4 100644 (file)
 ;; Regular Expression Transformations
 
 (defun regexp-word(regexp)
-  "Takes a regular expression as an argument, and adds the word boundary condition to the beginning and end of it."
+  "Takes a regular expression as an argument, and adds the word boundary condition to the beginning and end of it. Newlines are treated as word boundaries."
 
+  ;; This basically joins two expressions in an alternation.
+  ;; The first allows for a newline followed by our regexp (on
+  ;; a word boundary), and the second checks for any-non-word
+  ;; character followed by our regexp.
+  ;;
   ;; I consider neither a hyphen nor an underscore to be a word
-  ;; boundary for the purpose of syntax highlighting.
-  (concat "[^_-]\\<\\(" regexp "\\)\\>[^_-]")
+  ;; boundary for the purpose of syntax highlighting, so I stick
+  ;; the no-hyphens-or-underscores class on each end of the
+  ;; expressions.
+
+  (concat "\\("
+         (concat "\\(^\\<\\(" regexp "\\)\\>[^_-]\\)")
+         "\\|"
+         (concat "\\([^_-]\\<\\(" regexp "\\)\\>[^_-]\\)")
+         "\\)")
   )