emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 6fb8a4dff7e: Merge from origin/emacs-29


From: Stefan Kangas
Subject: master 6fb8a4dff7e: Merge from origin/emacs-29
Date: Sun, 5 Mar 2023 00:45:02 -0500 (EST)

branch: master
commit 6fb8a4dff7ef22f96ebe1a775240617aabac6526
Merge: 4b3ccf3092e 836044f329a
Author: Stefan Kangas <stefankangas@gmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>

    Merge from origin/emacs-29
    
    836044f329a Fix c-ts-mode preproc directive indentation
    64980a59b65 ; * lisp/files.el (hack-local-variables): Fix typo in the...
    a7cd125d490 More robustly unspoof HOME in Eglot tests (bug#61637)
    6c66dbd02c7 Turn on Eglot inlay hints by default
    246f5b541c5 Update ts modes missed in 4c16fd3a512 to use column-0
    0bfba49ca7c Robustify Eglot for "transient" projects
    ea5fd375bb2 Fix documentation of 'normal-mode' in buffers that don't ...
    4c16fd3a512 Change tree-sitter indent anchor 'point-min' to 'column-0'
    f47b3930158 Fix go-ts-mode multi-line string indentation (bug#61923)
    e0bf2da3db6 ; More accurate doc strings for 'window-at' and 'window-a...
---
 doc/emacs/modes.texi                               |  9 ++--
 doc/lispref/modes.texi                             |  6 +--
 lisp/files.el                                      | 18 ++++++--
 lisp/progmodes/c-ts-mode.el                        | 54 +++++++++++++++++-----
 lisp/progmodes/eglot.el                            |  7 +--
 lisp/progmodes/go-ts-mode.el                       |  5 +-
 lisp/progmodes/java-ts-mode.el                     | 20 ++++----
 lisp/progmodes/ruby-ts-mode.el                     |  2 +-
 lisp/progmodes/rust-ts-mode.el                     |  2 +-
 lisp/progmodes/typescript-ts-mode.el               |  2 +-
 lisp/subr.el                                       |  5 +-
 lisp/treesit.el                                    |  9 ++--
 lisp/window.el                                     |  4 ++
 src/window.c                                       |  7 ++-
 .../c-ts-mode-resources/indent-preproc.erts        | 34 ++++++++++++++
 test/lisp/progmodes/eglot-tests.el                 | 17 ++++---
 16 files changed, 145 insertions(+), 56 deletions(-)

diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi
index 0e4b15fb514..d2f96af0b55 100644
--- a/doc/emacs/modes.texi
+++ b/doc/emacs/modes.texi
@@ -473,9 +473,12 @@ specify which mode you prefer.
   If you have changed the major mode of a buffer, you can return to
 the major mode Emacs would have chosen automatically, by typing
 @kbd{M-x normal-mode}.  This is the same function that
-@code{find-file} calls to choose the major mode.  It also processes
-the file's @samp{-*-} line or local variables list (if any).
-@xref{File Variables}.
+@code{find-file} calls to choose the major mode.  If the buffer is
+visiting a file, this command also processes the file's @samp{-*-}
+line and file-local variables list (if any).  @xref{File Variables}.
+If the buffer doesn't visit a file, the command processes only the
+major mode specification, if any, in the @samp{-*-} line and in the
+file-local variables list.
 
 @vindex change-major-mode-with-file-name
   The commands @kbd{C-x C-w} and @code{set-visited-file-name} change to
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index fedb2804f26..c12224230fc 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -5117,10 +5117,10 @@ This anchor is a function that is called with 3 
arguments: @var{node},
 @var{parent}, and @var{bol}, and returns the first non-whitespace
 character on the previous line.
 
-@item point-min
+@item column-0
 This anchor is a function that is called with 3 arguments: @var{node},
-@var{parent}, and @var{bol}, and returns the beginning of the buffer.
-This is useful as the beginning of the buffer is always at column 0.
+@var{parent}, and @var{bol}, and returns the beginning of the current
+line, which is at column 0.
 
 @item comment-start
 This anchor is a function that is called with 3 arguments: @var{node},
diff --git a/lisp/files.el b/lisp/files.el
index 387a3b5dc66..6f02aac33d3 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2775,7 +2775,11 @@ not set local variables (though we do notice a mode 
specified with -*-.)
 
 `enable-local-variables' is ignored if you run `normal-mode' interactively,
 or from Lisp without specifying the optional argument FIND-FILE;
-in that case, this function acts as if `enable-local-variables' were t."
+in that case, this function acts as if `enable-local-variables' were t.
+
+If invoked in a buffer that doesn't visit a file, this function
+processes only the major mode specification in the -*- line and
+the local variables spec."
   (interactive)
   (kill-all-local-variables)
   (unless delay-mode-hooks
@@ -3925,9 +3929,6 @@ variables.
 
 Uses `hack-local-variables-apply' to apply the variables.
 
-See `hack-local-variables--find-variables' for the meaning of
-HANDLE-MODE.
-
 If `enable-local-variables' or `local-enable-local-variables' is
 nil, or INHIBIT-LOCALS is non-nil, this function disregards all
 normal local variables.  If `inhibit-local-variables-regexps'
@@ -3937,7 +3938,14 @@ applied.
 
 Variables present in `permanently-enabled-local-variables' will
 still be evaluated, even if local variables are otherwise
-inhibited."
+inhibited.
+
+If HANDLE-MODE is t, the function only checks whether a \"mode:\"
+is specified, and returns the corresponding mode symbol, or nil.
+In this case, try to ignore minor-modes, and return only a major-mode.
+If HANDLE-MODE is nil, the function gathers all the specified local
+variables.  If HANDLE-MODE is neither nil nor t, the function gathers
+all the specified local variables, but ignores any settings of \"mode:\"."
   ;; We don't let inhibit-local-variables-p influence the value of
   ;; enable-local-variables, because then it would affect dir-local
   ;; variables.  We don't want to search eg tar files for file local
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 96d2615c1f7..132c44d330a 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -299,6 +299,23 @@ PARENT and BOL are like other anchor functions."
     ;; prev-sibling doesn't have a child.
     (treesit-node-start prev-sibling)))
 
+(defun c-ts-mode--standalone-parent-skip-preproc (_n parent &rest _)
+  "Like the standalone-parent anchor but skips preproc nodes.
+PARENT is the same as other anchor functions."
+  (save-excursion
+    (treesit-node-start
+     (treesit-parent-until
+      ;; Use PARENT rather than NODE, to handle the case where NODE is
+      ;; nil.
+      parent (lambda (node)
+               (and node
+                    (not (string-match "preproc" (treesit-node-type node)))
+                    (progn
+                      (goto-char (treesit-node-start node))
+                      (looking-back (rx bol (* whitespace))
+                                    (line-beginning-position)))))
+      t))))
+
 (defun c-ts-mode--standalone-grandparent (_node parent bol &rest args)
   "Like the standalone-parent anchor but pass it the grandparent.
 PARENT, BOL, ARGS are the same as other anchor functions."
@@ -309,8 +326,8 @@ PARENT, BOL, ARGS are the same as other anchor functions."
   "Indent rules supported by `c-ts-mode'.
 MODE is either `c' or `cpp'."
   (let ((common
-         `(((parent-is "translation_unit") point-min 0)
-           ((query "(ERROR (ERROR)) @indent") point-min 0)
+         `(((parent-is "translation_unit") column-0 0)
+           ((query "(ERROR (ERROR)) @indent") column-0 0)
            ((node-is ")") parent 1)
            ((node-is "]") parent-bol 0)
            ((node-is "else") parent-bol 0)
@@ -330,13 +347,28 @@ MODE is either `c' or `cpp'."
            ((parent-is "labeled_statement")
             c-ts-mode--standalone-grandparent c-ts-mode-indent-offset)
 
-           ((node-is "preproc") point-min 0)
-           ((node-is "#endif") point-min 0)
-           ((match "preproc_call" "compound_statement") point-min 0)
-
-           ((n-p-gp nil "preproc" "translation_unit") point-min 0)
-           ((n-p-gp nil "\n" "preproc") great-grand-parent 
c-ts-mode--preproc-offset)
-           ((parent-is "preproc") grand-parent c-ts-mode-indent-offset)
+           ;; Preproc directives
+           ((node-is "preproc") column-0 0)
+           ((node-is "#endif") column-0 0)
+           ((match "preproc_call" "compound_statement") column-0 0)
+
+           ;; Top-level things under a preproc directive.  Note that
+           ;; "preproc" matches more than one type: it matches
+           ;; preproc_if, preproc_elif, etc.
+           ((n-p-gp nil "preproc" "translation_unit") column-0 0)
+           ;; Indent rule for an empty line after a preproc directive.
+           ((and no-node (parent-is ,(rx (or "\n" "preproc"))))
+            c-ts-mode--standalone-parent-skip-preproc 
c-ts-mode--preproc-offset)
+           ;; Statement under a preproc directive, the first statement
+           ;; indents against parent, the rest statements indent to
+           ;; their prev-sibling.
+           ((match nil ,(rx "preproc_" (or "if" "elif")) nil 3 3)
+            c-ts-mode--standalone-parent-skip-preproc c-ts-mode-indent-offset)
+           ((match nil "preproc_ifdef" nil 2 2)
+            c-ts-mode--standalone-parent-skip-preproc c-ts-mode-indent-offset)
+           ((match nil "preproc_else" nil 1 1)
+            c-ts-mode--standalone-parent-skip-preproc c-ts-mode-indent-offset)
+           ((parent-is "preproc") c-ts-mode--anchor-prev-sibling 0)
 
            ((parent-is "function_definition") parent-bol 0)
            ((parent-is "conditional_expression") first-sibling 0)
@@ -392,14 +424,14 @@ MODE is either `c' or `cpp'."
     `((gnu
        ;; Prepend rules to set highest priority
        ((match "while" "do_statement") parent 0)
-       (c-ts-mode--top-level-label-matcher point-min 1)
+       (c-ts-mode--top-level-label-matcher column-0 1)
        ,@common)
       (k&r ,@common)
       (linux
        ;; Reference:
        ;; https://www.kernel.org/doc/html/latest/process/coding-style.html,
        ;; and script/Lindent in Linux kernel repository.
-       ((node-is "labeled_statement") point-min 0)
+       ((node-is "labeled_statement") column-0 0)
        ,@common)
       (bsd
        ((node-is "}") parent-bol 0)
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 13d30a67083..2f8d2002cd3 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -1079,7 +1079,8 @@ variable (which see) can query the value 
`eglot-lsp-context' to
 decide whether a given directory is a project containing a
 suitable root directory for a given LSP server's purposes."
   (let ((eglot-lsp-context t))
-    (or (project-current) `(transient . ,default-directory))))
+    (or (project-current)
+        `(transient . ,(expand-file-name default-directory)))))
 
 ;;;###autoload
 (defun eglot (managed-major-mode project class contact language-id
@@ -1922,6 +1923,7 @@ If it is activated, also signal textDocument/didOpen."
       (eglot--signal-textDocument/didOpen)
       ;; Run user hook after 'textDocument/didOpen' so server knows
       ;; about the buffer.
+      (eglot-inlay-hints-mode 1)
       (run-hooks 'eglot-managed-mode-hook))))
 
 (add-hook 'after-change-major-mode-hook 'eglot--maybe-activate-editing-mode)
@@ -3645,8 +3647,7 @@ If NOERROR, return predicate, else erroring function."
   (cond (eglot-inlay-hints-mode
          (if (eglot--server-capable :inlayHintProvider)
              (jit-lock-register #'eglot--update-hints 'contextual)
-           (eglot--warn
-            "No :inlayHintProvider support. Inlay hints will not work.")))
+           (eglot-inlay-hints-mode -1)))
         (t
          (jit-lock-unregister #'eglot--update-hints)
          (remove-overlays nil nil 'eglot--inlay-hint t))))
diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el
index ce77cc3973d..e6e8abd6445 100644
--- a/lisp/progmodes/go-ts-mode.el
+++ b/lisp/progmodes/go-ts-mode.el
@@ -67,11 +67,12 @@
 
 (defvar go-ts-mode--indent-rules
   `((go
-     ((parent-is "source_file") point-min 0)
+     ((parent-is "source_file") column-0 0)
      ((node-is ")") parent-bol 0)
      ((node-is "]") parent-bol 0)
      ((node-is "}") parent-bol 0)
-     ((node-is "labeled_statement") no-indent)
+     ((node-is "labeled_statement") no-indent 0)
+     ((parent-is "raw_string_literal") no-indent 0)
      ((parent-is "argument_list") parent-bol go-ts-mode-indent-offset)
      ((parent-is "block") parent-bol go-ts-mode-indent-offset)
      ((parent-is "communication_case") parent-bol go-ts-mode-indent-offset)
diff --git a/lisp/progmodes/java-ts-mode.el b/lisp/progmodes/java-ts-mode.el
index d31d2d71c38..1115eadde7f 100644
--- a/lisp/progmodes/java-ts-mode.el
+++ b/lisp/progmodes/java-ts-mode.el
@@ -69,10 +69,10 @@
 
 (defvar java-ts-mode--indent-rules
   `((java
-     ((parent-is "program") point-min 0)
+     ((parent-is "program") column-0 0)
      ((match "}" "element_value_array_initializer")
       parent-bol 0)
-     ((node-is "}") point-min c-ts-common-statement-offset)
+     ((node-is "}") column-0 c-ts-common-statement-offset)
      ((node-is ")") parent-bol 0)
      ((node-is "else") parent-bol 0)
      ((node-is "]") parent-bol 0)
@@ -80,15 +80,15 @@
       c-ts-common-comment-start-after-first-star -1)
      ((parent-is "comment") prev-adaptive-prefix 0)
      ((parent-is "text_block") no-indent)
-     ((parent-is "class_body") point-min c-ts-common-statement-offset)
+     ((parent-is "class_body") column-0 c-ts-common-statement-offset)
      ((parent-is "array_initializer") parent-bol java-ts-mode-indent-offset)
-     ((parent-is "annotation_type_body") point-min 
c-ts-common-statement-offset)
-     ((parent-is "interface_body") point-min c-ts-common-statement-offset)
-     ((parent-is "constructor_body") point-min c-ts-common-statement-offset)
+     ((parent-is "annotation_type_body") column-0 c-ts-common-statement-offset)
+     ((parent-is "interface_body") column-0 c-ts-common-statement-offset)
+     ((parent-is "constructor_body") column-0 c-ts-common-statement-offset)
      ((parent-is "enum_body_declarations") parent-bol 0)
-     ((parent-is "enum_body") point-min c-ts-common-statement-offset)
-     ((parent-is "switch_block") point-min c-ts-common-statement-offset)
-     ((parent-is "record_declaration_body") point-min 
c-ts-common-statement-offset)
+     ((parent-is "enum_body") column-0 c-ts-common-statement-offset)
+     ((parent-is "switch_block") column-0 c-ts-common-statement-offset)
+     ((parent-is "record_declaration_body") column-0 
c-ts-common-statement-offset)
      ((query "(method_declaration (block _ @indent))") parent-bol 
java-ts-mode-indent-offset)
      ((query "(method_declaration (block (_) @indent))") parent-bol 
java-ts-mode-indent-offset)
      ((parent-is "local_variable_declaration") parent-bol 
java-ts-mode-indent-offset)
@@ -121,7 +121,7 @@
      ((parent-is "case_statement") parent-bol java-ts-mode-indent-offset)
      ((parent-is "labeled_statement") parent-bol java-ts-mode-indent-offset)
      ((parent-is "do_statement") parent-bol java-ts-mode-indent-offset)
-     ((parent-is "block") point-min c-ts-common-statement-offset)))
+     ((parent-is "block") column-0 c-ts-common-statement-offset)))
   "Tree-sitter indent rules.")
 
 (defvar java-ts-mode--keywords
diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el
index 4530b162e6e..b2842c33d29 100644
--- a/lisp/progmodes/ruby-ts-mode.el
+++ b/lisp/progmodes/ruby-ts-mode.el
@@ -557,7 +557,7 @@ a statement container is a node that matches
   (let ((common
          `(
            ;; Slam all top level nodes to the left margin
-           ((parent-is "program") point-min 0)
+           ((parent-is "program") column-0 0)
 
            ;; Do not indent here docs or the end.  Not sure why it
            ;; takes the grand-parent but ok fine.
diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el
index 2d5c3211c1a..696c2633231 100644
--- a/lisp/progmodes/rust-ts-mode.el
+++ b/lisp/progmodes/rust-ts-mode.el
@@ -71,7 +71,7 @@
 
 (defvar rust-ts-mode--indent-rules
   `((rust
-     ((parent-is "source_file") point-min 0)
+     ((parent-is "source_file") column-0 0)
      ((node-is ")") parent-bol 0)
      ((node-is "]") parent-bol 0)
      ((node-is "}") (and parent parent-bol) 0)
diff --git a/lisp/progmodes/typescript-ts-mode.el 
b/lisp/progmodes/typescript-ts-mode.el
index ca6fd2c09da..b21b1fd2cef 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -69,7 +69,7 @@
   "Rules used for indentation.
 Argument LANGUAGE is either `typescript' or `tsx'."
   `((,language
-     ((parent-is "program") point-min 0)
+     ((parent-is "program") column-0 0)
      ((node-is "}") parent-bol 0)
      ((node-is ")") parent-bol 0)
      ((node-is "]") parent-bol 0)
diff --git a/lisp/subr.el b/lisp/subr.el
index 2a8c51eb7c4..8ff3b868fab 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2441,8 +2441,9 @@ If the variable `delay-mode-hooks' is non-nil, does not 
do anything,
 just adds the HOOKS to the list `delayed-mode-hooks'.
 Otherwise, runs hooks in the sequence: `change-major-mode-after-body-hook',
 `delayed-mode-hooks' (in reverse order), HOOKS, then runs
-`hack-local-variables', runs the hook `after-change-major-mode-hook', and
-finally evaluates the functions in `delayed-after-hook-functions' (see
+`hack-local-variables' (if the buffer is visiting a file),
+runs the hook `after-change-major-mode-hook', and finally
+evaluates the functions in `delayed-after-hook-functions' (see
 `define-derived-mode').
 
 Major mode functions should use this instead of `run-hooks' when
diff --git a/lisp/treesit.el b/lisp/treesit.el
index e7a8ad6104f..e680668a353 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -1254,7 +1254,10 @@ See `treesit-simple-indent-presets'.")
                              (goto-char bol)
                              (forward-line -1)
                              (skip-chars-forward " \t"))))
-        (cons 'point-min (lambda (&rest _) (point-min)))
+        (cons 'column-0 (lambda (_n _p bol &rest _)
+                          (save-excursion
+                            (goto-char bol)
+                            (line-beginning-position))))
         ;; TODO: Document.
         (cons 'and (lambda (&rest fns)
                      (lambda (node parent bol &rest _)
@@ -1358,9 +1361,9 @@ prev-line
 
     Returns the first non-whitespace character on the previous line.
 
-point-min
+column-0
 
-    Returns the beginning of buffer, which is always at column 0.
+    Returns the beginning of the current line, which is at column 0.
 
 comment-start
 
diff --git a/lisp/window.el b/lisp/window.el
index 576478eef88..08ce8498655 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4143,6 +4143,10 @@ X and Y are FRAME-relative pixel coordinates.  A 
coordinate on an
 edge shared by two windows is attributed to the window on the
 right (or below).  Return nil if no such window can be found.
 
+Tool-bar and tab-bar pseudo-windows are ignored by this function:
+if the specified coordinates are in any of these two windows, this
+function returns nil.
+
 Optional argument FRAME must specify a live frame and defaults to
 the selected one.  Optional argument NO-OTHER non-nil means to
 return nil if the window located at the specified coordinates has
diff --git a/src/window.c b/src/window.c
index bf89261e79c..f4e09f49eae 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1729,8 +1729,11 @@ window_from_coordinates (struct frame *f, int x, int y,
 DEFUN ("window-at", Fwindow_at, Swindow_at, 2, 3, 0,
        doc: /* Return window containing coordinates X and Y on FRAME.
 FRAME must be a live frame and defaults to the selected one.
-The top left corner of the frame is considered to be row 0,
-column 0.  */)
+X and Y are measured in units of canonical columns and rows.
+The top left corner of the frame is considered to be column 0, row 0.
+Tool-bar and tab-bar pseudo-windows are ignored by this function: if
+the specified coordinates are in any of these two windows, this
+function returns nil.  */)
   (Lisp_Object x, Lisp_Object y, Lisp_Object frame)
 {
   struct frame *f = decode_live_frame (frame);
diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts 
b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
index 57610b5483e..0f9256ad984 100644
--- a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
+++ b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
@@ -44,3 +44,37 @@ static void
 /* */
 static void
 =-=-=
+
+Code:
+  (lambda ()
+    (c-ts-mode)
+    (setq-local indent-tabs-mode nil)
+    (setq-local c-ts-mode-indent-offset 2)
+    (c-ts-mode-set-style 'gnu)
+    (indent-region (point-min) (point-max)))
+
+Name: Prev-Sibling When Prev-Sibling is Preproc
+
+=-=
+static void
+free_glyph_pool (struct glyph_pool *pool)
+{
+  if (pool)
+    {
+#if defined GLYPH_DEBUG
+      int c = 1;
+#endif
+      int check_this = 3;
+
+#ifdef stuff
+      int c = 1;
+#elif defined stuff
+      int e = 5;
+#else
+      int d = 11;
+      int f = 11;
+#endif
+      int check_this = 3;
+    }
+}
+=-=-=
diff --git a/test/lisp/progmodes/eglot-tests.el 
b/test/lisp/progmodes/eglot-tests.el
index 5d5de59a19a..7a90d68d213 100644
--- a/test/lisp/progmodes/eglot-tests.el
+++ b/test/lisp/progmodes/eglot-tests.el
@@ -103,22 +103,21 @@ then restored."
              (set (car spec) (cadr spec)))
             ((stringp (car spec)) (push spec file-specs))))
     (unwind-protect
-        (let* ((home (getenv "HOME"))
-               (process-environment
+        (let* ((process-environment
                 (append
                  `(;; Set XDF_CONFIG_HOME to /dev/null to prevent
                    ;; user-configuration to have an influence on
                    ;; language servers. (See github#441)
                    "XDG_CONFIG_HOME=/dev/null"
                    ;; ... on the flip-side, a similar technique by
-                   ;; Emacs's test makefiles means that HOME is set to
-                   ;; /nonexistent.  This breaks some common
-                   ;; installations for LSP servers like pylsp, making
-                   ;; these tests mostly useless, so we hack around it
-                   ;; here with a great big hack.
+                   ;; Emacs's test makefiles means that HOME is
+                   ;; spoofed to /nonexistent, or sometimes /tmp.
+                   ;; This breaks some common installations for LSP
+                   ;; servers like pylsp, rust-analyzer making these
+                   ;; tests mostly useless, so we hack around it here
+                   ;; with a great big hack.
                    ,(format "HOME=%s"
-                            (if (file-exists-p home) home
-                              (format "/home/%s" (getenv "USER")))))
+                            (expand-file-name (format "~%s" 
(user-login-name)))))
                  process-environment))
                ;; Prevent "Can't guess python-indent-offset ..." messages.
                (python-indent-guess-indent-offset-verbose . nil)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]