diff options
Diffstat (limited to 'lisp/progmodes')
-rw-r--r-- | lisp/progmodes/cc-langs.el | 10 | ||||
-rw-r--r-- | lisp/progmodes/cc-mode.el | 9 | ||||
-rw-r--r-- | lisp/progmodes/compile.el | 11 | ||||
-rw-r--r-- | lisp/progmodes/python.el | 2 |
4 files changed, 19 insertions, 13 deletions
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 9c749c11b6a..c5d9c162520 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -2875,6 +2875,14 @@ way." (defconst c-lang-variable-inits (cc-eval-when-compile c-lang-variable-inits)) (defconst c-emacs-variable-inits (cc-eval-when-compile c-emacs-variable-inits)) +;; Make the `c-lang-setvar' variables buffer local in the current buffer. +;; These are typically standard emacs variables such as `comment-start'. +(defmacro c-make-emacs-variables-local () + `(progn + ,@(mapcar (lambda (init) + `(make-local-variable ',(car init))) + (cdr c-emacs-variable-inits)))) + (defun c-make-init-lang-vars-fun (mode) "Create a function that initializes all the language dependent variables for the given mode. @@ -2898,6 +2906,7 @@ accomplish that conveniently." ;; that could be in the result from `cl-macroexpand-all'. (let ((c-buffer-is-cc-mode ',mode) current-var source-eval) + (c-make-emacs-variables-local) (condition-case err (if (eq c-version-sym ',c-version-sym) @@ -2956,6 +2965,7 @@ accomplish that conveniently." (init (append (cdr c-emacs-variable-inits) (cdr c-lang-variable-inits))) current-var) + (c-make-emacs-variables-local) (condition-case err (while init diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index f201f9bab6c..8669a41c2f0 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -154,21 +154,12 @@ (defun c-leave-cc-mode-mode () (setq c-buffer-is-cc-mode nil)) -;; Make the `c-lang-setvar' variables buffer local in the current buffer. -;; These are typically standard emacs variables such as `comment-start'. -(defmacro c-make-emacs-variables-local () - `(progn - ,@(mapcar (lambda (init) - `(make-local-variable ',(car init))) - (cdr c-emacs-variable-inits)))) - (defun c-init-language-vars-for (mode) "Initialize the language variables for one of the language modes directly supported by CC Mode. This can be used instead of the `c-init-language-vars' macro if the language you want to use is one of those, rather than a derived language defined through the language variable system (see \"cc-langs.el\")." - (c-make-emacs-variables-local) (cond ((eq mode 'c-mode) (c-init-language-vars c-mode)) ((eq mode 'c++-mode) (c-init-language-vars c++-mode)) ((eq mode 'objc-mode) (c-init-language-vars objc-mode)) diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index ceb9a7b924d..2710066c2cd 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -2050,9 +2050,9 @@ The file-structure looks like this: ;; compilation-error-list) to point-min, but that was only meaningful for ;; the internal uses of compilation-forget-errors: all calls from external ;; packages seem to be followed by a move of compilation-parsing-end to - ;; something equivalent to point-max. So we speculatively move + ;; something equivalent to point-max. So we heuristically move ;; compilation-current-error to point-max (since the external package - ;; won't know that it should do it). --stef + ;; won't know that it should do it). --Stef (setq compilation-current-error nil) (let* ((proc (get-buffer-process (current-buffer))) (mark (if proc (process-mark proc))) @@ -2063,7 +2063,12 @@ The file-structure looks like this: ;; we need to put ours just before the insertion point rather ;; than at the insertion point. If that's not possible, then ;; don't use a marker. --Stef - (if (> pos (point-min)) (copy-marker (1- pos)) pos)))) + (if (> pos (point-min)) (copy-marker (1- pos)) pos))) + ;; Again, since this command is used in buffers that contain several + ;; compilations, to set the beginning of "this compilation", it's a good + ;; place to reset compilation-auto-jump-to-next. + (set (make-local-variable 'compilation-auto-jump-to-next) + compilation-auto-jump-to-first-error)) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.gcov\\'" . compilation-mode)) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 1caa9ee2007..c3caa7e397c 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1359,7 +1359,7 @@ buffer for a list of commands.)" (path (getenv "PYTHONPATH")) (process-environment ; to import emacs.py (cons (concat "PYTHONPATH=" data-directory - (if path (concat ":" path))) + (if path (concat path-separator path))) process-environment))) (apply 'make-comint-in-buffer "Python" (if new (generate-new-buffer "*Python*") "*Python*") |