[elpa] 05/09: Make use of colored output to calulate column

2014-02-25 Thread Leo Liu
leoliu pushed a commit to branch master
in repository elpa.

commit 8a13fc8f5cc1c6101e56b8ba8b8f48dd5df2b851
Author: Leo Liu sdl@gmail.com
Date:   Mon Feb 24 23:40:56 2014 +0800

Make use of colored output to calulate column

and enable it for grep and ctags-x output formats.

The cscope output format doesn't include leading blank from the source
text so cannot calculate column without support from compile.
---
 ggtags.el |   23 +++
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/ggtags.el b/ggtags.el
index 44fdc80..4aa1073 100644
--- a/ggtags.el
+++ b/ggtags.el
@@ -897,22 +897,29 @@ Global and Emacs.
(_ '(match  matches))
   exit-status)))
 
+(defun ggtags-global-column (start)
+  ;; START is the beginning position of source text.
+  (when-let (mbeg (text-property-any start (line-end-position) 'global-color 
t))
+(setq ggtags-current-tag-name nil)
+(- mbeg start)))
+
 ;;; NOTE: Must not match the 'Global started at Mon Jun 3 10:24:13'
 ;;; line or `compilation-auto-jump' will jump there and fail. See
 ;;; comments before the 'gnu' entry in
 ;;; `compilation-error-regexp-alist-alist'.
 (defvar ggtags-global-error-regexp-alist-alist
   (append
-   '((path ^\\(?:[^/\n]*/\\)?[^ )\t\n]+$ 0)
+   `((path ^\\(?:[^/\n]*/\\)?[^ )\t\n]+$ 0)
  ;; ACTIVE_ESCAPE  src/dialog.cc   172
  (ctags ^\\([^ \t\n]+\\)[ \t]+\\(.*?\\)[ \t]+\\([0-9]+\\)$
 2 3 nil nil 2 (1 font-lock-function-name-face))
  ;; ACTIVE_ESCAPE 172 src/dialog.cc#undef ACTIVE_ESCAPE
  (ctags-x ^\\([^ \t\n]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\(\\(?:[^/\n]*/\\)?[^ 
\t\n]+\\)
-  3 2 nil nil 3 (1 font-lock-function-name-face))
+  3 2 (,(lambda () (ggtags-global-column (1+ (match-end 0)
+  nil 3 (1 font-lock-function-name-face))
  ;; src/dialog.cc:172:#undef ACTIVE_ESCAPE
  (grep 
^\\(.+?\\):\\([0-9]+\\):\\(?:$\\|[^0-9\n]\\|[0-9][^0-9\n]\\|[0-9][0-9].\\)
-   1 2 nil nil 1)
+   1 2 (,(lambda () (ggtags-global-column (1+ (match-end 2) nil 1)
  ;; src/dialog.cc ACTIVE_ESCAPE 172 #undef ACTIVE_ESCAPE
  (cscope ^\\(.+?\\)[ \t]+\\([^ \t\n]+\\)[ 
\t]+\\([0-9]+\\).*\\(?:[^0-9\n]\\|[^0-9\n][0-9]\\|[^:\n][0-9][0-9]\\)$
  1 3 nil nil 1 (2 font-lock-function-name-face)))
@@ -962,7 +969,12 @@ Global and Emacs.
 
 (defun ggtags-global-filter ()
   Called from `compilation-filter-hook' (which see).
-  (ansi-color-apply-on-region compilation-filter-start (point))
+  (let ((ansi-color-apply-face-function
+ (lambda (beg end face)
+   (when face
+ (ansi-color-apply-overlay-face beg end face)
+ (put-text-property beg end 'global-color t)
+(ansi-color-apply-on-region compilation-filter-start (point)))
   ;; Get rid of line Using config file '/PATH/TO/.globalrc'. or
   ;; Using default configuration.
   (when (re-search-backward
@@ -1016,6 +1028,9 @@ Global and Emacs.
   (setq-local compilation-auto-jump-to-first-error
   ggtags-auto-jump-to-first-match)
   (setq-local compilation-scroll-output 'first-error)
+  ;; See `compilation-move-to-column' for details.
+  (setq-local compilation-first-column 0)
+  (setq-local compilation-error-screen-columns nil)
   (setq-local compilation-disable-input t)
   (setq-local compilation-always-kill t)
   (setq-local compilation-error-face 'compilation-info)



[elpa] 01/01: Fixes: debbugs:16671

2014-02-25 Thread Stefan Monnier
monnier pushed a commit to branch master
in repository elpa.

commit 70b8c353e387b08cc05ca22314f90f4c6eed
Author: Stefan Monnier monn...@iro.umontreal.ca
Date:   Tue Feb 25 09:18:51 2014 -0500

Fixes: debbugs:16671

* cl-lib.el (cl-position, cl-delete-duplicate): Don't advise if =24.3.
(load-path): Try to make sure we're at the end.
---
 packages/cl-lib/cl-lib.el |   25 ++---
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/packages/cl-lib/cl-lib.el b/packages/cl-lib/cl-lib.el
index 1ea22e0..cf13c56 100644
--- a/packages/cl-lib/cl-lib.el
+++ b/packages/cl-lib/cl-lib.el
@@ -4,7 +4,7 @@
 
 ;; Author: Stefan Monnier monn...@iro.umontreal.ca
 ;; vcomment: Emacs-24.3's version is 1.0 so this has to stay below.
-;; Version: 0.4
+;; Version: 0.5
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -36,6 +36,15 @@
 
 ;;; Code:
 
+;; We need to handle the situation where this package is used with an Emacs
+;; that comes with a real cl-lib (i.e. ≥24.3).
+
+;; First line of defense: try to make sure the built-in cl-lib comes earlier in
+;; load-path so we never get loaded:
+;;;###autoload (let ((d (file-name-directory #$)))
+;;;###autoload   (when (member d load-path)
+;;;###autoload (setq load-path (append (remove d load-path) (list d)
+
 (when (functionp 'macroexp--compiler-macro)
   ;; `macroexp--compiler-macro' was introduced as part of the big CL
   ;; reorganization which moved/reimplemented some of CL into core (mostly the
@@ -318,25 +327,27 @@
   (message %S already defined, not rebinding new))
   (defalias new fun
 
-(autoload 'cl-position cl-seq)
-(defadvice cl-position (around cl-lib (cl-item cl-seq rest cl-keys) activate)
+(unless (symbolp (symbol-function 'position))
+  (autoload 'cl-position cl-seq)
+  (defadvice cl-position (around cl-lib (cl-item cl-seq rest cl-keys) 
activate)
   (let ((argk (ad-get-args 2)))
 (if (or (null argk) (keywordp (car argk)))
 ;; This is a call to cl-lib's `cl-position'.
 (setq ad-return-value
   (apply #'position (ad-get-arg 0) (ad-get-arg 1) argk))
   ;; Must be a call to cl's old `cl-position'.
-  ad-do-it)))
+  ad-do-it
 
-(autoload 'cl-delete-duplicates cl-seq)
-(defadvice cl-delete-duplicates (around cl-lib (cl-seq rest cl-keys) activate)
+(unless (symbolp (symbol-function 'delete-duplicates))
+  (autoload 'cl-delete-duplicates cl-seq)
+  (defadvice cl-delete-duplicates (around cl-lib (cl-seq rest cl-keys) 
activate)
   (let ((argk (ad-get-args 1)))
 (if (or (null argk) (keywordp (car argk)))
 ;; This is a call to cl-lib's `cl-delete-duplicates'.
 (setq ad-return-value
   (apply #'delete-duplicates (ad-get-arg 0) argk))
   ;; Must be a call to cl's old `cl-delete-duplicates'.
-  ad-do-it)))
+  ad-do-it
 
 (when (or (not (fboundp 'cl-member))
   (eq (symbol-function 'cl-member) #'memq))