bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii c


From: Vincent Belaïche
Subject: bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename
Date: Wed, 06 Feb 2019 20:52:38 +0100

Hello Emacs experts,

I am trying to do some 'M-x ediff-revision' on a file that is under
version control with svn locally to my MSWindows-10 machine, and that
does not work.

The file path is something like

c:/blah/blah/blah/ê/trunk/ê.tex
(well, it is not exactly this exact string, but I presume that makes no
difference for our concern…).
After some debugging, I realized that the whole thing executes with
default-directory set to "c:/blah/blah/blah/ê/trunk/" the following
two commands:

 (process-file "svn" nil t nil "--non-interactive" "status" "-v" "ê.tex")

and then:

 (process-file "svn" nil t nil "--non-interactive" "cat" "ê.tex")

The first command works quite fine, but the second one fails, and having
a look info the " *temp*" buffer, I saw that svn angrilly barks with
some error message like this one:
--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
svn: warning: W200005: 'C:\blah\blah\blah\\trunk\ª.tex' is not under version 
control
svn: E200009: Could not cat all targets because some targets are not versioned
svn: E200009: Illegal target for the requested operation
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

looking more carefully at things, and having inspected the C code of
function call-process, I realized that the variable
coding-system-for-write has some importance, and tracing this I realized
that when the first svn command is called the variable
coding-system-for-write is nil, while when the second svn command is
called it is 'no-conversion, which makes it fail.
The problem is that in the vc-find-revision function you have somewhere
this setting :
 (let ( … (coding-system-for-write 'no-conversion) …) …)

here is a backtrace where I marked two lines X and Y.
--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
Debugger entered--Lisp error: (error "Failed (status 1): svn --non-interactive 
cat  ê.tex")
  signal(error ("Failed (status 1): svn --non-interactive cat  ê.tex"))
  error("Failed (%s): %s" "status 1" "svn --non-interactive cat  ê.tex")
  (progn (if (eq 32 (aref (buffer-name (current-buffer)) 0)) nil (pop-to-buffer 
(current-buffer)) (goto-char (point-min)) 
(shrink-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if (integerp 
status) (format "status %d" status) status) full-command))
Y (if (and (not (eq t okstatus)) (or (not (integerp status)) (and okstatus (< 
okstatus status)))) (progn (if (eq 32 (aref (buffer-name (current-buffer)) 0)) 
nil (pop-to-buffer (current-buffer)) (goto-char (point-min)) 
(shrink-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if (integerp 
status) (format "status %d" status) status) full-command)))
  (if (eq okstatus 'async) (let ((proc (let ((process-connection-type nil)) 
(apply 'start-file-process command (current-buffer) command squeezed)))) (if 
vc-command-messages (progn (message "Running in background: %s" full-command))) 
(set-process-sentinel proc #'ignore) (set-process-filter proc 
'vc-process-filter) (setq status proc) (if vc-command-messages (progn 
(vc-exec-after #'(lambda nil (let ... ...)))))) (if vc-command-messages (progn 
(message "Running in foreground: %s" full-command))) (let ((buffer-undo-list 
t)) (message "CSFW=%S" coding-system-for-write) (message "CS=%S" (apply 
'find-operation-coding-system 'call-process "svn" squeezed)) (message "DIR=%s" 
default-directory) (message "SQUEEZED=%S" squeezed) (setq status (apply 
'process-file command nil t nil squeezed))) (if (and (not (eq t okstatus)) (or 
(not (integerp status)) (and okstatus (< okstatus status)))) (progn (if (eq 32 
(aref (buffer-name (current-buffer)) 0)) nil (pop-to-buffer (current-buffer)) 
(goto-char (point-min)) (shrink-window-if-larger-than-buffer)) (error "Failed 
(%s): %s" (if (integerp status) (format "status %d" status) status) 
full-command))) (if vc-command-messages (progn (message "Done (status=%d): %s" 
status full-command))))
  (let ((process-environment (cons "LC_MESSAGES=C" process-environment)) 
(w32-quote-process-args t)) (if (eq okstatus 'async) (let ((proc (let 
((process-connection-type nil)) (apply 'start-file-process command 
(current-buffer) command squeezed)))) (if vc-command-messages (progn (message 
"Running in background: %s" full-command))) (set-process-sentinel proc 
#'ignore) (set-process-filter proc 'vc-process-filter) (setq status proc) (if 
vc-command-messages (progn (vc-exec-after #'(lambda nil ...))))) (if 
vc-command-messages (progn (message "Running in foreground: %s" full-command))) 
(let ((buffer-undo-list t)) (message "CSFW=%S" coding-system-for-write) 
(message "CS=%S" (apply 'find-operation-coding-system 'call-process "svn" 
squeezed)) (message "DIR=%s" default-directory) (message "SQUEEZED=%S" 
squeezed) (setq status (apply 'process-file command nil t nil squeezed))) (if 
(and (not (eq t okstatus)) (or (not (integerp status)) (and okstatus (< 
okstatus status)))) (progn (if (eq 32 (aref (buffer-name ...) 0)) nil 
(pop-to-buffer (current-buffer)) (goto-char (point-min)) 
(shrink-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if (integerp 
status) (format "status %d" status) status) full-command))) (if 
vc-command-messages (progn (message "Done (status=%d): %s" status 
full-command)))))
  (let ((squeezed (remq nil flags)) (inhibit-read-only t) (status 0)) (if files 
(progn (setq squeezed (nconc squeezed files)))) (let ((process-environment 
(cons "LC_MESSAGES=C" process-environment)) (w32-quote-process-args t)) (if (eq 
okstatus 'async) (let ((proc (let (...) (apply ... command ... command 
squeezed)))) (if vc-command-messages (progn (message "Running in background: 
%s" full-command))) (set-process-sentinel proc #'ignore) (set-process-filter 
proc 'vc-process-filter) (setq status proc) (if vc-command-messages (progn 
(vc-exec-after #'...)))) (if vc-command-messages (progn (message "Running in 
foreground: %s" full-command))) (let ((buffer-undo-list t)) (message "CSFW=%S" 
coding-system-for-write) (message "CS=%S" (apply 'find-operation-coding-system 
'call-process "svn" squeezed)) (message "DIR=%s" default-directory) (message 
"SQUEEZED=%S" squeezed) (setq status (apply 'process-file command nil t nil 
squeezed))) (if (and (not (eq t okstatus)) (or (not (integerp status)) (and 
okstatus (< okstatus status)))) (progn (if (eq 32 (aref ... 0)) nil 
(pop-to-buffer (current-buffer)) (goto-char (point-min)) 
(shrink-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if (integerp 
status) (format "status %d" status) status) full-command))) (if 
vc-command-messages (progn (message "Done (status=%d): %s" status 
full-command))))) (vc-exec-after #'(lambda nil (run-hook-with-args 
'vc-post-command-functions command file-or-list flags))) status)
  (save-current-buffer (if (or (eq buffer t) (and (stringp buffer) (string= 
(buffer-name) buffer)) (eq buffer (current-buffer))) nil (vc-setup-buffer 
buffer)) (let ((squeezed (remq nil flags)) (inhibit-read-only t) (status 0)) 
(if files (progn (setq squeezed (nconc squeezed files)))) (let 
((process-environment (cons "LC_MESSAGES=C" process-environment)) 
(w32-quote-process-args t)) (if (eq okstatus 'async) (let ((proc (let ... 
...))) (if vc-command-messages (progn (message "Running in background: %s" 
full-command))) (set-process-sentinel proc #'ignore) (set-process-filter proc 
'vc-process-filter) (setq status proc) (if vc-command-messages (progn 
(vc-exec-after ...)))) (if vc-command-messages (progn (message "Running in 
foreground: %s" full-command))) (let ((buffer-undo-list t)) (message "CSFW=%S" 
coding-system-for-write) (message "CS=%S" (apply 'find-operation-coding-system 
'call-process "svn" squeezed)) (message "DIR=%s" default-directory) (message 
"SQUEEZED=%S" squeezed) (setq status (apply 'process-file command nil t nil 
squeezed))) (if (and (not (eq t okstatus)) (or (not ...) (and okstatus ...))) 
(progn (if (eq 32 ...) nil (pop-to-buffer ...) (goto-char ...) 
(shrink-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if ... ... 
status) full-command))) (if vc-command-messages (progn (message "Done 
(status=%d): %s" status full-command))))) (vc-exec-after #'(lambda nil 
(run-hook-with-args 'vc-post-command-functions command file-or-list flags))) 
status))
  (let* ((files (mapcar #'(lambda (f) (file-relative-name (expand-file-name 
f))) (if (listp file-or-list) file-or-list (list file-or-list)))) 
(message-truncate-lines t) (full-command (concat (if (string= (substring 
command -1) "\n") (substring command 0 -1) command) " " (vc-delistify flags) " 
" (vc-delistify files)))) (save-current-buffer (if (or (eq buffer t) (and 
(stringp buffer) (string= (buffer-name) buffer)) (eq buffer (current-buffer))) 
nil (vc-setup-buffer buffer)) (let ((squeezed (remq nil flags)) 
(inhibit-read-only t) (status 0)) (if files (progn (setq squeezed (nconc 
squeezed files)))) (let ((process-environment (cons "LC_MESSAGES=C" 
process-environment)) (w32-quote-process-args t)) (if (eq okstatus 'async) (let 
((proc ...)) (if vc-command-messages (progn ...)) (set-process-sentinel proc 
#'ignore) (set-process-filter proc 'vc-process-filter) (setq status proc) (if 
vc-command-messages (progn ...))) (if vc-command-messages (progn (message 
"Running in foreground: %s" full-command))) (let ((buffer-undo-list t)) 
(message "CSFW=%S" coding-system-for-write) (message "CS=%S" (apply ... ... 
"svn" squeezed)) (message "DIR=%s" default-directory) (message "SQUEEZED=%S" 
squeezed) (setq status (apply ... command nil t nil squeezed))) (if (and (not 
...) (or ... ...)) (progn (if ... nil ... ... ...) (error "Failed (%s): %s" ... 
full-command))) (if vc-command-messages (progn (message "Done (status=%d): %s" 
status full-command))))) (vc-exec-after #'(lambda nil (run-hook-with-args 
'vc-post-command-functions command file-or-list flags))) status)))
  vc-do-command(#<buffer  *temp file*-256291> 0 "svn" 
"c:/blah/blah/blah/ê/trunk/ê.tex" "--non-interactive" "cat" nil)
  apply(vc-do-command #<buffer  *temp file*-256291> 0 "svn" 
"c:/blah/blah/blah/ê/trunk/ê.tex" ("--non-interactive" "cat" nil))
  vc-svn-command(#<buffer  *temp file*-256291> 0 
"c:/blah/blah/blah/ê/trunk/ê.tex" "cat" nil)
  apply(vc-svn-command #<buffer  *temp file*-256291> 0 
"c:/blah/blah/blah/ê/trunk/ê.tex" "cat" nil nil)
  (let (process-file-side-effects) (apply 'vc-svn-command buffer 0 file "cat" 
(and rev (not (string= rev "")) (concat "-r" rev)) (vc-switches 'SVN 
'checkout)))
  vc-svn-find-revision("c:/blah/blah/blah/ê/trunk/ê.tex" nil #<buffer  *temp 
file*-256291>)
  apply(vc-svn-find-revision ("c:/blah/blah/blah/ê/trunk/ê.tex" nil #<buffer  
*temp file*-256291>))
  vc-call-backend(SVN find-revision "c:/blah/blah/blah/ê/trunk/ê.tex" nil 
#<buffer  *temp file*-256291>)
  (if backend (vc-call-backend backend 'find-revision file revision outbuf) 
(vc-call-backend (vc-backend file) 'find-revision file revision outbuf))
  (save-current-buffer (set-buffer filebuf) (if backend (vc-call-backend 
backend 'find-revision file revision outbuf) (vc-call-backend (vc-backend file) 
'find-revision file revision outbuf)))
  (let ((outbuf (current-buffer))) (save-current-buffer (set-buffer filebuf) 
(if backend (vc-call-backend backend 'find-revision file revision outbuf) 
(vc-call-backend (vc-backend file) 'find-revision file revision outbuf))))
  (save-current-buffer (set-buffer temp-buffer) (let ((outbuf 
(current-buffer))) (save-current-buffer (set-buffer filebuf) (if backend 
(vc-call-backend backend 'find-revision file revision outbuf) (vc-call-backend 
(vc-backend file) 'find-revision file revision outbuf)))))
  (prog1 (save-current-buffer (set-buffer temp-buffer) (let ((outbuf 
(current-buffer))) (save-current-buffer (set-buffer filebuf) (if backend 
(vc-call-backend backend 'find-revision file revision outbuf) (vc-call-backend 
(vc-backend file) 'find-revision file revision outbuf))))) (save-current-buffer 
(set-buffer temp-buffer) (write-region nil nil temp-file nil 0)))
  (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (let 
((outbuf (current-buffer))) (save-current-buffer (set-buffer filebuf) (if 
backend (vc-call-backend backend 'find-revision file revision outbuf) 
(vc-call-backend (vc-backend file) 'find-revision file revision outbuf))))) 
(save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file 
nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (let ((temp-file filename) (temp-buffer (get-buffer-create 
(generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 
(save-current-buffer (set-buffer temp-buffer) (let ((outbuf (current-buffer))) 
(save-current-buffer (set-buffer filebuf) (if backend (vc-call-backend backend 
... file revision outbuf) (vc-call-backend ... ... file revision outbuf))))) 
(save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file 
nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
X (let ((coding-system-for-read 'no-conversion) (coding-system-for-write 
'no-conversion)) (let ((temp-file filename) (temp-buffer (get-buffer-create 
(generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 
(save-current-buffer (set-buffer temp-buffer) (let ((outbuf ...)) 
(save-current-buffer (set-buffer filebuf) (if backend ... ...)))) 
(save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file 
nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (setq 
failed nil))
  (unwind-protect (let ((coding-system-for-read 'no-conversion) 
(coding-system-for-write 'no-conversion)) (let ((temp-file filename) 
(temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) 
(unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (let (...) 
(save-current-buffer ... ...))) (save-current-buffer (set-buffer temp-buffer) 
(write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) 
(kill-buffer temp-buffer)))) (setq failed nil)) (if (and failed (file-exists-p 
filename)) (progn (delete-file filename))))
  (let ((failed t)) (unwind-protect (let ((coding-system-for-read 
'no-conversion) (coding-system-for-write 'no-conversion)) (let ((temp-file 
filename) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp 
file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) 
(let ... ...)) (save-current-buffer (set-buffer temp-buffer) (write-region nil 
nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer 
temp-buffer)))) (setq failed nil)) (if (and failed (file-exists-p filename)) 
(progn (delete-file filename)))))
  (save-current-buffer (set-buffer filebuf) (let ((failed t)) (unwind-protect 
(let ((coding-system-for-read 'no-conversion) (coding-system-for-write 
'no-conversion)) (let ((temp-file filename) (temp-buffer (get-buffer-create 
...))) (unwind-protect (prog1 (save-current-buffer ... ...) 
(save-current-buffer ... ...)) (and (buffer-name temp-buffer) (kill-buffer 
temp-buffer)))) (setq failed nil)) (if (and failed (file-exists-p filename)) 
(progn (delete-file filename))))) (vc-mode-line file))
  (if (file-exists-p automatic-backup) (rename-file automatic-backup filename 
nil) (message "Checking out %s..." filename) (save-current-buffer (set-buffer 
filebuf) (let ((failed t)) (unwind-protect (let ((coding-system-for-read 
'no-conversion) (coding-system-for-write 'no-conversion)) (let ((temp-file 
filename) (temp-buffer ...)) (unwind-protect (prog1 ... ...) (and ... ...))) 
(setq failed nil)) (if (and failed (file-exists-p filename)) (progn 
(delete-file filename))))) (vc-mode-line file)) (message "Checking out 
%s...done" filename))
  (if (file-exists-p filename) nil (if (file-exists-p automatic-backup) 
(rename-file automatic-backup filename nil) (message "Checking out %s..." 
filename) (save-current-buffer (set-buffer filebuf) (let ((failed t)) 
(unwind-protect (let ((coding-system-for-read ...) (coding-system-for-write 
...)) (let (... ...) (unwind-protect ... ...)) (setq failed nil)) (if (and 
failed (file-exists-p filename)) (progn (delete-file filename))))) 
(vc-mode-line file)) (message "Checking out %s...done" filename)))
  (let ((automatic-backup (vc-version-backup-file-name file revision)) (filebuf 
(or (get-file-buffer file) (current-buffer))) (filename 
(vc-version-backup-file-name file revision 'manual))) (if (file-exists-p 
filename) nil (if (file-exists-p automatic-backup) (rename-file 
automatic-backup filename nil) (message "Checking out %s..." filename) 
(save-current-buffer (set-buffer filebuf) (let ((failed t)) (unwind-protect 
(let (... ...) (let ... ...) (setq failed nil)) (if (and failed ...) (progn 
...)))) (vc-mode-line file)) (message "Checking out %s...done" filename))) (let 
((result-buf (find-file-noselect filename))) (save-current-buffer (set-buffer 
result-buf) (set (make-local-variable 'vc-parent-buffer) filebuf)) result-buf))
  vc-find-revision("c:/blah/blah/blah/ê/trunk/ê.tex" nil)
  … … … …
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

On line X coding-system-for-write is set to 'no-conversion.
line Y is shown here in function vc-do-command, where I also marked a
line as Z:

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
            ;; Run synchronously
            (when vc-command-messages
              (message "Running in foreground: %s" full-command))
            (let ((buffer-undo-list t))
Z             (setq status (apply 'process-file command nil t nil squeezed)))
Y           (when (and (not (eq t okstatus))
                       (or (not (integerp status))
                           (and okstatus (< okstatus status))))
              (unless (eq ?\s (aref (buffer-name (current-buffer)) 0))
                (pop-to-buffer (current-buffer))
                (goto-char (point-min))
                (shrink-window-if-larger-than-buffer))
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

Line Z is where the svn command are called, and there a function
process-file is called, this function calls in turn function
call-process. Function call-process encodes the arguments when
necessary, but the setting of coding-system-for-write to 'no-conversion
disturbs that, and OUCH, the command line passed to svn is not properly
encoded, so with some reason svn unhappilly barks.
OK, I know that some Askese people will probably say something like
« don't use non-ASCII characters in file-names » which is IMHO quite a
ASCII-centric way of thinking, so just in case, my answer is « Î wîll
ùse nôn-ÀSCÎÎ çhærâctèrs név
œrthel
èss, because Î àm mysèlf a nôn-ASCII
pèrsôn ! » ;-)

  Vincent.


In GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32)
 of 2018-08-10 built on AIGLEROYAL
Windowing system distributor 'Microsoft Corp.', version 10.0.17134
Recent messages:
Continuing through this frame
Checking out 
c:/Users/Vincent/Documents/administration/divers/20181212_je_veux_être_un_homme_euro/trunk/20181212_je_veux_être_un_homme_euro.tex.~118~...
Running in foreground: svn --non-interactive cat  
20181212_je_veux_être_un_homme_euro.tex
CSFW=no-conversion
CS=(windows-1252 . windows-1252)
DIR=c:/Users/Vincent/Documents/administration/divers/20181212_je_veux_être_un_homme_euro/trunk/
SQUEEZED=("--non-interactive" "cat" "20181212_je_veux_être_un_homme_euro.tex")
Entering debugger...
Mark set
Making completion list...

Configured using:
 'configure --prefix=C:/Nos_Programmes/GNU/Emacs
 PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig
 'CFLAGS= -Og -g3 -L
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/src' 'CPPFLAGS=
 -DFOR_MSW=1 -I
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/include -I
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/src -L
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/src'
 PKG_CONFIG=/usr/bin/pkg-config.exe'

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS THREADS LCMS2

Important settings:
  value of $LC_MESSAGES: C
  value of $LANG: FRA
  locale-coding-system: cp1252

Major mode: Emacs-Lisp

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  TeX-PDF-mode: t
  recentf-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
c:/Programmes/installation/cedet-install/cedet-git/lisp/speedbar/loaddefs hides 
c:/Nos_Programmes/GNU/Emacs/share/emacs/27.0.50/lisp/loaddefs
c:/Programmes/installation/cedet-install/cedet-git/lisp/speedbar/loaddefs hides 
c:/Programmes/installation/cedet-install/cedet-git/lisp/cedet/loaddefs

Features:
(shadow emacsbug vc-annotate vc-filewise edebug completion find-cmd grep
find-dired pp face-remap ediff-ptch eieio-opt vc-git diff-mode help-fns
radix-tree cl-print debug backtrace ediff-vers ediff-merg ediff-wind
ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff vc-rcs
vc-dir bbdb-com vc reftex-cite reftex-parse texmathp org-rmail org-mhe
org-irc org-info org-gnus nnir gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win gnus nnheader org-docview doc-view jka-compr
image-mode org-bibtex bibtex org-bbdb org-w3m org-element org org-macro
org-footnote org-pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func
cal-tex cal-menu calendar cal-loaddefs misearch multi-isearch
vc-dispatcher vc-svn preview prv-emacs reftex-dcr reftex reftex-loaddefs
reftex-vars tex-bar tex-buf toolbar-x noutline outline font-latex latex
latex-flymake flymake-proc flymake warnings tex-ispell tex-style
tex-mode shell pcomplete latexenc log-edit add-log pcvs pcvs-parse
pcvs-info pcvs-defs pcvs-util ewoc calc-undo calccomp calc-vec calc-aent
calc-alg calc-menu parse-time vc-cvs hl-line balance calc-forms
network-stream nsm mailalias smtpmail qp sort bbdb-message sendmail
mail-extr message rmc puny format-spec rfc822 mml mml-sec epa gnus-util
rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils
gmm-utils mailheader elec-pair edmacro kmacro jdee jdee-wiz jdee-test
jdee-archive memoize jdee-stacktrace jdee-refactor dired-aux dired-x
dired dired-loaddefs jdee-project-file jdee-maven dash jdee-keys
jdee-jdb jdee-java-grammar jdee-which-method jdee-font-lock jdee-issues
jdee-help jdee-gen tempo jdee-find jdee-deps jdee-cygwin jdee-custom
jdee-compile jdee-class jdee-bytecode jdee-bug easy-mmode jdee-dbs
jdee-run jdee-jdk-manager jdee-dbo jdee-widgets jdee-db jdee-open-source
semantic/senator semantic/db-find semantic/db-ref semantic/decorate
pulse jdee-import jdee-complete semantic/idle working fame jdee-parse
jdee-backend jdee-bsh jdee-util arc-mode archive-mode jdee-parse-expr
beanshell thingatpt semantic/sb speedbar sb-image dframe jdee-imenu
semantic/imenu imenu semantic/sort semantic/db-file semantic/adebug
eieio-datadebug data-debug cedet-files semantic/db eieio-base
semantic/java semantic/format ezimage semantic/tag-ls semantic/find
semantic/doc semantic/ctxt semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local jdee-avl-tree avl-tree
generator etags xref project efc eieio-compat jdee-annotations
jdee-abbrev jdee-classpath jdee-files jdee-activator jdee-log executable
cus-edit cus-start cus-load compile comint ansi-color ring cedet cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs browse-url flatland-black-theme calc-misc calc-arith calc-ext
calc calc-loaddefs calc-macs skeleton rx tex-mik tex crm advice
preview-latex auto-loads tex-site bbdb bbdb-site timezone bbdb-loaddefs
template w32utils cl recentf tree-widget wid-edit load-path-to-cedet-svn
time-date mule-util finder-inf package let-alist derived pcase cl-extra
help-mode easymenu url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq
byte-opt gv bytecomp byte-compile cconv epg epg-config subr-x
cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win
w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads w32notify w32 lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 705712 103613)
 (symbols 56 59375 1)
 (miscs 48 1904 2148)
 (strings 32 161627 7850)
 (string-bytes 1 5385398)
 (vectors 16 71779)
 (vector-slots 8 2019402 40514)
 (floats 8 326 902)
 (intervals 56 18236 3220)
 (buffers 992 66))

reply via email to

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