[Top][All Lists]

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

Re: some emacs-21.1.1 problems

From: Dr. Mirko Luedde
Subject: Re: some emacs-21.1.1 problems
Date: Wed, 21 Nov 2001 08:48:14 +0100 (CET)

This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

Your bug report will be posted to the address@hidden mailing list,
and to the gnu.emacs.bug news group.

In GNU Emacs 21.1.1 (i386-msvc-nt5.0.2195)
 of 2001-10-22 on buffy
configured using `configure --with-msvc (12.00)'
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: DEU
  locale-coding-system: iso-latin-1
  default-enable-multibyte-characters: t

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:


thanks again. Here are some updates.

1. When starting a bash-2.05a.0(2)-release shell in an emacs-21.1.1
buffer: "readline: warning: rl_prep_terminal: cannot get terminal
settings". I installed readline-4.2.3 from cygwin.  Bash outside of
emacs doesn't show this problem.

E. Karni wrote: 
> Did you upgrade both Cygwin and Emacs?  If so, could it be that the
> changes responsible for this problem are in Cygwin rather than in
> Emacs?

Right, I'm continuously updating the cygwin packages and I recently
upgraded emacs. The problem didn't occur for emacs-20.7 with some
previous (but unknown) versions of bash/readline. It does occur for
the configuration as stated above. It also does occur for
emacs-21.1.1, bash-2.05a.0(1)-release and readline-4.1.2. 

2. Probably related: In an ess-5.1.19 buffer when typing
e.g. "help(nls)": "ess-error: ESS process not ready. Finish your
command before trying again."

E. Karni wrote: 
> Could you please find out what does the "help" command do that is
> special?

A superficial look at the R source code of "help" showed, they are
using a lot of ".Internal" and "system" functions. I don't have any
insight into this. However, this worked with emacs-20.7 (and probably
prior cygwin versions).

3. With mailcrypt-3.5.6, gnupg-1.0.6: when decrypting a buffer:
"start-process: Removing old name: no such file or directory,

E.Karni wrote: 
> So the directory "d:\tmp" does exist on that system, yes?

Yes, I have c:\tmp, d:\tmp, c:\Tools\cygwin\tmp. 

# echo $TMP
# echo $TMPDIR

I also tried out several versions of mentioning tmp directories in
mailcrypt.el, e.g.

(defvar mc-temp-directory "d:\\tmp"
  "*Default temp directory to be used by Mailcrypt.")

and also 

(defvar mc-temp-directory temporary-file-directory
  "*Default temp directory to be used by Mailcrypt.")

Note that temporary-file-directory has the value,
"c:/DOKUME~1/ADMINI~1/LOKALE~1/Temp/" despite my TMP and TMPDIR

Neither did work. But the error message cited above ("start-process"
...) was always adapted to the new tmp path.

E.Karni wrote: 
> From the error message, it sounds like the problem happens in the
> delete-file primitive, but I cannot figure out how is start-process
> related to that.  Can you?  Can you run Emacs under a debugger?  If
> so, please put a breakpoint in the function report_file_error, and
> when that breakpoint is hit due to this problem, please tell what is
> the C-level backtrace at that point.

I don't know whether this is what you want but I used
toggle-debug-on-error, then tried to decrypt a buffer with mc-decrypt.
What I got is the following (machine code probably corrupted):


Debugger entered--Lisp error: (file-error "Spawning child process" "invalid 
  start-process("*GPG*" #<buffer  *mailcrypt stdout temp> "/bin/sh" "-c" "gpg 
--status-fd 3 3>d:/tmp/mailcrypt-gpg-status-1128kbB 
2>d:/tmp/mailcrypt-gpg-stderr-1128yRy --batch --decrypt")
  start-process-shell-command("*GPG*" #<buffer  *mailcrypt stdout temp> "gpg" 
"--status-fd" "3" "3>d:/tmp/mailcrypt-gpg-status-1128kbB" 
"2>d:/tmp/mailcrypt-gpg-stderr-1128yRy" "--batch" "--decrypt")
  apply(start-process-shell-command "*GPG*" #<buffer  *mailcrypt stdout temp> 
"gpg" ("--status-fd" "3" "3>d:/tmp/mailcrypt-gpg-status-1128kbB" 
"2>d:/tmp/mailcrypt-gpg-stderr-1128yRy" "--batch" "--decrypt"))
  (setq proc (apply (quote start-process-shell-command) "*GPG*" mybuf program 
  (progn (setq mybuf (get-buffer-create " *mailcrypt stdout temp")) (set-buffer 
mybuf) (erase-buffer) (set-buffer obuf) (buffer-disable-undo mybuf) (if passwd 
(setq args ...)) (setq args (append ... args)) (setq args (append ... args)) 
(setq args (append ... args)) (if mc-gpg-extra-args (setq args ...)) 
(mc-gpg-debug-print (format "prog is %s, args are %s" program ...)) (setq proc 
(apply ... "*GPG*" mybuf program args)) (if passwd (progn ... ...)) 
(process-send-region proc beg end) (process-send-eof proc) (while (eq ... ...) 
(accept-process-output proc 5)) (setq status (process-status proc)) (setq rc 
(process-exit-status proc)) (mc-gpg-debug-print (format "prog finished, rc=%s" 
rc)) (delete-process proc) (set-buffer mybuf) (goto-char (point-max)) (if 
(re-search-backward "\nProcess \\*GPG.*\n\\'" nil t) (delete-region ... ...)) 
(goto-char (point-min)) (while (search-forward "
\n" nil t) (replace-match "\n")) (if (or ... ...) (error "%s exited abnormally: 
'%s'" program rc)) (if (= 127 rc) (error "%s could not be found" program)) 
(setq stderr-buf (get-buffer-create " *mailcrypt stderr temp")) 
(buffer-disable-undo stderr-buf) (set-buffer stderr-buf) (erase-buffer) 
(insert-file-contents stderr-tempfilename) (setq status-buf (get-buffer-create 
" *mailcrypt status temp")) (buffer-disable-undo status-buf) (set-buffer 
status-buf) (erase-buffer) (insert-file-contents status-tempfilename) 
(set-buffer mybuf) (setq parser-result (funcall parser mybuf stderr-buf 
status-buf rc parserdata)) (mc-gpg-debug-print (format " parser returned %s" 
parser-result)) (if (car parser-result) (progn ... ... ... ...)) (cdr 
  (unwind-protect (progn (setq mybuf ...) (set-buffer mybuf) (erase-buffer) 
(set-buffer obuf) (buffer-disable-undo mybuf) (if passwd ...) (setq args ...) 
(setq args ...) (setq args ...) (if mc-gpg-extra-args ...) (mc-gpg-debug-print 
...) (setq proc ...) (if passwd ...) (process-send-region proc beg end) 
(process-send-eof proc) (while ... ...) (setq status ...) (setq rc ...) 
(mc-gpg-debug-print ...) (delete-process proc) (set-buffer mybuf) (goto-char 
...) (if ... ...) (goto-char ...) (while ... ...) (if ... ...) (if ... ...) 
(setq stderr-buf ...) (buffer-disable-undo stderr-buf) (set-buffer stderr-buf) 
(erase-buffer) (insert-file-contents stderr-tempfilename) (setq status-buf ...) 
(buffer-disable-undo status-buf) (set-buffer status-buf) (erase-buffer) 
(insert-file-contents status-tempfilename) (set-buffer mybuf) (setq 
parser-result ...) (mc-gpg-debug-print ...) (if ... ...) (cdr parser-result)) 
(if (and proc ...) (interrupt-process proc)) (set-buffer obuf) (delete-file 
stderr-tempfilename) (delete-file status-tempfilename) (if (not 
mc-gpg-debug-buffer) (progn ... ... ...)))
  (let ((obuf ...) (process-connection-type nil) (shell-file-name "/bin/sh") 
mybuf stderr-tempfilename stderr-buf status-tempfilename status-buf proc rc 
status parser-result) (mc-gpg-debug-print (format "(mc-gpg-process-region 
beg=%s end=%s passwd=%s program=%s args=%s parser=%s bufferdummy=%s)" beg end 
passwd program args parser bufferdummy)) (setq stderr-tempfilename 
(make-temp-name ...)) (setq status-tempfilename (make-temp-name ...)) 
(unwind-protect (progn ... ... ... ... ... ... ... ... ... ... ... ... ... ... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 
... ... ... ... ... ... ... ...) (if ... ...) (set-buffer obuf) (delete-file 
stderr-tempfilename) (delete-file status-tempfilename) (if ... ...)))
  mc-gpg-process-region(1 9529 nil "gpg" ("--batch" "--decrypt") 
mc-gpg-decrypt-parser #<buffer *MailCrypt*> nil)
  (setq result (mc-gpg-process-region start end passwd mc-gpg-path args (quote 
mc-gpg-decrypt-parser) buffer id))
  (let ((process-environment process-environment) (buffer ...) (obuf ...) args 
key new-key passwd result gpg-id) (mc-gpg-debug-print (format 
"(mc-gpg-decrypt-region start=%s end=%s id=%s)" start end id)) (undo-boundary) 
(if id (progn ... ... ...)) (setq args (quote ...)) (if 
mc-gpg-alternate-keyring (setq args ...)) (setq args (append args ...)) 
(message "Decrypting...") (setq result (mc-gpg-process-region start end passwd 
mc-gpg-path args ... buffer id)) (cond (... ...) (... ... ...) (... ...) (... 
...) (t ... ...)))
  mc-gpg-decrypt-region(1 9529)
  funcall(mc-gpg-decrypt-region 1 9529)
  (let ((resultval ...)) (goto-char (point-min)) (if (car resultval) (run-hooks 
...)) resultval)
  (if (null limits) (error "Found no encrypted message in this buffer.") 
(run-hooks (quote mc-pre-decryption-hook)) (let (...) (goto-char ...) (if ... 
...) resultval))
  (let ((schemes mc-schemes) limits (scheme mc-default-scheme)) (if 
mc-default-scheme (setq limits ...)) (while (and ... schemes ... ...) (setq 
schemes ...)) (if (null limits) (error "Found no encrypted message in this 
buffer.") (run-hooks ...) (let ... ... ... resultval)))
  (save-excursion (let (... limits ...) (if mc-default-scheme ...) (while ... 
...) (if ... ... ... ...)))
  (let* ((mode-alist ...) (func ...)) (funcall func))
* call-interactively(execute-extended-command)
  byte-code("ÂÆ!ÂˆÂÇ ÂˆÂÈ   
 !ÂˆÂÎ Âˆ     @ÂÏ=ÂƒKÂÐÑÂÒ\"ÂˆÂÓ 
ÂˆÂÌÔ!ÂˆÂÒÕÂÒÂÌÔ!ÂˆÂŠÂÖ Âˆ,ÂÕ‡" 
[debugger-buffer debugger-args noninteractive debugger-batch-max-lines 
middlestart buffer-read-only pop-to-buffer debugger-mode debugger-setup-buffer 
count-lines 2 "...\n" message buffer-string kill-emacs debug backtrace-debug 3 
t debugger-reenable "" nil recursive-edit standard-output inhibit-trace] 3)
* call-interactively(execute-extended-command)


6. Files of type ".tar" will not be parsed correctly in dired-mode
  (untarred with GNU-tar-1.13.19, tarred with some prior version).

E.Karni wrote:
> Sounds like the problem is with the @LongLink thingy, which is a GNU
> Tar specific way of handling extremely long file names.  Are you
> saying that Tar mode in Emacs 20 worked with these names?

It worked, some months (or years?) ago, but meanwhile emacs, cygwin
and tar changed. Note that the errors are of diverse type. One tar
file simply might get incorrectly parsed, another tar file would show
up an error: `File mode specification error: (error
has size -58005590 - corrupted")'. Parsing seems to go wrong long
before any "@LongLink" is encountered.

E.Karni wrote:
> I still think it has something to do with
> langauge/coding-system. Can you send the result of
> describe-coding-system when you are in the tar buffer ?


Coding system for saving this buffer:
  = -- no-conversion (alias: binary)
Default coding system (for new files):
  1 -- iso-latin-1-dos
Coding system for keyboard input:
Coding system for terminal output:
  1 -- iso-latin-1 (alias: iso-8859-1 latin-1)
Defaults for subprocess I/O:
  decoding: - -- undecided-dos
  encoding: - -- undecided-unix

Priority order for recognizing coding systems when reading files:
  1. iso-latin-1 (alias: iso-8859-1 latin-1)
  2. iso-2022-jp (alias: junet)
  3. iso-2022-7bit 
  4. iso-2022-7bit-lock (alias: iso-2022-int-1)
  5. iso-2022-8bit-ss2 
  6. emacs-mule 
  7. raw-text 
  8. japanese-shift-jis (alias: shift_jis sjis)
  9. chinese-big5 (alias: big5 cn-big5)
  10. no-conversion (alias: binary)
  11. mule-utf-8 (alias: utf-8)

  Other coding systems cannot be distinguished automatically
  from these, and therefore cannot be recognized automatically
  with the present coding system priorities.

  The followings are decoded correctly but recognized as iso-2022-7bit-lock:
    iso-2022-7bit-ss2 iso-2022-7bit-lock-ss2 iso-2022-cn iso-2022-cn-ext
    iso-2022-jp-2 iso-2022-kr

Particular coding systems specified for certain file names:

  ---------     --------------          ----------------
  File I/O      "\\.g?z\\(~\\|\\.~[0-9]+~\\)?\\'"
                                        (no-conversion . no-conversion)
                "\\.tgz\\'"             (no-conversion . no-conversion)
                "\\.bz2\\'"             (no-conversion . no-conversion)
                                        (no-conversion . no-conversion)
                "\\.elc\\'"             (emacs-mule . emacs-mule)
                                        (raw-text . raw-text-unix)
                "\\.tar\\'"             (no-conversion . no-conversion)
                ""                      find-buffer-file-type-coding-system
  Process I/O   nothing specified
  Network I/O   nothing specified


Regards, Mirko. 

reply via email to

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