bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] 21.2 add-log.el::change-log-version-number-search bug fix


From: Jari Aalto
Subject: [PATCH] 21.2 add-log.el::change-log-version-number-search bug fix
Date: Sun, 11 Sep 2005 21:59:32 +0300
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.3 (windows-nt)

Here fix for BUG that I encountered: Open empty file from directory which 
is revision controlled. Since the file is empty, the search command
`re-search-forward' fils when END is `0' (must be at least 1).

The only actual change here is " (and (> size 1)". Everything else
is indentation change.


2005-09-11  Jari Aalto  <jari.aalto@cante.net>

        * add-log.el (change-log-version-number-search): Before
        searching with `change-log-version-number-regexp-list',
        check that buffer size > 1. Fixes error: "Invalid search bound"
        when `end' was 0 on empty buffer.

*** modified file 'add-log.el'
--- add-log.el
+++ add-log.el
@@ -311,7 +311,9 @@
              (/ size 10)
            size))
         version)
-    (or (and buffer-file-name (vc-workfile-version buffer-file-name))
+    (or (and buffer-file-name
+             (vc-workfile-version buffer-file-name))
+        (and (> size 1)
        (save-restriction
          (widen)
          (let ((regexps change-log-version-number-regexp-list))
@@ -320,7 +322,7 @@
                (goto-char (point-min))
                (when (re-search-forward (pop regexps) end t)
                  (setq version (match-string 1)
-                       regexps nil)))))))))
+                             regexps nil))))))))))
 
 
 ;;;###autoload


-----------------------------------------------------------------------
Debugger entered--Lisp error: (error "Invalid search bound (wrong side of 
point)")
  re-search-forward("^(def[^    \n]+[   ]+[^    \n][    
]\"\\([0-9]+.[0-9.]+\\)" 0 t)
  (if (re-search-forward (pop regexps) end t) (progn (setq version ... regexps 
nil)))
  (when (re-search-forward (pop regexps) end t) (setq version (match-string 1) 
regexps nil))
  (save-excursion (goto-char (point-min)) (when (re-search-forward ... end t) 
(setq version ... regexps nil)))
  (while regexps (save-excursion (goto-char ...) (when ... ...)))
  (let ((regexps change-log-version-number-regexp-list)) (while regexps 
(save-excursion ... ...)))
  (save-restriction (widen) (let (...) (while regexps ...)))
  (or (and buffer-file-name (vc-workfile-version buffer-file-name)) 
(save-restriction (widen) (let ... ...)))
  (let* ((size ...) (end ...) version) (or (and buffer-file-name ...) 
(save-restriction ... ...)))
  change-log-version-number-search()
  (and change-log-version-info-enabled (change-log-version-number-search))
  (let* ((defun ...) (version ...) (buf-file-name ...) (buffer-file ...) 
(file-name ...) (entry ...) bound) (if (or ... ...) (find-file-other-window 
file-name) (find-file file-name)) (or (eq major-mode ...) (change-log-mode)) 
(undo-boundary) (goto-char (point-min)) (let (...) (if ... ... ...)) (setq 
bound (progn ... ...)) (goto-char (point-min)) (cond (... ...) (... ... ... ... 
... ... ...) (t ... ... ... ... ... ... ... ...)) (if defun (progn ... ... ... 
... ...) (unless ... ... ...)))
  add-change-log-entry(nil nil t)
  add-change-log-entry-other-window()
* call-interactively(add-change-log-entry-other-window)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]