[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/progmodes/flymake.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/progmodes/flymake.el |
Date: |
Thu, 24 Mar 2005 19:06:07 -0500 |
Index: emacs/lisp/progmodes/flymake.el
diff -c emacs/lisp/progmodes/flymake.el:1.9 emacs/lisp/progmodes/flymake.el:1.10
*** emacs/lisp/progmodes/flymake.el:1.9 Thu Mar 24 22:55:54 2005
--- emacs/lisp/progmodes/flymake.el Fri Mar 25 00:06:07 2005
***************
*** 357,387 ****
(equal (flymake-fix-file-name file-name-one)
(flymake-fix-file-name file-name-two)))
- (defun flymake-ensure-ends-with-slash (filename)
- ;; Should this really be file-name-as-directory?
- (if (not (= (elt filename (1- (length filename))) (string-to-char "/")))
- (concat filename "/")
- filename))
-
(defun flymake-get-common-file-prefix (string-one string-two)
"Return common prefix for two file names STRING-ONE and STRING-TWO."
! (when (and string-one string-two)
! (let* ((slash-pos-one -1)
! (slash-pos-two -1)
! (done nil)
! (prefix nil))
! (setq string-one (flymake-ensure-ends-with-slash string-one))
! (setq string-two (flymake-ensure-ends-with-slash string-two))
! (while (not done)
! (setq slash-pos-one (string-match "/" string-one (1+ slash-pos-one)))
! (setq slash-pos-two (string-match "/" string-two (1+ slash-pos-two)))
! (if (and slash-pos-one slash-pos-two
! (= slash-pos-one slash-pos-two)
! (string= (substring string-one 0 slash-pos-one) (substring
string-two 0 slash-pos-two)))
! (progn
! (setq prefix (substring string-one 0 (1+ slash-pos-one))))
! (setq done t)))
! prefix)))
(defun flymake-build-relative-filename (from-dir to-dir)
"Return rel: FROM-DIR/rel == TO-DIR."
--- 357,370 ----
(equal (flymake-fix-file-name file-name-one)
(flymake-fix-file-name file-name-two)))
(defun flymake-get-common-file-prefix (string-one string-two)
"Return common prefix for two file names STRING-ONE and STRING-TWO."
! (setq string-one (file-name-as-directory string-one))
! (setq string-two (file-name-as-directory string-two))
! (let ((n (compare-strings string-one nil nil string-two nil nil)))
! (if (eq n t) string-one
! (setq n (abs (1+ n)))
! (file-name-directory (substring string-one 0 n)))))
(defun flymake-build-relative-filename (from-dir to-dir)
"Return rel: FROM-DIR/rel == TO-DIR."
***************
*** 389,396 ****
(if (not (equal (elt from-dir 0) (elt to-dir 0)))
(error "First chars in file names %s, %s must be equal (same drive)"
from-dir to-dir)
! (let* ((from (flymake-ensure-ends-with-slash (flymake-fix-file-name
from-dir)))
! (to (flymake-ensure-ends-with-slash (flymake-fix-file-name
to-dir)))
(prefix (flymake-get-common-file-prefix from to))
(from-suffix (substring from (length prefix)))
(up-count (length (flymake-split-string from-suffix "[/]")))
--- 372,379 ----
(if (not (equal (elt from-dir 0) (elt to-dir 0)))
(error "First chars in file names %s, %s must be equal (same drive)"
from-dir to-dir)
! (let* ((from (file-name-as-directory (flymake-fix-file-name from-dir)))
! (to (file-name-as-directory (flymake-fix-file-name to-dir)))
(prefix (flymake-get-common-file-prefix from to))
(from-suffix (substring from (length prefix)))
(up-count (length (flymake-split-string from-suffix "[/]")))
***************
*** 513,519 ****
;; replace-match is not used here as it fails in
;; XEmacs with 'last match not a buffer' error as
;; check-includes calls replace-in-string
! (flymake-replace-region (current-buffer) match-beg match-end
(file-name-nondirectory
patched-source-file-name))))
(forward-line 1)))
(when found
--- 496,502 ----
;; replace-match is not used here as it fails in
;; XEmacs with 'last match not a buffer' error as
;; check-includes calls replace-in-string
! (flymake-replace-region match-beg match-end
(file-name-nondirectory
patched-source-file-name))))
(forward-line 1)))
(when found
***************
*** 525,536 ****
(flymake-log 2 "found master file %s" master-file-name))
found))
! (defun flymake-replace-region (buffer beg end rep)
"Replace text in BUFFER in region (BEG END) with REP."
(save-excursion
! (delete-region beg end)
! (goto-char beg)
! (insert rep)))
(defun flymake-read-file-to-temp-buffer (file-name)
"Insert contents of FILE-NAME into newly created temp buffer."
--- 508,520 ----
(flymake-log 2 "found master file %s" master-file-name))
found))
! (defun flymake-replace-region (beg end rep)
"Replace text in BUFFER in region (BEG END) with REP."
(save-excursion
! (goto-char end)
! ;; Insert before deleting, so as to better preserve markers's positions.
! (insert rep)
! (delete-region beg end)))
(defun flymake-read-file-to-temp-buffer (file-name)
"Insert contents of FILE-NAME into newly created temp buffer."
***************
*** 1103,1110 ****
(defun flymake-add-err-info (err-info-list line-err-info)
"Add error info (file line type text) to err info list preserving sort
order."
! (let* ((count (length err-info-list))
! (line-no (if (flymake-ler-get-file line-err-info) 1
(flymake-ler-get-line line-err-info)))
(info-and-pos (flymake-find-err-info err-info-list line-no))
(exists (car info-and-pos))
(pos (nth 1 info-and-pos))
--- 1087,1093 ----
(defun flymake-add-err-info (err-info-list line-err-info)
"Add error info (file line type text) to err info list preserving sort
order."
! (let* ((line-no (if (flymake-ler-get-file line-err-info) 1
(flymake-ler-get-line line-err-info)))
(info-and-pos (flymake-find-err-info err-info-list line-no))
(exists (car info-and-pos))
(pos (nth 1 info-and-pos))
***************
*** 1462,1473 ****
(goto-line line))))
;; flymake minor mode declarations
! (defvar flymake-mode nil)
!
! (make-variable-buffer-local 'flymake-mode)
!
! (defvar flymake-mode-line nil
! "")
(make-variable-buffer-local 'flymake-mode-line)
--- 1445,1451 ----
(goto-line line))))
;; flymake minor mode declarations
! (defvar flymake-mode-line nil)
(make-variable-buffer-local 'flymake-mode-line)
***************
*** 1532,1555 ****
(flymake-log 0 "switched OFF Flymake mode for buffer %s due to fatal
status %s, warning %s"
(buffer-name buffer) status warning)))
! (defun flymake-mode (&optional arg)
! "Toggle flymake mode on/off."
! (interactive)
! (let ((old-flymake-mode flymake-mode)
! (turn-on nil))
!
! (setq turn-on
! (if (null arg)
! (not flymake-mode)
! ;else
! (> (prefix-numeric-value arg) 0)))
!
! (if turn-on
! (if (flymake-can-syntax-check-file (buffer-file-name))
! (flymake-mode-on)
! (flymake-log 2 "flymake cannot check syntax in buffer %s"
(buffer-name)))
! (flymake-mode-off))
! (force-mode-line-update)))
(defcustom flymake-start-syntax-check-on-find-file t
"Start syntax check on find file."
--- 1510,1525 ----
(flymake-log 0 "switched OFF Flymake mode for buffer %s due to fatal
status %s, warning %s"
(buffer-name buffer) status warning)))
! (define-minor-mode flymake-mode
! "Minor mode to do on-the-fly syntax checking.
! When called interactively, toggles the minor mode.
! With arg, turn Flymake mode on if and only if arg is positive."
! :lighter flymake-mode-line
! (if flymake-mode
! (if (flymake-can-syntax-check-file (buffer-file-name))
! (flymake-mode-on)
! (flymake-log 2 "flymake cannot check syntax in buffer %s"
(buffer-name)))
! (flymake-mode-off)))
(defcustom flymake-start-syntax-check-on-find-file t
"Start syntax check on find file."
***************
*** 1557,1566 ****
:type 'boolean)
;;;###autoload
- (unless (assq 'flymake-mode minor-mode-alist)
- (setq minor-mode-alist (cons '(flymake-mode flymake-mode-line)
minor-mode-alist)))
-
- ;;;###autoload
(defun flymake-mode-on ()
"Turn flymake mode on."
(when (not flymake-mode)
--- 1527,1532 ----
***************
*** 1719,1727 ****
(let* ((dir (file-name-directory file-name))
(slash-pos (string-match "/" dir))
! (temp-dir (concat (flymake-ensure-ends-with-slash
(flymake-get-temp-dir)) (substring dir (1+ slash-pos)))))
! (file-truename (concat (flymake-ensure-ends-with-slash temp-dir)
(file-name-nondirectory file-name)))))
(defun flymake-strrchr (str ch)
--- 1685,1693 ----
(let* ((dir (file-name-directory file-name))
(slash-pos (string-match "/" dir))
! (temp-dir (concat (file-name-as-directory (flymake-get-temp-dir))
(substring dir (1+ slash-pos)))))
! (file-truename (concat (file-name-as-directory temp-dir)
(file-name-nondirectory file-name)))))
(defun flymake-strrchr (str ch)
***************
*** 1741,1747 ****
(while (> (length suffix) 0)
;;+(flymake-log 0 "suffix=%s" suffix)
! (flymake-safe-delete-directory (file-truename (concat
(flymake-ensure-ends-with-slash temp-dir) suffix)))
(setq slash-pos (flymake-strrchr suffix (string-to-char "/")))
(if slash-pos
(setq suffix (substring suffix 0 slash-pos))
--- 1707,1713 ----
(while (> (length suffix) 0)
;;+(flymake-log 0 "suffix=%s" suffix)
! (flymake-safe-delete-directory (file-truename (concat
(file-name-as-directory temp-dir) suffix)))
(setq slash-pos (flymake-strrchr suffix (string-to-char "/")))
(if slash-pos
(setq suffix (substring suffix 0 slash-pos))
***************
*** 1957,1965 ****
;;;; perl-specific init-cleanup routines
(defun flymake-perl-init (buffer)
! (let* ((temp-file (flymake-init-create-temp-buffer-copy buffer
'flymake-create-temp-inplace))
! (local-file (concat (flymake-build-relative-filename
(file-name-directory (buffer-file-name (current-buffer)))
! (file-name-directory
temp-file))
(file-name-nondirectory temp-file))))
(list "perl" (list "-wc " local-file))))
--- 1923,1933 ----
;;;; perl-specific init-cleanup routines
(defun flymake-perl-init (buffer)
! (let* ((temp-file (flymake-init-create-temp-buffer-copy
! buffer 'flymake-create-temp-inplace))
! (local-file (concat (flymake-build-relative-filename
! (file-name-directory buffer-file-name)
! (file-name-directory temp-file))
(file-name-nondirectory temp-file))))
(list "perl" (list "-wc " local-file))))
***************
*** 1983,1989 ****
'("."))
;;;; xml-specific init-cleanup routines
! (defun flymake-xml-init(buffer)
(list "xml" (list "val" (flymake-init-create-temp-buffer-copy buffer
'flymake-create-temp-inplace))))
(provide 'flymake)
--- 1951,1957 ----
'("."))
;;;; xml-specific init-cleanup routines
! (defun flymake-xml-init (buffer)
(list "xml" (list "val" (flymake-init-create-temp-buffer-copy buffer
'flymake-create-temp-inplace))))
(provide 'flymake)