]> code.delx.au - gnu-emacs-elpa/blobdiff - company-etags.el
company-etags-find-table: check that TAGS is a regular file, cf. #222
[gnu-emacs-elpa] / company-etags.el
index 8634103fe9f346df1c15819dd3294f93bec90e36..5ccbd1e9b93d15c53a6f3053954e94e563d98aad 100644 (file)
@@ -42,20 +42,22 @@ buffer automatically."
 
 (defcustom company-etags-ignore-case nil
   "Non-nil to ignore case in completion candidates."
-  :type 'boolean)
+  :type 'boolean
+  :package-version '(company . "0.7.3"))
 
 (defvar company-etags-modes '(prog-mode c-mode objc-mode c++-mode java-mode
                               jde-mode pascal-mode perl-mode python-mode))
 
-(defvar company-etags-buffer-table 'unknown)
-(make-variable-buffer-local 'company-etags-buffer-table)
+(defvar-local company-etags-buffer-table 'unknown)
 
 (defun company-etags-find-table ()
-  (let ((file (locate-dominating-file (or buffer-file-name
-                                          default-directory)
-                                      "TAGS")))
-    (when file
-      (list (expand-file-name file)))))
+  (let ((file (expand-file-name
+               "TAGS"
+               (locate-dominating-file (or buffer-file-name
+                                           default-directory)
+                                       "TAGS"))))
+    (when (and file (file-regular-p file))
+      (list file))))
 
 (defun company-etags-buffer-table ()
   (or (and company-etags-use-main-table-list tags-table-list)