GNU bug report logs - #46003
prolog-mode: inferior prolog process not available when prolog-inferior-mode-hook is run

Previous Next

Package: emacs;

Reported by: Tim Lee <progscriptclone <at> gmail.com>

Date: Wed, 20 Jan 2021 08:34:01 UTC

Severity: normal

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 46003 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: k3tu0isui <at> gmail.com
Cc: progscriptclone <at> gmail.com, 46003 <at> debbugs.gnu.org
Subject: Re: bug#46003: prolog-mode: inferior prolog process not available
 when prolog-inferior-mode-hook is run
Date: Tue, 07 Jun 2022 16:37:56 +0200
k3tu0isui <at> gmail.com writes:

> I assume this was required because (prolog-inferior-mode) sets up the
> variables required for (prolog-program-name) and (prolog-program-switches).

Those are computed before we enter prolog-inferior-mode, though...  Oh,
because you've fixed that in an earlier applied patch.

> If the relevant variables are inherited from the buffer from which
> run-prolog is called then, this bug fix[1] will remove this dependency
> and prolog-inferior-mode can be activated after the process is
> created.
>
> [1]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45795

OK, then I'm applying this patch to Emacs 29, which should fix this bug
report:

diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 8382c4bd09..9598209f5e 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -1355,8 +1355,6 @@ prolog-ensure-process
         (error "This Prolog system has defined no interpreter"))
     (unless (comint-check-proc "*prolog*")
       (with-current-buffer (get-buffer-create "*prolog*")
-        (prolog-inferior-mode)
-
         ;; The "INFERIOR=yes" hack is for SWI-Prolog 7.2.3 and earlier,
         ;; which assumes it is running under Emacs if either INFERIOR=yes or
         ;; if EMACS is set to a nonempty value.  The EMACS setting is
@@ -1369,6 +1367,7 @@ prolog-ensure-process
 	         (cons "INFERIOR=yes" process-environment))))
 	  (apply 'make-comint-in-buffer "prolog" (current-buffer)
 	         pname nil pswitches))
+        (prolog-inferior-mode)
 
         (unless prolog-system
           ;; Setup auto-detection.



-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




This bug report was last modified 3 years and 68 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.