comparison lisp/emacs-lisp/elint.el @ 104989:bbe883d49650

(elint-init-env): Skip non-list forms. (elint-log): Handle unknown file positions.
author Glenn Morris <rgm@gnu.org>
date Sat, 12 Sep 2009 22:32:52 +0000
parents 25639b195258
children b9b9c3b2718d
comparison
equal deleted inserted replaced
104988:3edc5799260a 104989:bbe883d49650
296 form) 296 form)
297 (while forms 297 (while forms
298 (setq form (elint-top-form-form (car forms)) 298 (setq form (elint-top-form-form (car forms))
299 forms (cdr forms)) 299 forms (cdr forms))
300 (cond 300 (cond
301 ;; Eg nnmaildir seems to use [] as a form of comment syntax.
302 ((not (listp form))
303 (elint-error "Skipping non-list form `%s'" form))
301 ;; Add defined variable 304 ;; Add defined variable
302 ((memq (car form) '(defvar defconst defcustom)) 305 ((memq (car form) '(defvar defconst defcustom))
303 (setq env (elint-env-add-var env (cadr form)))) 306 (setq env (elint-env-add-var env (cadr form))))
304 ;; Add function 307 ;; Add function
305 ((memq (car form) '(defun defsubst)) 308 ((memq (car form) '(defun defsubst))
684 (elint-log-message (format "%s:%d:%s: %s" 687 (elint-log-message (format "%s:%d:%s: %s"
685 (let ((f (buffer-file-name))) 688 (let ((f (buffer-file-name)))
686 (if f 689 (if f
687 (file-name-nondirectory f) 690 (file-name-nondirectory f)
688 (buffer-name))) 691 (buffer-name)))
689 (save-excursion 692 (if (boundp 'elint-current-pos)
690 (goto-char elint-current-pos) 693 (save-excursion
691 (1+ (count-lines (point-min) 694 (goto-char elint-current-pos)
692 (line-beginning-position)))) 695 (1+ (count-lines (point-min)
696 (line-beginning-position))))
697 0) ; unknown position
693 type 698 type
694 (apply 'format string args)))) 699 (apply 'format string args))))
695 700
696 (defun elint-error (string &rest args) 701 (defun elint-error (string &rest args)
697 "Report a linting error. 702 "Report a linting error.