X-Git-Url: http://gitweb.michael.orlitzky.com/?p=nagios-mode.git;a=blobdiff_plain;f=nagios-mode.el;h=22535b548e35f702ff835440fb144949ac53eed6;hp=722450edfd87130ce9d06762df9d8fdd568c7cc4;hb=f999f09ae6e3ce6ff8bce49cd40cab6248ca0360;hpb=b6e4bb9b453781905f9b81595a95fd87c045a079 diff --git a/nagios-mode.el b/nagios-mode.el index 722450e..22535b5 100644 --- a/nagios-mode.el +++ b/nagios-mode.el @@ -36,99 +36,182 @@ (defun nagios-indent-line(&optional flag) "Indents a line, taking nesting into account." + (interactive) (nagios-indent-to (nagios-calculate-indent)) ) +(defun beginning-of-line-pos() + ;; Return the point position corresponding to the beginning + ;; of the current line. + (save-excursion + (beginning-of-line) + (point) + ) +) + +(defun end-of-line-pos() + ;; Return the point position corresponding to the end + ;; of the current line. + (save-excursion + (end-of-line) + (point) + ) +) + +(defun point-offset() + ;; How far are we from the beginning of the line? + (- (point) (beginning-of-line-pos)) +) + +(defun first-char-offset() + ;; How far is the first character on this line + ;; from the beginning of the line? + (save-excursion + (beginning-of-line) + (skip-chars-forward " \t") + ) +) + +(defun first-char-pos() + ;; What's the position of the first character on this line? + (+ (beginning-of-line-pos) (first-char-offset)) +) (defun nagios-indent-to(indent-column) "Indent the current line to column indent-column." - (setq pos (point)) - (beginning-of-line) - (setq bol (point)) - (setq pos-offset (- pos bol)) + ;; Store the point in orig-pos. + (let ((orig-point (point))) + + ;; And store the offset of the first character (with respect to the + ;; beginning of the line) in orig-first-char-offset. + (let ((orig-first-char-offset (first-char-offset))) + + ;; Delete any leading whitespace, and move the point to the + ;; beginning of the line. + (delete-region (beginning-of-line-pos) (first-char-pos)) + (beginning-of-line) + + ;; Now insert indent-column spaces. + (let ((indent-remaining indent-column)) + (while (< 0 indent-remaining) + (insert " ") + (setq indent-remaining (- indent-remaining 1))) + ) + + ;; The text on the current line just moved left/right some amount; + ;; call it text-delta. We want to move the point that same distance. + (let ((text-delta (- (first-char-offset) orig-first-char-offset))) + (goto-char (+ orig-point text-delta)) + ) + + ;; The point should never wind up to the left of indent-column, so + ;; if it's there, move it over to indent-column. + (if (< (point-offset) indent-column) + (goto-char (+ (beginning-of-line-pos) indent-column)) + ) + ) + ) +) - (setq first-char-offset - (skip-chars-forward " \t")) - (setq first-char-pos - (+ bol first-char-offset)) - - (kill-region bol first-char-pos) - - (beginning-of-line) +(defun char-is-commented(pos) + "True if the character at position pos is commented, nil otherwise." + (save-excursion + (goto-char pos) + (re-search-backward "#" (beginning-of-line-pos) t) + ) +) - (setq pos-change (- indent-column first-char-offset)) - (setq pos-offset (+ pos-offset pos-change)) +(defun char-is-commented-and-valid(pos) + "True if the character at position pos is commented and non-nil. + Nil otherwise." + (if (eq nil pos) + nil + (char-is-commented pos) + ) +) - (if (<= pos-offset indent-column) - (setq pos-offset indent-column)) - - (while (< 0 indent-column) - (insert " ") - (setq indent-column (- indent-column 1))) - (goto-char (+ bol pos-offset)) +(defun last-opening-brace() + "Returns the position of the last opening brace, with + respect to the current point. Ignores braces which + are commented out." + (save-excursion + (let ((lob (re-search-backward "{" nil t))) - ) + (while (char-is-commented-and-valid lob) + (goto-char lob) + (setq lob (re-search-backward "{" nil t)) + ) + (if lob + lob + -1) + ) + ) +) -(defun nagios-in-block() - "Determine if the point is inside of a {} block." +(defun last-closing-brace() + "Get the position of the last closing brace, with + respect to the current point. Ignores braces which + are commented out." + (save-excursion + (let ((lcb (re-search-backward "}" nil t))) - (setq pos (point)) + (while (char-is-commented-and-valid lcb) + (goto-char lcb) + (setq lcb (re-search-backward "}" nil t)) + ) - ;; Get the position of the last opening and closing braces, with - ;; respect to the current point - (setq last-opening-brace (re-search-backward "{" nil t)) - (goto-char pos) - - (setq last-closing-brace (re-search-backward "}" nil t)) - (goto-char pos) + (if lcb + lcb + -1) + ) + ) +) - ;; If either is nil (not found) just set it to -1, so the comparison - ;; doesn't die. - (if (not last-opening-brace) - (setq last-opening-brace -1)) - - (if (not last-closing-brace) - (setq last-closing-brace -1)) +(defun nagios-in-block() + "Determine if the point is inside of a {} block." ;; If the last brace seen in the buffer is an opening brace, we're ;; in a block. Otherwise, we aren't. - (if (>= last-closing-brace last-opening-brace) + (if (>= (last-closing-brace) (last-opening-brace)) nil - t) - ) + t) +) + +(defun brace-on-line() + ;; Is there a curly brace on this line? + (save-excursion + (beginning-of-line) + (re-search-forward "[{}]" (end-of-line-pos) t) + ) +) (defun nagios-calculate-indent() "Calculate the level of indentation." - ;; We're either inside a block, or we aren't. - (setq indent 0) - - (if (nagios-in-block) - (setq indent nagios-indent-level)) - - (setq pos (point)) - (end-of-line) - (setq eol (point)) - (beginning-of-line) - (setq bol (point)) - - ;; Set the indentation level to 0 if we find either brace on this - ;; line. - (if (re-search-forward "[{}]" eol t) - (setq indent 0)) - - (goto-char pos) + ;; We're either inside a block, or we aren't. + ;; Initialize the indent variable to either nagios-indent-level + ;; or 0 depending on whether or not we're in a block. + (let ((indent (if (nagios-in-block) + nagios-indent-level + 0) + ) + ) - indent + ;; Set the indentation level to 0 if we find either brace on this + ;; line and. + (if (and (brace-on-line) (not (char-is-commented (brace-on-line)))) + 0 + indent + ) ) - +) ;; Keymaps @@ -153,26 +236,6 @@ -;; Regular Expression Transformations - -(defun regexp-alt-raw(element-list) - "Takes a list of elements, and returns the string '\\(element1\\|element2...\\)'" - - ;; This is necessary since regexp-opt does not accept regular - ;; expressions as arguments. We use regexp-opt when we can, of - ;; course. - - (let ((regexp "\\(")) - (mapcar (lambda(elem) - (setq regexp (concat regexp "\\(" elem "\\)" "\\|"))) - element-list) - (concat (substring regexp 0 -2) ; Cut the last "\\|" - "\\)") - ) - ) - - - (defconst nagios-directives (eval-when-compile (concat "^[ \t\r\n]*" @@ -212,448 +275,448 @@ (defconst nagios-macros (eval-when-compile - (regexp-alt-raw - '("\\$ADMINEMAIL\\$" - "\\$ADMINPAGER\\$" - "\\$ARG1\\$" - "\\$ARG10\\$" - "\\$ARG11\\$" - "\\$ARG12\\$" - "\\$ARG13\\$" - "\\$ARG14\\$" - "\\$ARG15\\$" - "\\$ARG16\\$" - "\\$ARG17\\$" - "\\$ARG18\\$" - "\\$ARG19\\$" - "\\$ARG2\\$" - "\\$ARG20\\$" - "\\$ARG21\\$" - "\\$ARG22\\$" - "\\$ARG23\\$" - "\\$ARG24\\$" - "\\$ARG25\\$" - "\\$ARG26\\$" - "\\$ARG27\\$" - "\\$ARG28\\$" - "\\$ARG29\\$" - "\\$ARG3\\$" - "\\$ARG30\\$" - "\\$ARG31\\$" - "\\$ARG32\\$" - "\\$ARG4\\$" - "\\$ARG5\\$" - "\\$ARG6\\$" - "\\$ARG7\\$" - "\\$ARG8\\$" - "\\$ARG9\\$" - "\\$COMMANDFILE\\$" - "\\$CONTACTALIAS\\$" - "\\$CONTACTEMAIL\\$" - "\\$CONTACTGROUPALIAS\\$" - "\\$CONTACTGROUPMEMBERS\\$" - "\\$CONTACTGROUPNAME\\$" - "\\$CONTACTGROUPNAMES\\$" - "\\$CONTACTNAME\\$" - "\\$CONTACTPAGER\\$" - "\\$DATE\\$" - "\\$EVENTSTARTTIME\\$" - "\\$HOSTACKAUTHOR\\$" - "\\$HOSTACKAUTHORALIAS\\$" - "\\$HOSTACKAUTHORNAME\\$" - "\\$HOSTACKCOMMENT\\$" - "\\$HOSTACTIONURL\\$" - "\\$HOSTADDRESS\\$" - "\\$HOSTALIAS\\$" - "\\$HOSTATTEMPT\\$" - "\\$HOSTCHECKCOMMAND\\$" - "\\$HOSTCHECKTYPE\\$" - "\\$HOSTDISPLAYNAME\\$" - "\\$HOSTDOWNTIME\\$" - "\\$HOSTDURATION\\$" - "\\$HOSTDURATIONSEC\\$" - "\\$HOSTEVENTID\\$" - "\\$HOSTEXECUTIONTIME\\$" - "\\$HOSTGROUPACTIONURL\\$" - "\\$HOSTGROUPALIAS\\$" - "\\$HOSTGROUPMEMBERS\\$" - "\\$HOSTGROUPNAME\\$" - "\\$HOSTGROUPNAMES\\$" - "\\$HOSTGROUPNOTES\\$" - "\\$HOSTGROUPNOTESURL\\$" - "\\$HOSTLATENCY\\$" - "\\$HOSTNAME\\$" - "\\$HOSTNOTES\\$" - "\\$HOSTNOTESURL\\$" - "\\$HOSTNOTIFICATIONID\\$" - "\\$HOSTNOTIFICATIONNUMBER\\$" - "\\$HOSTOUTPUT\\$" - "\\$HOSTPERCENTCHANGE\\$" - "\\$HOSTPERFDATA\\$" - "\\$HOSTPERFDATAFILE\\$" - "\\$HOSTPROBLEMID\\$" - "\\$HOSTSTATE\\$" - "\\$HOSTSTATEID\\$" - "\\$HOSTSTATETYPE\\$" - "\\$ISVALIDTIME\\$" - "\\$LASTHOSTCHECK\\$" - "\\$LASTHOSTDOWN\\$" - "\\$LASTHOSTEVENTID\\$" - "\\$LASTHOSTPROBLEMID\\$" - "\\$LASTHOSTSTATE\\$" - "\\$LASTHOSTSTATECHANGE\\$" - "\\$LASTHOSTSTATEID\\$" - "\\$LASTHOSTUNREACHABLE\\$" - "\\$LASTHOSTUP\\$" - "\\$LASTSERVICECHECK\\$" - "\\$LASTSERVICECRITICAL\\$" - "\\$LASTSERVICEEVENTID\\$" - "\\$LASTSERVICEOK\\$" - "\\$LASTSERVICEPROBLEMID\\$" - "\\$LASTSERVICESTATE\\$" - "\\$LASTSERVICESTATECHANGE\\$" - "\\$LASTSERVICESTATEID\\$" - "\\$LASTSERVICEUNKNOWN\\$" - "\\$LASTSERVICEWARNING\\$" - "\\$LOGFILE\\$" - "\\$LONGDATETIME\\$" - "\\$LONGHOSTOUTPUT\\$" - "\\$LONGSERVICEOUTPUT\\$" - "\\$MAINCONFIGFILE\\$" - "\\$MAXHOSTATTEMPTS\\$" - "\\$MAXSERVICEATTEMPTS\\$" - "\\$NEXTVALIDTIME\\$" - "\\$NOTIFICATIONAUTHOR\\$" - "\\$NOTIFICATIONAUTHORALIAS\\$" - "\\$NOTIFICATIONAUTHORNAME\\$" - "\\$NOTIFICATIONCOMMENT\\$" - "\\$NOTIFICATIONISESCALATED\\$" - "\\$NOTIFICATIONNUMBER\\$" - "\\$NOTIFICATIONRECIPIENTS\\$" - "\\$NOTIFICATIONTYPE\\$" - "\\$OBJECTCACHEFILE\\$" - "\\$PROCESSSTARTTIME\\$" - "\\$RESOURCEFILE\\$" - "\\$RETENTIONDATAFILE\\$" - "\\$SERVICEACKAUTHOR\\$" - "\\$SERVICEACKAUTHORALIAS\\$" - "\\$SERVICEACKAUTHORNAME\\$" - "\\$SERVICEACKCOMMENT\\$" - "\\$SERVICEACTIONURL\\$" - "\\$SERVICEATTEMPT\\$" - "\\$SERVICECHECKCOMMAND\\$" - "\\$SERVICECHECKTYPE\\$" - "\\$SERVICEDESC\\$" - "\\$SERVICEDISPLAYNAME\\$" - "\\$SERVICEDOWNTIME\\$" - "\\$SERVICEDURATION\\$" - "\\$SERVICEDURATIONSEC\\$" - "\\$SERVICEEVENTID\\$" - "\\$SERVICEEXECUTIONTIME\\$" - "\\$SERVICEGROUPACTIONURL\\$" - "\\$SERVICEGROUPALIAS\\$" - "\\$SERVICEGROUPMEMBERS\\$" - "\\$SERVICEGROUPNAME\\$" - "\\$SERVICEGROUPNAMES\\$" - "\\$SERVICEGROUPNOTES\\$" - "\\$SERVICEGROUPNOTESURL\\$" - "\\$SERVICEISVOLATILE\\$" - "\\$SERVICELATENCY\\$" - "\\$SERVICENOTES\\$" - "\\$SERVICENOTESURL\\$" - "\\$SERVICENOTIFICATIONID\\$" - "\\$SERVICENOTIFICATIONNUMBER\\$" - "\\$SERVICEOUTPUT\\$" - "\\$SERVICEPERCENTCHANGE\\$" - "\\$SERVICEPERFDATA\\$" - "\\$SERVICEPERFDATAFILE\\$" - "\\$SERVICEPROBLEMID\\$" - "\\$SERVICESTATE\\$" - "\\$SERVICESTATEID\\$" - "\\$SERVICESTATETYPE\\$" - "\\$SHORTDATETIME\\$" - "\\$STATUSDATAFILE\\$" - "\\$TEMPFILE\\$" - "\\$TEMPPATH\\$" - "\\$TIME\\$" - "\\$TIMET\\$" - "\\$TOTALHOSTPROBLEMS\\$" - "\\$TOTALHOSTPROBLEMSUNHANDLED\\$" - "\\$TOTALHOSTSDOWN\\$" - "\\$TOTALHOSTSDOWNUNHANDLED\\$" - "\\$TOTALHOSTSERVICES\\$" - "\\$TOTALHOSTSERVICESCRITICAL\\$" - "\\$TOTALHOSTSERVICESOK\\$" - "\\$TOTALHOSTSERVICESUNKNOWN\\$" - "\\$TOTALHOSTSERVICESWARNING\\$" - "\\$TOTALHOSTSUNREACHABLE\\$" - "\\$TOTALHOSTSUNREACHABLEUNHANDLED\\$" - "\\$TOTALHOSTSUP\\$" - "\\$TOTALSERVICEPROBLEMS\\$" - "\\$TOTALSERVICEPROBLEMSUNHANDLED\\$" - "\\$TOTALSERVICESCRITICAL\\$" - "\\$TOTALSERVICESCRITICALUNHANDLED\\$" - "\\$TOTALSERVICESOK\\$" - "\\$TOTALSERVICESUNKNOWN\\$" - "\\$TOTALSERVICESUNKNOWNUNHANDLED\\$" - "\\$TOTALSERVICESWARNING\\$" - "\\$TOTALSERVICESWARNINGUNHANDLED\\$" - "\\$USER1\\$" - "\\$USER10\\$" - "\\$USER100\\$" - "\\$USER101\\$" - "\\$USER102\\$" - "\\$USER103\\$" - "\\$USER104\\$" - "\\$USER105\\$" - "\\$USER106\\$" - "\\$USER107\\$" - "\\$USER108\\$" - "\\$USER109\\$" - "\\$USER11\\$" - "\\$USER110\\$" - "\\$USER111\\$" - "\\$USER112\\$" - "\\$USER113\\$" - "\\$USER114\\$" - "\\$USER115\\$" - "\\$USER116\\$" - "\\$USER117\\$" - "\\$USER118\\$" - "\\$USER119\\$" - "\\$USER12\\$" - "\\$USER120\\$" - "\\$USER121\\$" - "\\$USER122\\$" - "\\$USER123\\$" - "\\$USER124\\$" - "\\$USER125\\$" - "\\$USER126\\$" - "\\$USER127\\$" - "\\$USER128\\$" - "\\$USER129\\$" - "\\$USER13\\$" - "\\$USER130\\$" - "\\$USER131\\$" - "\\$USER132\\$" - "\\$USER133\\$" - "\\$USER134\\$" - "\\$USER135\\$" - "\\$USER136\\$" - "\\$USER137\\$" - "\\$USER138\\$" - "\\$USER139\\$" - "\\$USER14\\$" - "\\$USER140\\$" - "\\$USER141\\$" - "\\$USER142\\$" - "\\$USER143\\$" - "\\$USER144\\$" - "\\$USER145\\$" - "\\$USER146\\$" - "\\$USER147\\$" - "\\$USER148\\$" - "\\$USER149\\$" - "\\$USER15\\$" - "\\$USER150\\$" - "\\$USER151\\$" - "\\$USER152\\$" - "\\$USER153\\$" - "\\$USER154\\$" - "\\$USER155\\$" - "\\$USER156\\$" - "\\$USER157\\$" - "\\$USER158\\$" - "\\$USER159\\$" - "\\$USER16\\$" - "\\$USER160\\$" - "\\$USER161\\$" - "\\$USER162\\$" - "\\$USER163\\$" - "\\$USER164\\$" - "\\$USER165\\$" - "\\$USER166\\$" - "\\$USER167\\$" - "\\$USER168\\$" - "\\$USER169\\$" - "\\$USER17\\$" - "\\$USER170\\$" - "\\$USER171\\$" - "\\$USER172\\$" - "\\$USER173\\$" - "\\$USER174\\$" - "\\$USER175\\$" - "\\$USER176\\$" - "\\$USER177\\$" - "\\$USER178\\$" - "\\$USER179\\$" - "\\$USER18\\$" - "\\$USER180\\$" - "\\$USER181\\$" - "\\$USER182\\$" - "\\$USER183\\$" - "\\$USER184\\$" - "\\$USER185\\$" - "\\$USER186\\$" - "\\$USER187\\$" - "\\$USER188\\$" - "\\$USER189\\$" - "\\$USER19\\$" - "\\$USER190\\$" - "\\$USER191\\$" - "\\$USER192\\$" - "\\$USER193\\$" - "\\$USER194\\$" - "\\$USER195\\$" - "\\$USER196\\$" - "\\$USER197\\$" - "\\$USER198\\$" - "\\$USER199\\$" - "\\$USER2\\$" - "\\$USER20\\$" - "\\$USER200\\$" - "\\$USER201\\$" - "\\$USER202\\$" - "\\$USER203\\$" - "\\$USER204\\$" - "\\$USER205\\$" - "\\$USER206\\$" - "\\$USER207\\$" - "\\$USER208\\$" - "\\$USER209\\$" - "\\$USER21\\$" - "\\$USER210\\$" - "\\$USER211\\$" - "\\$USER212\\$" - "\\$USER213\\$" - "\\$USER214\\$" - "\\$USER215\\$" - "\\$USER216\\$" - "\\$USER217\\$" - "\\$USER218\\$" - "\\$USER219\\$" - "\\$USER22\\$" - "\\$USER220\\$" - "\\$USER221\\$" - "\\$USER222\\$" - "\\$USER223\\$" - "\\$USER224\\$" - "\\$USER225\\$" - "\\$USER226\\$" - "\\$USER227\\$" - "\\$USER228\\$" - "\\$USER229\\$" - "\\$USER23\\$" - "\\$USER230\\$" - "\\$USER231\\$" - "\\$USER232\\$" - "\\$USER233\\$" - "\\$USER234\\$" - "\\$USER235\\$" - "\\$USER236\\$" - "\\$USER237\\$" - "\\$USER238\\$" - "\\$USER239\\$" - "\\$USER24\\$" - "\\$USER240\\$" - "\\$USER241\\$" - "\\$USER242\\$" - "\\$USER243\\$" - "\\$USER244\\$" - "\\$USER245\\$" - "\\$USER246\\$" - "\\$USER247\\$" - "\\$USER248\\$" - "\\$USER249\\$" - "\\$USER25\\$" - "\\$USER250\\$" - "\\$USER251\\$" - "\\$USER252\\$" - "\\$USER253\\$" - "\\$USER254\\$" - "\\$USER255\\$" - "\\$USER256\\$" - "\\$USER26\\$" - "\\$USER27\\$" - "\\$USER28\\$" - "\\$USER29\\$" - "\\$USER3\\$" - "\\$USER30\\$" - "\\$USER31\\$" - "\\$USER32\\$" - "\\$USER33\\$" - "\\$USER34\\$" - "\\$USER35\\$" - "\\$USER36\\$" - "\\$USER37\\$" - "\\$USER38\\$" - "\\$USER39\\$" - "\\$USER4\\$" - "\\$USER40\\$" - "\\$USER41\\$" - "\\$USER42\\$" - "\\$USER43\\$" - "\\$USER44\\$" - "\\$USER45\\$" - "\\$USER46\\$" - "\\$USER47\\$" - "\\$USER48\\$" - "\\$USER49\\$" - "\\$USER5\\$" - "\\$USER50\\$" - "\\$USER51\\$" - "\\$USER52\\$" - "\\$USER53\\$" - "\\$USER54\\$" - "\\$USER55\\$" - "\\$USER56\\$" - "\\$USER57\\$" - "\\$USER58\\$" - "\\$USER59\\$" - "\\$USER6\\$" - "\\$USER60\\$" - "\\$USER61\\$" - "\\$USER62\\$" - "\\$USER63\\$" - "\\$USER64\\$" - "\\$USER65\\$" - "\\$USER66\\$" - "\\$USER67\\$" - "\\$USER68\\$" - "\\$USER69\\$" - "\\$USER7\\$" - "\\$USER70\\$" - "\\$USER71\\$" - "\\$USER72\\$" - "\\$USER73\\$" - "\\$USER74\\$" - "\\$USER75\\$" - "\\$USER76\\$" - "\\$USER77\\$" - "\\$USER78\\$" - "\\$USER79\\$" - "\\$USER8\\$" - "\\$USER80\\$" - "\\$USER81\\$" - "\\$USER82\\$" - "\\$USER83\\$" - "\\$USER84\\$" - "\\$USER85\\$" - "\\$USER86\\$" - "\\$USER87\\$" - "\\$USER88\\$" - "\\$USER89\\$" - "\\$USER9\\$" - "\\$USER90\\$" - "\\$USER91\\$" - "\\$USER92\\$" - "\\$USER93\\$" - "\\$USER94\\$" - "\\$USER95\\$" - "\\$USER96\\$" - "\\$USER97\\$" - "\\$USER98\\$" - "\\$USER99\\$"))) + (regexp-opt + '("$ADMINEMAIL$" + "$ADMINPAGER$" + "$ARG1$" + "$ARG10$" + "$ARG11$" + "$ARG12$" + "$ARG13$" + "$ARG14$" + "$ARG15$" + "$ARG16$" + "$ARG17$" + "$ARG18$" + "$ARG19$" + "$ARG2$" + "$ARG20$" + "$ARG21$" + "$ARG22$" + "$ARG23$" + "$ARG24$" + "$ARG25$" + "$ARG26$" + "$ARG27$" + "$ARG28$" + "$ARG29$" + "$ARG3$" + "$ARG30$" + "$ARG31$" + "$ARG32$" + "$ARG4$" + "$ARG5$" + "$ARG6$" + "$ARG7$" + "$ARG8$" + "$ARG9$" + "$COMMANDFILE$" + "$CONTACTALIAS$" + "$CONTACTEMAIL$" + "$CONTACTGROUPALIAS$" + "$CONTACTGROUPMEMBERS$" + "$CONTACTGROUPNAME$" + "$CONTACTGROUPNAMES$" + "$CONTACTNAME$" + "$CONTACTPAGER$" + "$DATE$" + "$EVENTSTARTTIME$" + "$HOSTACKAUTHOR$" + "$HOSTACKAUTHORALIAS$" + "$HOSTACKAUTHORNAME$" + "$HOSTACKCOMMENT$" + "$HOSTACTIONURL$" + "$HOSTADDRESS$" + "$HOSTALIAS$" + "$HOSTATTEMPT$" + "$HOSTCHECKCOMMAND$" + "$HOSTCHECKTYPE$" + "$HOSTDISPLAYNAME$" + "$HOSTDOWNTIME$" + "$HOSTDURATION$" + "$HOSTDURATIONSEC$" + "$HOSTEVENTID$" + "$HOSTEXECUTIONTIME$" + "$HOSTGROUPACTIONURL$" + "$HOSTGROUPALIAS$" + "$HOSTGROUPMEMBERS$" + "$HOSTGROUPNAME$" + "$HOSTGROUPNAMES$" + "$HOSTGROUPNOTES$" + "$HOSTGROUPNOTESURL$" + "$HOSTLATENCY$" + "$HOSTNAME$" + "$HOSTNOTES$" + "$HOSTNOTESURL$" + "$HOSTNOTIFICATIONID$" + "$HOSTNOTIFICATIONNUMBER$" + "$HOSTOUTPUT$" + "$HOSTPERCENTCHANGE$" + "$HOSTPERFDATA$" + "$HOSTPERFDATAFILE$" + "$HOSTPROBLEMID$" + "$HOSTSTATE$" + "$HOSTSTATEID$" + "$HOSTSTATETYPE$" + "$ISVALIDTIME$" + "$LASTHOSTCHECK$" + "$LASTHOSTDOWN$" + "$LASTHOSTEVENTID$" + "$LASTHOSTPROBLEMID$" + "$LASTHOSTSTATE$" + "$LASTHOSTSTATECHANGE$" + "$LASTHOSTSTATEID$" + "$LASTHOSTUNREACHABLE$" + "$LASTHOSTUP$" + "$LASTSERVICECHECK$" + "$LASTSERVICECRITICAL$" + "$LASTSERVICEEVENTID$" + "$LASTSERVICEOK$" + "$LASTSERVICEPROBLEMID$" + "$LASTSERVICESTATE$" + "$LASTSERVICESTATECHANGE$" + "$LASTSERVICESTATEID$" + "$LASTSERVICEUNKNOWN$" + "$LASTSERVICEWARNING$" + "$LOGFILE$" + "$LONGDATETIME$" + "$LONGHOSTOUTPUT$" + "$LONGSERVICEOUTPUT$" + "$MAINCONFIGFILE$" + "$MAXHOSTATTEMPTS$" + "$MAXSERVICEATTEMPTS$" + "$NEXTVALIDTIME$" + "$NOTIFICATIONAUTHOR$" + "$NOTIFICATIONAUTHORALIAS$" + "$NOTIFICATIONAUTHORNAME$" + "$NOTIFICATIONCOMMENT$" + "$NOTIFICATIONISESCALATED$" + "$NOTIFICATIONNUMBER$" + "$NOTIFICATIONRECIPIENTS$" + "$NOTIFICATIONTYPE$" + "$OBJECTCACHEFILE$" + "$PROCESSSTARTTIME$" + "$RESOURCEFILE$" + "$RETENTIONDATAFILE$" + "$SERVICEACKAUTHOR$" + "$SERVICEACKAUTHORALIAS$" + "$SERVICEACKAUTHORNAME$" + "$SERVICEACKCOMMENT$" + "$SERVICEACTIONURL$" + "$SERVICEATTEMPT$" + "$SERVICECHECKCOMMAND$" + "$SERVICECHECKTYPE$" + "$SERVICEDESC$" + "$SERVICEDISPLAYNAME$" + "$SERVICEDOWNTIME$" + "$SERVICEDURATION$" + "$SERVICEDURATIONSEC$" + "$SERVICEEVENTID$" + "$SERVICEEXECUTIONTIME$" + "$SERVICEGROUPACTIONURL$" + "$SERVICEGROUPALIAS$" + "$SERVICEGROUPMEMBERS$" + "$SERVICEGROUPNAME$" + "$SERVICEGROUPNAMES$" + "$SERVICEGROUPNOTES$" + "$SERVICEGROUPNOTESURL$" + "$SERVICEISVOLATILE$" + "$SERVICELATENCY$" + "$SERVICENOTES$" + "$SERVICENOTESURL$" + "$SERVICENOTIFICATIONID$" + "$SERVICENOTIFICATIONNUMBER$" + "$SERVICEOUTPUT$" + "$SERVICEPERCENTCHANGE$" + "$SERVICEPERFDATA$" + "$SERVICEPERFDATAFILE$" + "$SERVICEPROBLEMID$" + "$SERVICESTATE$" + "$SERVICESTATEID$" + "$SERVICESTATETYPE$" + "$SHORTDATETIME$" + "$STATUSDATAFILE$" + "$TEMPFILE$" + "$TEMPPATH$" + "$TIME$" + "$TIMET$" + "$TOTALHOSTPROBLEMS$" + "$TOTALHOSTPROBLEMSUNHANDLED$" + "$TOTALHOSTSDOWN$" + "$TOTALHOSTSDOWNUNHANDLED$" + "$TOTALHOSTSERVICES$" + "$TOTALHOSTSERVICESCRITICAL$" + "$TOTALHOSTSERVICESOK$" + "$TOTALHOSTSERVICESUNKNOWN$" + "$TOTALHOSTSERVICESWARNING$" + "$TOTALHOSTSUNREACHABLE$" + "$TOTALHOSTSUNREACHABLEUNHANDLED$" + "$TOTALHOSTSUP$" + "$TOTALSERVICEPROBLEMS$" + "$TOTALSERVICEPROBLEMSUNHANDLED$" + "$TOTALSERVICESCRITICAL$" + "$TOTALSERVICESCRITICALUNHANDLED$" + "$TOTALSERVICESOK$" + "$TOTALSERVICESUNKNOWN$" + "$TOTALSERVICESUNKNOWNUNHANDLED$" + "$TOTALSERVICESWARNING$" + "$TOTALSERVICESWARNINGUNHANDLED$" + "$USER1$" + "$USER10$" + "$USER100$" + "$USER101$" + "$USER102$" + "$USER103$" + "$USER104$" + "$USER105$" + "$USER106$" + "$USER107$" + "$USER108$" + "$USER109$" + "$USER11$" + "$USER110$" + "$USER111$" + "$USER112$" + "$USER113$" + "$USER114$" + "$USER115$" + "$USER116$" + "$USER117$" + "$USER118$" + "$USER119$" + "$USER12$" + "$USER120$" + "$USER121$" + "$USER122$" + "$USER123$" + "$USER124$" + "$USER125$" + "$USER126$" + "$USER127$" + "$USER128$" + "$USER129$" + "$USER13$" + "$USER130$" + "$USER131$" + "$USER132$" + "$USER133$" + "$USER134$" + "$USER135$" + "$USER136$" + "$USER137$" + "$USER138$" + "$USER139$" + "$USER14$" + "$USER140$" + "$USER141$" + "$USER142$" + "$USER143$" + "$USER144$" + "$USER145$" + "$USER146$" + "$USER147$" + "$USER148$" + "$USER149$" + "$USER15$" + "$USER150$" + "$USER151$" + "$USER152$" + "$USER153$" + "$USER154$" + "$USER155$" + "$USER156$" + "$USER157$" + "$USER158$" + "$USER159$" + "$USER16$" + "$USER160$" + "$USER161$" + "$USER162$" + "$USER163$" + "$USER164$" + "$USER165$" + "$USER166$" + "$USER167$" + "$USER168$" + "$USER169$" + "$USER17$" + "$USER170$" + "$USER171$" + "$USER172$" + "$USER173$" + "$USER174$" + "$USER175$" + "$USER176$" + "$USER177$" + "$USER178$" + "$USER179$" + "$USER18$" + "$USER180$" + "$USER181$" + "$USER182$" + "$USER183$" + "$USER184$" + "$USER185$" + "$USER186$" + "$USER187$" + "$USER188$" + "$USER189$" + "$USER19$" + "$USER190$" + "$USER191$" + "$USER192$" + "$USER193$" + "$USER194$" + "$USER195$" + "$USER196$" + "$USER197$" + "$USER198$" + "$USER199$" + "$USER2$" + "$USER20$" + "$USER200$" + "$USER201$" + "$USER202$" + "$USER203$" + "$USER204$" + "$USER205$" + "$USER206$" + "$USER207$" + "$USER208$" + "$USER209$" + "$USER21$" + "$USER210$" + "$USER211$" + "$USER212$" + "$USER213$" + "$USER214$" + "$USER215$" + "$USER216$" + "$USER217$" + "$USER218$" + "$USER219$" + "$USER22$" + "$USER220$" + "$USER221$" + "$USER222$" + "$USER223$" + "$USER224$" + "$USER225$" + "$USER226$" + "$USER227$" + "$USER228$" + "$USER229$" + "$USER23$" + "$USER230$" + "$USER231$" + "$USER232$" + "$USER233$" + "$USER234$" + "$USER235$" + "$USER236$" + "$USER237$" + "$USER238$" + "$USER239$" + "$USER24$" + "$USER240$" + "$USER241$" + "$USER242$" + "$USER243$" + "$USER244$" + "$USER245$" + "$USER246$" + "$USER247$" + "$USER248$" + "$USER249$" + "$USER25$" + "$USER250$" + "$USER251$" + "$USER252$" + "$USER253$" + "$USER254$" + "$USER255$" + "$USER256$" + "$USER26$" + "$USER27$" + "$USER28$" + "$USER29$" + "$USER3$" + "$USER30$" + "$USER31$" + "$USER32$" + "$USER33$" + "$USER34$" + "$USER35$" + "$USER36$" + "$USER37$" + "$USER38$" + "$USER39$" + "$USER4$" + "$USER40$" + "$USER41$" + "$USER42$" + "$USER43$" + "$USER44$" + "$USER45$" + "$USER46$" + "$USER47$" + "$USER48$" + "$USER49$" + "$USER5$" + "$USER50$" + "$USER51$" + "$USER52$" + "$USER53$" + "$USER54$" + "$USER55$" + "$USER56$" + "$USER57$" + "$USER58$" + "$USER59$" + "$USER6$" + "$USER60$" + "$USER61$" + "$USER62$" + "$USER63$" + "$USER64$" + "$USER65$" + "$USER66$" + "$USER67$" + "$USER68$" + "$USER69$" + "$USER7$" + "$USER70$" + "$USER71$" + "$USER72$" + "$USER73$" + "$USER74$" + "$USER75$" + "$USER76$" + "$USER77$" + "$USER78$" + "$USER79$" + "$USER8$" + "$USER80$" + "$USER81$" + "$USER82$" + "$USER83$" + "$USER84$" + "$USER85$" + "$USER86$" + "$USER87$" + "$USER88$" + "$USER89$" + "$USER9$" + "$USER90$" + "$USER91$" + "$USER92$" + "$USER93$" + "$USER94$" + "$USER95$" + "$USER96$" + "$USER97$" + "$USER98$" + "$USER99$"))) ) @@ -663,15 +726,32 @@ (concat "^[ \t\r\n]*" - (regexp-alt-raw - '("define +\\(host\\|service\\|timeperiod\\|contact\\|command\\)" - "define +\\(host\\|contact\\|service\\)group" - "define +\\(service\\|host\\)dependency" - "define +\\(service\\|host\\|hostgroup\\)escalation")) - - ;; These can be "terminated" by either an opening curly - ;; brace, or a space. - "\\({\\| \\)") + "\\(" ;; Stick parenthesis around whatever comes out + ;; of regexp-opt. We use this to match a + ;; subexpression during font-lock. + (regexp-opt + '("define command" + "define contact" + "define contactgroup" + "define host" + "define hostdependency" + "define hostescalation" + "define hostextinfo" + "define hostgroup" + "define hostgroupescalation" + "define null" + "define service" + "define servicedependency" + "define serviceescalation" + "define serviceextinfo" + "define servicegroup" + "define timeperiod")) + ;; This closes the parentheses that we opened + "\\)" ;; before regexp-opt. + + ;; These can be "terminated" by either an opening curly + ;; brace, or a space. + "\\({\\| \\)") ) )