summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--misc/ruby-mode.el30
2 files changed, 26 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 16c9105c66..e60f41ff01 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Thu Sep 4 17:41:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is
+ valid delimiter.
+
+ * misc/ruby-mode.el (ruby-here-doc-end-match): must quote
+ arbitrary string to use as regexp.
+
+ * misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): must not
+ call `ruby-here-doc-end-match' unless `ruby-here-doc-beg-re'
+ matched.
+
Wed Sep 4 15:40:07 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
* test/csv/test_csv.rb: run on test/unit original layer.
@@ -37,7 +49,7 @@ Tue Sep 2 14:02:19 2003 <nagai@ai.kyutech.ac.jp>
* ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exception
- * ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :
+ * ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :
bug fix and improvement of font control
Tue Sep 2 09:51:36 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
diff --git a/misc/ruby-mode.el b/misc/ruby-mode.el
index d07d1da485..f538714f44 100644
--- a/misc/ruby-mode.el
+++ b/misc/ruby-mode.el
@@ -48,19 +48,15 @@
(defconst ruby-block-end-re "end")
(defconst ruby-here-doc-beg-re
- (concat "<<\\([-]\\)?\\([a-zA-Z0-9]+\\)\\|"
- "<<\\([-]\\)?[\"]\\([^\"]+\\)[\"]\\|"
- "<<\\([-]\\)?[']\\([^']+\\)[']"))
+ "<<\\(-\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)")
(defun ruby-here-doc-end-match ()
(concat "^"
- (if (or (match-string 1)
- (match-string 3)
- (match-string 5))
- "[ \t]*" nil)
- (or (match-string 2)
- (match-string 4)
- (match-string 6))))
+ (if (match-string 1) "[ \t]*" nil)
+ (regexp-quote
+ (or (match-string 3)
+ (match-string 4)
+ (match-string 5)))))
(defconst ruby-delimiter
(concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\<\\("
@@ -1087,14 +1083,14 @@ balanced expression is found."
(beginning-of-line)
(forward-line)
(setq beg (point)))))
- (let ((end-match (ruby-here-doc-end-match)))
- (if (and beg
+ (if (and beg
+ (let ((end-match (ruby-here-doc-end-match)))
(not (re-search-backward end-match beg t))
- (re-search-forward end-match nil t))
- (progn
- (set-match-data (list beg (point)))
- t)
- nil))))
+ (re-search-forward end-match nil t)))
+ (progn
+ (set-match-data (list beg (point)))
+ t)
+ nil)))
(defvar ruby-font-lock-keywords