[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Patch for gtags.el problems
From: |
Shigio YAMAGUCHI |
Subject: |
Re: Patch for gtags.el problems |
Date: |
Wed, 08 Aug 2012 08:46:31 +0900 |
Hi,
I have committed your patch to the CVS repository.
Thank you.
Shigio
> --Boundary-00=_qMuGQ5w7vrFC4FG
> Content-Type: Text/Plain;
> charset="us-ascii"
> Content-Transfer-Encoding: 7bit
>
> Hi,
>
> I built a Debian package for global 6.2.4 based on Ron Lees existing package.
> But as XEmacs user I had some problems with your gtags.el.
>
> 1) Mouse bindings do not work ([mouse-3] vs 'button3)
>
> 2) Debugger entered--Lisp error: (wrong-type-argument characterp nil)
> char-equal(nil ?C)
> gtags-goto-tag("tag" "" nil)
> According to the documentation of char-equal in XEmacs: Both arguments must
> be
> characters
>
> 3) Byte-compiling covers some old code:
> Emacs23:
> In gtags-get-rootpath:
> gtags.el:447:14:Warning: assignment to free variable `n'
> gtags.el:447:14:Warning: reference to free variable `n'
>
> In gtags-decode-pathname:
> gtags.el:460:36:Warning: `string-to-int' is an obsolete function (as of Emacs
> 22.1); use `string-to-number' instead.
>
> In gtags-select-it:
> gtags.el:814:13:Warning: `goto-line' used from Lisp code
> That command is designed for interactive use only
> Wrote /usr/share/emacs23/site-lisp/global/gtags.elc
>
> XEmacs21:
> While compiling gtags-get-rootpath in file /usr/share/xemacs21/site-
> lisp/global/gtags.el:
> ** assignment to free variable n
> ** reference to free variable n
> While compiling gtags-visit-rootdir:
> ** variable n bound but not referenced
> While compiling gtags-find-tag-from-here:
> ** variable flag bound but not referenced
> While compiling gtags-pop-stack:
> ** variable buffer bound but not referenced
> While compiling the end of the data:
> ** The following functions are not known to be defined:
> posn-point, event-start, posn-window, event-end
>
> Attached is a patch which also replaces the Windows path delimiter (\\)
> by / which is understood by global.
>
> --
> Regards
> Thomas Viehweger
>
> --Boundary-00=_qMuGQ5w7vrFC4FG
> Content-Type: text/x-patch;
> charset="UTF-8";
> name="gtags.el.diff"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment;
> filename="gtags.el.diff"
>
> --- gtags.el 2012-05-30 11:30:15.000000000 +0200
> +++ gtags-new.el 2012-08-01 22:19:30.289070022 +0200
> @@ -12,12 +12,12 @@
> ;; it under the terms of the GNU General Public License as published by
> ;; the Free Software Foundation, either version 3 of the License, or
> ;; (at your option) any later version.
> -;;
> +;;
> ;; This program is distributed in the hope that it will be useful,
> ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
> ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> ;; GNU General Public License for more details.
> -;;
> +;;
> ;; You should have received a copy of the GNU General Public License
> ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
> ;;
> @@ -191,8 +191,12 @@
> (define-key gtags-mode-map "\e." 'gtags-find-tag)
> (define-key gtags-mode-map "\C-x4." 'gtags-find-tag-other-window)
> (if gtags-disable-pushy-mouse-mapping nil
> - (define-key gtags-mode-map [mouse-3] 'gtags-pop-stack)
> - (define-key gtags-mode-map [mouse-2] 'gtags-find-tag-by-event)))
> + (if gtags-running-xemacs nil
> + (define-key gtags-mode-map [mouse-3] 'gtags-pop-stack)
> + (define-key gtags-mode-map [mouse-2] 'gtags-find-tag-by-event))
> + (if (not gtags-running-xemacs) nil
> + (define-key gtags-mode-map 'button3 'gtags-pop-stack)
> + (define-key gtags-mode-map 'button2 'gtags-find-tag-by-event))))
> )
> ;; Key mapping of old gtags-mode (obsoleted)
> (if (and gtags-suggested-key-mapping gtags-use-old-key-map)
> @@ -214,8 +218,12 @@
> (define-key gtags-mode-map "\e." 'gtags-find-tag)
> (define-key gtags-mode-map "\C-x4." 'gtags-find-tag-other-window)
> (if gtags-disable-pushy-mouse-mapping nil
> - (define-key gtags-mode-map [mouse-3] 'gtags-pop-stack)
> - (define-key gtags-mode-map [mouse-2] 'gtags-find-tag-by-event)))
> + (if gtags-running-xemacs nil
> + (define-key gtags-mode-map [mouse-3] 'gtags-pop-stack)
> + (define-key gtags-mode-map [mouse-2] 'gtags-find-tag-by-event))
> + (if (not gtags-running-xemacs) nil
> + (define-key gtags-mode-map 'button3 'gtags-pop-stack)
> + (define-key gtags-mode-map 'button2 'gtags-find-tag-by-event))))
> )
>
> ;; Key mapping of gtags-select-mode.
> @@ -238,8 +246,12 @@
> (define-key gtags-select-mode-map "\C-o"
> 'gtags-select-tag-other-window)
> (define-key gtags-select-mode-map "\e." 'gtags-select-tag)
> (if gtags-disable-pushy-mouse-mapping nil
> - (define-key gtags-select-mode-map [mouse-3] 'gtags-pop-stack)
> - (define-key gtags-select-mode-map [mouse-2]
> 'gtags-select-tag-by-event)))
> + (if gtags-running-xemacs nil
> + (define-key gtags-select-mode-map [mouse-3] 'gtags-pop-stack)
> + (define-key gtags-select-mode-map [mouse-2]
> 'gtags-select-tag-by-event))
> + (if (not gtags-running-xemacs) nil
> + (define-key gtags-select-mode-map 'button3 'gtags-pop-stack)
> + (define-key gtags-select-mode-map 'button2
> 'gtags-select-tag-by-event))))
> )
>
> ;;
> @@ -339,6 +351,11 @@
> case-fold-search
> gtags-ignore-case))
>
> +(eval-and-compile
> + (if (not (fboundp 'replace-in-string))
> + (defun replace-in-string (which from-str to-str)
> + (replace-regexp-in-string from-str to-str which))))
> +
> (defun gtags-match-string (n)
> (buffer-substring (match-beginning n) (match-end n)))
>
> @@ -386,7 +403,7 @@
> 1
> (count-lines (point-min) (point))))))
>
> -;; completsion function for completing-read.
> +;; completion function for completing-read.
> (defun gtags-completing-gtags (string predicate code)
> (gtags-completing 'gtags string predicate code))
> (defun gtags-completing-grtags (string predicate code)
> @@ -443,8 +460,7 @@
> (save-excursion
> (setq buffer (generate-new-buffer (generate-new-buffer-name
> "*rootdir*")))
> (set-buffer buffer)
> - (setq n (call-process gtags-global-command nil t nil "-pr"))
> - (if (= n 0)
> + (if (= (call-process gtags-global-command nil t nil "-pr") 0)
> (setq path (file-name-as-directory (buffer-substring (point-min)(1-
> (point-max))))))
> (kill-buffer buffer))
> path))
> @@ -457,7 +473,7 @@
> (while (setq start (string-match "%\\([0-9a-f][0-9a-f]\\)" path))
> (setq result (concat result
> (substring path 0 start)
> - (format "%c" (string-to-int (substring path
> (match-beginning 1) (match-end
1)) 16))))
> + (format "%c" (string-to-number (substring path
> (match-beginning 1) (match-e
nd 1)) 16))))
> (setq path (substring path (match-end 1))))
> (concat result path)))
> ;;
> @@ -466,7 +482,7 @@
> (defun gtags-visit-rootdir ()
> "Tell tags commands the root directory of source tree."
> (interactive)
> - (let (path input n)
> + (let (path input)
> (setq path gtags-rootdir)
> (if (not path)
> (setq path (gtags-get-rootpath)))
> @@ -586,7 +602,7 @@
> (defun gtags-find-tag-from-here ()
> "Get the expression as a tagname around here and move there."
> (interactive)
> - (let (tagname flag)
> + (let (tagname)
> (setq tagname (gtags-current-token))
> (if (not tagname)
> nil
> @@ -654,7 +670,7 @@
> (defun gtags-pop-stack ()
> "Move to previous point on the stack."
> (interactive)
> - (let (delete context buffer)
> + (let (delete context)
> (if (and (not (equal gtags-current-buffer nil))
> (not (equal gtags-current-buffer (current-buffer))))
> (switch-to-buffer gtags-current-buffer)
> @@ -682,12 +698,14 @@
> (let (option context save prefix buffer lines flag-char)
> (setq save (current-buffer))
> (setq flag-char (string-to-char flag))
> + (if (equal flag-char nil)
> + (setq flag-char (string-to-char " ")))
> ; Use always ctags-x format.
> (setq option "-x")
> (if (gtags-ignore-casep)
> (setq option (concat option "i")))
> (if (char-equal flag-char ?C)
> - (setq context (concat "--from-here=" (number-to-string
> (gtags-current-lineno)) ":" (gtag
s-buffer-file-name)))
> + (setq context (concat "--from-here=" (number-to-string
> (gtags-current-lineno)) ":" (repl
ace-in-string (gtags-buffer-file-name) "\\\\" "/")))
> (setq option (concat option flag)))
> (cond
> ((char-equal flag-char ?C)
> @@ -802,11 +820,11 @@
> ;; will be changed. This might cause loading error, if you use relative
> ;; path in [GTAGS SELECT MODE], because emacs's buffer has its own
> ;; current directory.
> - ;;
> + ;;
> (let ((prev-buffer (current-buffer)))
> ;; move to the context
> - (if gtags-read-only
> - (if (null other-win) (find-file-read-only file)
> + (if gtags-read-only
> + (if (null other-win) (find-file-read-only file)
> (find-file-read-only-other-window file))
> (if (null other-win) (find-file file)
> (find-file-other-window file)))
>
> --Boundary-00=_qMuGQ5w7vrFC4FG
> Content-Type: text/plain; charset="us-ascii"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> _______________________________________________
> Bug-global mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/bug-global
>
> --Boundary-00=_qMuGQ5w7vrFC4FG--
--
Shigio YAMAGUCHI <address@hidden>
PGP fingerprint: D1CB 0B89 B346 4AB6 5663 C4B6 3CA5 BBB3 57BE DDA3