diff lisp/font-lock.el @ 62239:55168ce0d00d

(font-lock-fontify-syntactically-region): Don't use comment-end if comment-start-skip is not set. Obey the font-lock-comment-delimiter-face variables.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 11 May 2005 18:52:17 +0000
parents cd487105a05a
children 6bbb1e95d2f7 62afea0771d8
line wrap: on
line diff
--- a/lisp/font-lock.el	Wed May 11 18:26:03 2005 +0000
+++ b/lisp/font-lock.el	Wed May 11 18:52:17 2005 +0000
@@ -1314,10 +1314,10 @@
 (defun font-lock-fontify-syntactically-region (start end &optional loudly ppss)
   "Put proper face on each string and comment between START and END.
 START should be at the beginning of a line."
-  (let (state face beg
-	      (comment-end-regexp
-	       (regexp-quote
-		(replace-regexp-in-string "^ *" "" comment-end))))
+  (let ((comment-end-regexp
+         (regexp-quote
+          (replace-regexp-in-string "^ *" "" comment-end)))
+        state face beg)
     (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name)))
     (goto-char start)
     ;;
@@ -1333,18 +1333,18 @@
 	    (setq state (parse-partial-sexp (point) end nil nil state
 					    'syntax-table))
 	    (when face (put-text-property beg (point) 'face face))
-	    (when (eq face 'font-lock-comment-face)
+	    (when (and (eq face 'font-lock-comment-face)
+                       comment-start-skip)
 	      ;; Find the comment delimiters
 	      ;; and use font-lock-comment-delimiter-face for them.
 	      (save-excursion
 		(goto-char beg)
-		(if (and comment-start-skip (looking-at comment-start-skip))
+		(if (looking-at comment-start-skip)
 		    (put-text-property beg (match-end 0) 'face
-				       'font-lock-comment-delimiter-face)))
-	      (if (and comment-end
-		       (looking-back comment-end-regexp (point-at-bol)))
+				       font-lock-comment-delimiter-face)))
+	      (if (looking-back comment-end-regexp (point-at-bol))
 		  (put-text-property (match-beginning 0) (point) 'face
-				     'font-lock-comment-delimiter-face))))
+				     font-lock-comment-delimiter-face))))
 	  (< (point) end))
       (setq state (parse-partial-sexp (point) end nil nil state
 				      'syntax-table)))))
@@ -1856,7 +1856,7 @@
 ;  (put 'font-lock-fontify-more 'menu-enable '(identity))
 ;  (put 'font-lock-fontify-less 'menu-enable '(identity)))
 ;
-;;; Put the appropriate symbol property values on now.  See above.
+; ;; Put the appropriate symbol property values on now.  See above.
 ;(put 'global-font-lock-mode 'menu-selected 'global-font-lock-mode)
 ;(put 'font-lock-mode 'menu-selected 'font-lock-mode)
 ;(put 'font-lock-fontify-more 'menu-enable '(nth 2 font-lock-fontify-level))
@@ -1890,7 +1890,7 @@
 ;      (font-lock-fontify-level (1+ (car font-lock-fontify-level)))
 ;    (error "No more decoration")))
 ;
-;;; This should be called by `font-lock-set-defaults'.
+; ;; This should be called by `font-lock-set-defaults'.
 ;(defun font-lock-set-menu ()
 ;  ;; Activate less/more fontification entries if there are multiple levels for
 ;  ;; the current buffer.  Sets `font-lock-fontify-level' to be of the form
@@ -1911,7 +1911,7 @@
 ;      (setq font-lock-fontify-level (list level (> level 1)
 ;					  (< level (1- (length keywords))))))))
 ;
-;;; This should be called by `font-lock-unset-defaults'.
+; ;; This should be called by `font-lock-unset-defaults'.
 ;(defun font-lock-unset-menu ()
 ;  ;; Deactivate less/more fontification entries.
 ;  (setq font-lock-fontify-level nil))
@@ -1919,7 +1919,7 @@
 ;;; End of Menu support.
 
 ;;; Various regexp information shared by several modes.
-;;; Information specific to a single mode should go in its load library.
+; ;; Information specific to a single mode should go in its load library.
 
 ;; Font Lock support for C, C++, Objective-C and Java modes is now in
 ;; cc-fonts.el (and required by cc-mode.el).  However, the below function
@@ -2071,9 +2071,9 @@
       ;; ELisp and CLisp `&' keywords as types.
       '("\\&\\sw+\\>" . font-lock-type-face)
       ;;
-;;; This is too general -- rms.
-;;; A user complained that he has functions whose names start with `do'
-;;; and that they get the wrong color.
+;;;  This is too general -- rms.
+;;;  A user complained that he has functions whose names start with `do'
+;;;  and that they get the wrong color.
 ;;;      ;; CL `with-' and `do-' constructs
 ;;;      '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
       )))