]> git.eshelyaron.com Git - emacs.git/log
emacs.git
4 years ago* src/lread.c (Fload): Clean-up unnecessary sanity check.
Andrea Corallo [Mon, 13 Apr 2020 15:57:27 +0000 (16:57 +0100)]
* src/lread.c (Fload): Clean-up unnecessary sanity check.

'is_native_elisp' can't be non zero if NATIVE_COMP_FLAG is not set.

4 years agoFix function find mechanism for installed instance.
Andrea Corallo [Mon, 13 Apr 2020 15:54:03 +0000 (16:54 +0100)]
Fix function find mechanism for installed instance.

* src/lread.c (parent_directory): New function.
(Fload): Make use of 'parent_directory' and fix load-history
build-up with relative paths.

4 years ago* src/lread.c (Fload): Add comment.
Andrea Corallo [Mon, 13 Apr 2020 10:07:11 +0000 (11:07 +0100)]
* src/lread.c (Fload): Add comment.

4 years agoMerge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Mon, 13 Apr 2020 09:55:51 +0000 (10:55 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD

4 years agoRevert "Fix org for eln new compilation folder layout"
Andrea Corallo [Sun, 12 Apr 2020 21:17:08 +0000 (22:17 +0100)]
Revert "Fix org for eln new compilation folder layout"

This reverts commit f77f6ca77054ca6122df2742345710b7493ad293.

4 years agoIntroduce load-true-file-name
Andrea Corallo [Sun, 12 Apr 2020 20:15:52 +0000 (21:15 +0100)]
Introduce load-true-file-name

* src/comp.c (maybe_defer_native_compilation): Use
`load-true-file-name' instead of `load-file-name'.

* src/lread.c (Fload, end_of_file_error, read1, read_list)
(init_lread, syms_of_lread): Add new `load-true-file-name' and
fake `load-file-name' value when loading .eln files.

4 years agoFix last change
Eli Zaretskii [Mon, 13 Apr 2020 09:25:37 +0000 (12:25 +0300)]
Fix last change

* lisp/mail/rmail.el (rmail-simplified-subject): A prefix can have
up to 4 characters, not 3.

4 years agoImprove support of "Re:" in Rmail
Eli Zaretskii [Mon, 13 Apr 2020 08:43:39 +0000 (11:43 +0300)]
Improve support of "Re:" in Rmail

* lisp/mail/rmail.el (rmail-simplified-subject)
(rmail-reply-regexp): Recognize U+FF1A FULLWIDTH COLON as a colon
after "Re:"-type prefixes.
(rmail-re-abbrevs): New defcustom with localized abbreviations of
"Re:".
(rmail-reply-regexp): Use 'rmail-re-abbrevs'.  Recognize U+FF1A
in addition to the ASCII colon.

* etc/NEWS: Call out the new defcustom 'rmail-re-abbrevs'.

4 years agoFix hi-lock test and add new test for case-fold (bug#40337)
Juri Linkov [Sun, 12 Apr 2020 23:40:56 +0000 (02:40 +0300)]
Fix hi-lock test and add new test for case-fold (bug#40337)

* lisp/hi-lock.el (hi-lock--regexps-at-point): Handle font-lock faces.
(hi-lock-unface-buffer): Simplify default value handling.
(hi-lock-set-pattern): Add either lighter or regexp to
hi-lock-interactive-lighters.
(hi-lock-set-pattern): Put overlay prop hi-lock-overlay-regexp to
either lighter or regexp.

* test/lisp/hi-lock-tests.el (hi-lock-bug26666): Use "b" instead of "a".
(hi-lock-case-fold): New test.

4 years agoFix bootstrap compiler warnings about `read-library-name'
Štěpán Němec [Sun, 12 Apr 2020 16:20:41 +0000 (18:20 +0200)]
Fix bootstrap compiler warnings about `read-library-name'

Introduced by

2020-03-28T22:16:28+01:00!stepnem@gmail.com
2c45091791 (load-library, locate-library: Use read-library-name)

Thanks to Juanma Barranquero <lekktu@gmail.com> for reporting.

* lisp/files.el:
* lisp/subr.el: Declare 'read-library-name'.

4 years agoFix error in 'call-process-region' when START is nil (Bug#40576)
Philipp Stephani [Sun, 12 Apr 2020 17:04:11 +0000 (19:04 +0200)]
Fix error in 'call-process-region' when START is nil (Bug#40576)

* src/callproc.c (Fcall_process_region): Fix behavior when START is
nil and DELETE is non-nil.

* test/src/callproc-tests.el
(call-process-region-entire-buffer-with-delete): New unit test.

4 years ago; * test/src/callproc-tests.el: Fix checkdoc errors.
Philipp Stephani [Sun, 12 Apr 2020 16:08:04 +0000 (18:08 +0200)]
; * test/src/callproc-tests.el: Fix checkdoc errors.

4 years agoMerge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Sun, 12 Apr 2020 15:53:36 +0000 (16:53 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD

4 years ago* src/pdumper.c (dump_do_dump_relocation): Optimize native dump load.
Andrea Corallo [Sun, 12 Apr 2020 12:06:14 +0000 (13:06 +0100)]
* src/pdumper.c (dump_do_dump_relocation): Optimize native dump load.

Check just once if is a local build or Emacs got installed.

4 years agoImplement working make install for native build.
Andrea Corallo [Sat, 11 Apr 2020 12:59:59 +0000 (13:59 +0100)]
Implement working make install for native build.

4 years agoSet invocation variables during dump load.
Andrea Corallo [Sun, 12 Apr 2020 11:38:46 +0000 (12:38 +0100)]
Set invocation variables during dump load.

Vinvocation_directory must be set during dump load process to support
.eln load.

* src/pdumper.h: (pdumper_load): Add argv0 and original_pwd
parameters.

* src/pdumper.c (pdumper_load): Add argv0 and original_pwd
parameter plus call 'set_invocation_vars'.

* src/lisp.h (set_invocation_vars): New function.

* src/emacs.c (set_invocation_vars): New function.
(init_cmdargs): Move logic into 'set_invocation_vars' and call it.
(load_pdump): Add 'original_pwd' parameter and update calls to
'pdumper_load'.
(main): Set emacs_wd earlier and update call to 'pdumper_load'.

4 years agoImplement position independent dump.
Andrea Corallo [Fri, 10 Apr 2020 21:30:34 +0000 (22:30 +0100)]
Implement position independent dump.

Set the filename for every compilation unit as realtive to obtain a
position independent dump.

* lisp/loadup.el: Modify filename for every compilation unit as
position independent.

* src/pdumper.c (dump_do_dump_relocation): Update to be invocation
directory relative.

4 years ago* src/comp.c (native-comp-unit-set-file): New function.
Andrea Corallo [Fri, 10 Apr 2020 21:24:07 +0000 (22:24 +0100)]
* src/comp.c (native-comp-unit-set-file): New function.

4 years ago* src/comp.c (native-comp-unit-file): Better parameter name.
Andrea Corallo [Mon, 6 Apr 2020 17:03:34 +0000 (18:03 +0100)]
* src/comp.c (native-comp-unit-file): Better parameter name.

4 years agoAlso use named functions for the ‘gv’ declare forms (Bug#40491)
Philipp Stephani [Sun, 12 Apr 2020 12:25:33 +0000 (14:25 +0200)]
Also use named functions for the ‘gv’ declare forms (Bug#40491)

* lisp/emacs-lisp/gv.el (gv--expander-defun-declaration)
(gv--setter-defun-declaration): New helper functions; use them.

4 years agoUse named functions in {defun,macro}-declarations-alist (Bug#40491)
Philipp Stephani [Sun, 12 Apr 2020 10:01:47 +0000 (12:01 +0200)]
Use named functions in {defun,macro}-declarations-alist (Bug#40491)

* lisp/emacs-lisp/byte-run.el (byte-run--set-advertised-calling-convention)
(byte-run--set-obsolete, byte-run--set-interactive-only)
(byte-run--set-pure, byte-run--set-side-effect-free)
(byte-run--set-compiler-macro, byte-run--set-doc-string)
(byte-run--set-indent, byte-run--set-debug)
(byte-run--set-no-font-lock-keyword): New helper functions.
(defun-declarations-alist, macro-declarations-alist): Use them.

4 years agoFix a bootstrap issue with unescaped character literal detection.
Philipp Stephani [Sun, 12 Apr 2020 09:58:36 +0000 (11:58 +0200)]
Fix a bootstrap issue with unescaped character literal detection.

* src/lread.c (load_warn_unescaped_character_literals): Deal with the
case that 'byte-run--unescaped-character-literals-warning' isn't yet
defined.

4 years ago; * etc/NEWS: NEWS followup to recent changes in hi-lock.el.
Eli Zaretskii [Sun, 12 Apr 2020 06:42:12 +0000 (09:42 +0300)]
; * etc/NEWS: NEWS followup to recent changes in hi-lock.el.

4 years agoRemove UNSIGNED_CMP
Paul Eggert [Sun, 12 Apr 2020 01:35:35 +0000 (18:35 -0700)]
Remove UNSIGNED_CMP

I added this macro in 2011 to fix some signedness comparison bugs.
However, it’s a weird macro and the bugs can be fixed in a
more-straightforward way.  This helps performance slightly (0.5%) on my
platform (Fedora 31 x86-64, GCC 9.3.1 with -O2).
* src/casefiddle.c (do_casify_natnum): Use simple comparison
instead of UNSIGNED_CMP.
* src/character.h (CHAR_VALID_P, SINGLE_BYTE_CHAR_P, CHAR_STRING):
* src/composite.h (COMPOSITION_ENCODE_RULE_VALID):
* src/lisp.h (ASCII_CHAR_P):
Now an inline function, and uses simple comparison instead of
UNSIGNED_CMP.
* src/dispextern.h (FACE_FROM_ID, FACE_FROM_ID_OR_NULL)
(IMAGE_FROM_ID, IMAGE_OPT_FROM_ID): Move these to ...
* src/frame.h (FACE_FROM_ID, FACE_FROM_ID_OR_NULL)
(IMAGE_FROM_ID, IMAGE_OPT_FROM_ID): ... here, and make them
inline functions that no longer use UNSIGNED_CMP.
* src/keyboard.c (read_char): UNSIGNED_CMP is not needed here
since XFIXNAT always returns a nonnegative value.
* src/lisp.h (UNSIGNED_CMP): Remove; no longer used.

4 years ago* lisp/hi-lock.el (hi-lock-highlight-range): Bump default value (bug#40224)
Juri Linkov [Sat, 11 Apr 2020 23:49:55 +0000 (02:49 +0300)]
* lisp/hi-lock.el (hi-lock-highlight-range): Bump default value (bug#40224)

* lisp/hi-lock.el (hi-lock-highlight-range): Change default value
from 200_000 to 2_000_000.

4 years agoImplement case-insensitivity in hi-lock (bug#40337)
Juri Linkov [Sat, 11 Apr 2020 23:45:02 +0000 (02:45 +0300)]
Implement case-insensitivity in hi-lock (bug#40337)

* lisp/hi-lock.el (hi-lock-interactive-lighters): New buffer-local variable.
(hi-lock-mode): Set hi-lock-interactive-lighters to nil.
(hi-lock-line-face-buffer): Use case-fold-search and search-upper-case.
(hi-lock-face-buffer): Add new arg LIGHTER. Use case-fold-search,
search-upper-case and search-spaces-regexp.
(hi-lock-face-phrase-buffer): Don't call hi-lock-process-phrase.
Use case-fold-search, search-upper-case and search-whitespace-regexp.
(hi-lock-face-symbol-at-point): Use case-fold-search and search-upper-case.
(hi-lock-unface-buffer): Use hi-lock-interactive-lighters to get
a human-readable string for completion and x-popup-menu.
(hi-lock-process-phrase): Remove function.
(hi-lock-set-pattern): Add new args LIGHTER, CASE-FOLD, SPACES-REGEXP.
Set font-lock pattern to a search function.  Add mapping from
lighter or regexp to pattern to hi-lock-interactive-lighters.
Let-bind case-fold-search and search-spaces-regexp in search functions.

* lisp/isearch.el (isearch--highlight-regexp-or-lines): Replace ugly code
with let-binding of case-fold-search, search-upper-case, search-spaces-regexp.
(isearch-highlight-regexp, isearch-highlight-lines-matching-regexp):
Use lambda.

4 years ago* etc/NEWS: Mention 'cl-font-lock-built-in-mode'
Stefan Monnier [Sat, 11 Apr 2020 18:01:06 +0000 (14:01 -0400)]
* etc/NEWS: Mention 'cl-font-lock-built-in-mode'

4 years ago* lisp/progmodes/cl-font-lock.el: Fix header and make it a minor mode
Stefan Monnier [Sat, 11 Apr 2020 17:55:52 +0000 (13:55 -0400)]
* lisp/progmodes/cl-font-lock.el: Fix header and make it a minor mode

Change copyright to FSF and licence to GPLv3+.
Tweak Commentary (the code doesn't seem to provide the lambda
prettification mentioned).

(cl-font-lock-add-regexes): Remove macro.
(cl-font-lock-built-in-keywords): New variable.
(cl-font-lock-built-in-mode): New minor mode.

4 years ago* lisp/progmodes/cl-font-lock.el: New file
Stefan Monnier [Fri, 10 Apr 2020 22:27:36 +0000 (18:27 -0400)]
* lisp/progmodes/cl-font-lock.el: New file

Taken from commit 1a54066611da213626ab69ea426ba3c63ece3438
of https://github.com/cl-font-lock/cl-font-lock,
but with names reverted to a `cl-font-lock-` prefix.

4 years agoAllow ENCODE_FILE and DECODE_FILE to use no-copy conversion
Mattias Engdegård [Tue, 7 Apr 2020 08:10:04 +0000 (10:10 +0200)]
Allow ENCODE_FILE and DECODE_FILE to use no-copy conversion

They already did return their argument under some circumstances;
this change broadens it to further reduce allocation in common cases
(bug#40407).

* src/coding.c (convert_string_nocopy): New function.
(decode_file_name, encode_file_name): Use convert_string_nocopy.
* src/coding.h (ENCODE_FILE, DECODE_FILE): Note the nocopy semantics.

4 years agoMerge from origin/emacs-27
Glenn Morris [Sat, 11 Apr 2020 14:50:12 +0000 (07:50 -0700)]
Merge from origin/emacs-27

fd27685c1e (origin/emacs-27) ; * doc/lispref/keymaps.texi (Extended M...
6057d79a4e * doc/lispref/keymaps.texi (Extended Menu Items): Tweak :k...
17a1bb5a03 Fix redisplay when scrolling under redisplay-dont-pause
90321f595c Fix face extension in pulse.el
36c42d2a30 * doc/misc/tramp.texi (Bug Reports): Avoid line breaks in ...
d5750af151 Avoid assertion violation in intervals.c
18d1bc0a09 Improve documentation of 'jit-lock-contextually'
08486f4cae Speed up 'resize-mode' child frames a little
f451ef9308 ; * etc/NEWS: Mention 'executing-macro' in removed vars.
c49d379f17 Fix some problems with moving and resizing child frames

# Conflicts:
# etc/NEWS

4 years ago; * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Fix wording.
Eli Zaretskii [Sat, 11 Apr 2020 09:20:10 +0000 (12:20 +0300)]
; * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Fix wording.

4 years agoReword documentation for eshell-variable-aliases-list
Federico Tedin [Sat, 4 Apr 2020 10:04:11 +0000 (12:04 +0200)]
Reword documentation for eshell-variable-aliases-list

* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Update
documentation string to avoid passive tense.

4 years ago* lisp/net/tramp.el (tramp-action-process-alive): Read pending output.
Michael Albinus [Sat, 11 Apr 2020 07:08:54 +0000 (09:08 +0200)]
* lisp/net/tramp.el (tramp-action-process-alive): Read pending output.

4 years ago; * doc/lispref/keymaps.texi (Extended Menu Items): Fix last change.
Eli Zaretskii [Sat, 11 Apr 2020 06:40:37 +0000 (09:40 +0300)]
; * doc/lispref/keymaps.texi (Extended Menu Items): Fix last change.

4 years ago* doc/lispref/keymaps.texi (Extended Menu Items): Tweak :key-sequence
Stefan Monnier [Fri, 10 Apr 2020 21:04:19 +0000 (17:04 -0400)]
* doc/lispref/keymaps.texi (Extended Menu Items): Tweak :key-sequence

Don't make it sound like `:key-sequence nil` is any different than the
absence of `:key-sequence`.  And the performance advantage of
`:key-sequence` disappeared long ago.

4 years agoFix redisplay when scrolling under redisplay-dont-pause
Eli Zaretskii [Fri, 10 Apr 2020 15:30:21 +0000 (18:30 +0300)]
Fix redisplay when scrolling under redisplay-dont-pause

* src/dispnew.c (update_window): Reset the window's
'must_be_updated_p' flag if the window's update was completed
without interruption.  This fixes redisplay glitches when
'redisplay-dont-pause' is nil, at least on MS-Windows, because
'expose_window' doesn't redraw the exposed rectangle when the
window's 'must_be_updated_p' flag is set.

4 years agoFix face extension in pulse.el
Eli Zaretskii [Thu, 9 Apr 2020 16:44:55 +0000 (19:44 +0300)]
Fix face extension in pulse.el

* lisp/cedet/pulse.el (pulse-reset-face): Propagate the :extend
attribute of FACE to the face used for displaying the pulse.
Reported by Adam Porter <adam@alphapapa.net>.

4 years agoSet last-coding-system-used upon ASCII conversion bypass (bug#40407)
Mattias Engdegård [Thu, 9 Apr 2020 14:19:14 +0000 (16:19 +0200)]
Set last-coding-system-used upon ASCII conversion bypass (bug#40407)

Spotted by Kazuhiro Ito.

* src/coding.c (code_convert_string):
Set Vlast_coding_system if appropriate.
* test/src/coding-tests.el (coding-nocopy-ascii): Add test.

4 years ago* doc/misc/tramp.texi (Bug Reports): Avoid line breaks in traces.
Michael Albinus [Thu, 9 Apr 2020 13:55:32 +0000 (15:55 +0200)]
* doc/misc/tramp.texi (Bug Reports): Avoid line breaks in traces.

4 years agoFix display of boxed header-line
Eli Zaretskii [Thu, 9 Apr 2020 13:38:02 +0000 (16:38 +0300)]
Fix display of boxed header-line

* src/xdisp.c (init_iterator): Set IT->face_box_p flag for a boxed
mode/header/tab line.  (Bug#40521)

4 years agoFix ASCII-only conversion logic (bug#40407)
Mattias Engdegård [Thu, 9 Apr 2020 10:04:22 +0000 (12:04 +0200)]
Fix ASCII-only conversion logic (bug#40407)

To sidestep conversion altogether when EOL conversion applies, we must
either be encoding a string without NL, or decoding without CR.

* src/coding.c (string_ascii_p): Revert to a pure predicate.
(code_convert_string): Fix logic.  Don't use uninitialised
ascii_p (removed).  Use memchr to detect CR or LF in string when needed.
* test/src/coding-tests.el (coding-nocopy-ascii):
Update tests to include encodings with explicit EOL conversions.

4 years agochinese-hz is not ASCII compatible (bug#40407)
Mattias Engdegård [Thu, 9 Apr 2020 09:29:51 +0000 (11:29 +0200)]
chinese-hz is not ASCII compatible (bug#40407)

* lisp/language/chinese.el: Disable :ascii-compatible-p for chinese-hz.
* test/lisp/international/mule-tests.el (mule-hz): New test.

4 years agoDon't crash with invalid argument in check-coding-systems-region
Mattias Engdegård [Wed, 8 Apr 2020 15:13:39 +0000 (17:13 +0200)]
Don't crash with invalid argument in check-coding-systems-region

* src/coding.c (Fcheck_coding_systems_region): Don't crash if
the third arg contains something that isn't a coding system.
* test/src/coding-tests.el (coding-check-coding-systems-region):
New test.

4 years agoDon't rely on copying in {EN,DE}CODE_FILE
Mattias Engdegård [Mon, 6 Apr 2020 13:20:08 +0000 (15:20 +0200)]
Don't rely on copying in {EN,DE}CODE_FILE

Callers of ENCODE_FILE and DECODE_FILE should not assume that these
functions always return a new string (bug#40407).

* src/w32fns.c (Fw32_shell_execute):
* src/w32proc.c (Fw32_application_type):
Sink taking the address of a Lisp string past GC points.
Copy values returned from ENCODE_FILE before mutating them.

4 years agoFix decoding of ASCII strings with embedded CR characters
Eli Zaretskii [Thu, 9 Apr 2020 09:20:24 +0000 (12:20 +0300)]
Fix decoding of ASCII strings with embedded CR characters

* src/coding.c (string_ascii_p): Return a negative value if an
all-ASCII string STR includes the CR character, otherwise a
positive value.
(code_convert_string): If the string is ASCII, but includes CR
characters, use the fast path only if EOL doesn't need to be
decoded.  (Bug#40519)

* test/src/coding-tests.el (coding-nocopy-ascii): Add more tests
for bug#40519.

4 years agoFix decoding ASCII strings with embedded CR characters
Eli Zaretskii [Thu, 9 Apr 2020 09:18:30 +0000 (12:18 +0300)]
Fix decoding ASCII strings with embedded CR characters

* src/coding.c (string_ascii_p): Return a negative value if an
all-ASCII string STR includes the CR character, otherwise a
positive value.
(code_convert_string): If the string is ASCII, but includes CR
characters, use the fast path only if EOL doesn't need to be
decoded.  (Bug#40519)

* test/src/coding-tests.el (coding-nocopy-ascii): Add tests for
bug#40519.

4 years agoAvoid assertion violation in intervals.c
Eli Zaretskii [Thu, 9 Apr 2020 08:21:18 +0000 (11:21 +0300)]
Avoid assertion violation in intervals.c

* src/intervals.c (delete_interval): Allow negative values of
LENGTH (i).  This happens when delete_interval is called from
set_intervals_multibyte_1, because the caller zeroes out the
total_length field of the interval to be deleted.  See
https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00131.html
for more details.  See also a related old discussion at
https://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00399.html.

4 years agoImprove documentation of 'jit-lock-contextually'
Eli Zaretskii [Wed, 8 Apr 2020 15:33:52 +0000 (18:33 +0300)]
Improve documentation of 'jit-lock-contextually'

* lisp/jit-lock.el (jit-lock-contextually): Clarify the jit-lock
operation when 'jit-lock-contextually' is non-nil and non-t.

* doc/lispref/modes.texi (Syntactic Font Lock)
(Other Font Lock Variables): Document the relation between
'jit-lock-register', 'font-lock-keywords-only', and syntactic
refontification.

4 years agoSpeed up 'resize-mode' child frames a little
Dmitry Gutov [Wed, 8 Apr 2020 10:52:40 +0000 (13:52 +0300)]
Speed up 'resize-mode' child frames a little

* src/gtkutil.c (xg_frame_set_char_size): Skip resizing if the
target dimensions are unchanged for child frames with
'resize-mode' resize policy as well.

4 years ago; * lisp/international/mule-conf.el: Minor comment wording fix.
Eli Zaretskii [Wed, 8 Apr 2020 09:52:18 +0000 (12:52 +0300)]
; * lisp/international/mule-conf.el: Minor comment wording fix.

4 years agoSupport character composition for Hangul jamo
Eli Zaretskii [Wed, 8 Apr 2020 09:50:57 +0000 (12:50 +0300)]
Support character composition for Hangul jamo

* lisp/language/korean.el: Add composition rules for conjoining
Hangul jamo.  (Bug#40502)

4 years agoRevert my KEY_OPS_CFLAGS change to src/Makefile.in
Paul Eggert [Wed, 8 Apr 2020 03:52:28 +0000 (20:52 -0700)]
Revert my KEY_OPS_CFLAGS change to src/Makefile.in

Now that -Og inlining has been improved this is no longer helpful.
* src/Makefile.in (KEY_OPS_CFLAGS): Remove.  All uses removed.
This improved CPU performance of ‘make compile-always’ by 5% on my
platform, which was gcc -Og, GCC 9.3.1 20200317 (Red Hat 9.3.1-1),
Fedora 31 x86-64 (AMD Phenom II X4 910e, circa 2010).

4 years agoImprove inlining when compiling with -Og
Paul Eggert [Tue, 7 Apr 2020 23:57:04 +0000 (16:57 -0700)]
Improve inlining when compiling with -Og

* src/conf_post.h (EXTERN_INLINE) [!EMACS_EXTERN_INLINE]:
Make it static inline, not merely static.  This is a worthwhile
performance improvement on my two platforms A and B (see below).
On my platform A this change improves user+system CPU performance of
‘make compile-always’ by 52% on an -Og build, and by 1.4% on the
default -O2 build.  On my platform B this improves the same benchmark
by 41% on an -Og build, and by -0.8% on the default -O2 build.
That "-0.8%" is a small negative for this change, and I recall that
it is why I didn't make this change earlier.  However, Platform B uses
an older GCC so we needn't worry overmuch about this small negative.

With this change the performance advantage of -O2 over -Og has dropped
on platform A; formerly -O2 was 87% faster than -Og, and now it is
only 25% faster.  On platform B the performance advantage of -O2 over
-Og has dropped from being 62% faster to being 14% faster.

Platform A is GCC 9.3.1 20200317 (Red Hat 9.3.1-1) on Fedora 31
x86-64 (AMD Phenom II X4 910e, circa 2010).  Platform B is GCC (Ubuntu
7.5.0-3ubuntu1~18.04) 7.5.0 on Ubuntu 18.04.4 (Intel Xeon E3-1225 V2,
circa 2012).

This patch was inspired by a suggestion by Andrea Corallo in:
https://lists.gnu.org/r/emacs-devel/2020-04/msg00263.html

4 years agoAdd :coding support to open-network-stream and open-gnutls-stream
Robert Pluim [Thu, 2 Apr 2020 16:41:33 +0000 (18:41 +0200)]
Add :coding support to open-network-stream and open-gnutls-stream

* doc/lispref/processes.texi (Network): Describe :coding keyword support.

* doc/misc/emacs-gnutls.texi (Help For Developers): Describe :coding
keyword support.

* etc/NEWS: Announce change to open-network-stream and
open-gnutls-stream.

* lisp/net/gnutls.el (open-gnutls-stream): Add support for :coding, pass it
down to open-network-stream.

* lisp/net/network-stream.el (open-network-stream)
(network-stream-open-plain, network-stream-open-starttls): Add
support for :coding, pass it down to make-network-process.
(network-stream-open-shell): Add support-for :coding, use
set-process-coding-system to set it after process creation.

4 years agoUse length field when dns-query is using TCP
Robert Pluim [Fri, 3 Apr 2020 15:37:01 +0000 (17:37 +0200)]
Use length field when dns-query is using TCP

* net/dns.el (dns-write): Correct spelling in docstring.
(dns-read): Add optional tcp-p parameter, skip 2-byte length field
if non-nil.
(dns-query): Tell dns-read and dns-write if we're using TCP.

4 years agoutf-7 and utf-7-imap are not ASCII-compatible (bug#40407)
Mattias Engdegård [Mon, 6 Apr 2020 18:28:05 +0000 (20:28 +0200)]
utf-7 and utf-7-imap are not ASCII-compatible (bug#40407)

* lisp/international/mule-conf.el (utf-7, utf-7-imap):
Add expedient to disable the :ascii-compatible-p property set
automatically by define-coding-system.
* test/lisp/international/mule-tests.el (mule-utf-7): New test.

4 years ago; * etc/NEWS: Mention 'executing-macro' in removed vars.
Eli Zaretskii [Mon, 6 Apr 2020 18:12:09 +0000 (21:12 +0300)]
; * etc/NEWS: Mention 'executing-macro' in removed vars.

4 years agoPacify gcc in xpm_scan
Paul Eggert [Mon, 6 Apr 2020 17:36:51 +0000 (10:36 -0700)]
Pacify gcc in xpm_scan

* src/image.c (xpm_scan): Redo a loop for clarity.
This also pacifies --enable-gcc-warnings (GCC 9.3.1 x86-64 with -Og).

4 years agoMerge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Mon, 6 Apr 2020 17:06:29 +0000 (18:06 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD

4 years ago* lisp/emacs-lisp/comp.el (comp-c-func-name): Fix for M-x disassemble
Andrea Corallo [Mon, 6 Apr 2020 19:03:34 +0000 (20:03 +0100)]
* lisp/emacs-lisp/comp.el (comp-c-func-name): Fix for M-x disassemble

4 years ago* src/comp.c (emit_FIXNUMP): Don't emit a shift when unnecessary.
Andrea Corallo [Mon, 6 Apr 2020 18:04:43 +0000 (19:04 +0100)]
* src/comp.c (emit_FIXNUMP): Don't emit a shift when unnecessary.

4 years agoFix case that $PATH is longer than 4096 chars in Tramp
Michael Albinus [Mon, 6 Apr 2020 12:26:49 +0000 (14:26 +0200)]
Fix case that $PATH is longer than 4096 chars in Tramp

* lisp/net/tramp-sh.el (tramp-set-remote-path): Use `tramp-send-command'
directly.

* test/lisp/net/tramp-tests.el (tramp-test-vec): New defconst.
(tramp--test-enabled, tramp--test-message)
(tramp--test-backtrace, tramp-test03-file-name-host-rules)
(tramp-test18-file-attributes, tramp-test20-file-modes)
(tramp-test26-file-name-completion)
(tramp-test33-environment-variables, tramp-test35-remote-path)
(tramp-test36-vc-registered, )
(tramp-test43-asynchronous-requests): Use it.
(tramp-test29-start-file-process, tramp-test30-make-process)
(tramp-test33-environment-variables): Remove Hydra specific result.
(tramp-test35-remote-path): Rewrite partially.

4 years agoUnify and improve gdb-mi source buffer display logic
Yuan Fu [Mon, 6 Apr 2020 07:56:15 +0000 (09:56 +0200)]
Unify and improve gdb-mi source buffer display logic

Unify the behavior of source buffer display for gdb-mi.  Before this
change, stepping and other gdb command handlers use 'gud-display-line',
and 'gdb-goto-breakpoint' uses 'gdb-display-source-buffer'.  Now whenever
gdb-mi code tries to open a source buffer, 'gdb-display-source-buffer'
is used.  Also, simplify the logic in 'gdb-display-source-buffer' and
add a feature to limit the maximum number of source windows.

* doc/emacs/building.texi (GDB User Interface Layout): Explain source
file display in GDB.
* etc/NEWS (gdb-mi): Add news about source display.
* lisp/progmodes/gdb-mi.el (gdb-source-window): Remove variable,
change to 'gdb-source-window-list'.
(gdb-source-window-list): New variable.
(gdb-display-source-buffer-action,
gdb-max-source-window-count): New options.
(gdb-init-1, gdb-setup-windows, gdb-load-window-configuration,
gdb-restore-windows): Use 'gdb-source-window' rather than
'gdb-source-window-list'.
(gdb-save-window-configuration): Use 'gdb-source-window' rather than
'gdb-source-window-list'.  And consider any buffer that is not a
command or function buffer as a source buffer.
(gdb-display-source-buffer): Use new logic.
(gdb-goto-breakpoint): Remove 'display-buffer' call
and don't set 'gdb-source-buffer' anymore.
* lisp/progmodes/gud.el (gud-display-line): If used by gdb-mi, use
'gdb-display-source-buffer' rather than 'display-buffer'.  Don't set
'gdb-source-buffer' anymore.

4 years agoFix problems when dragging frames with the mouse
Martin Rudalics [Mon, 6 Apr 2020 07:46:24 +0000 (09:46 +0200)]
Fix problems when dragging frames with the mouse

Re-implement 'mouse-drag-frame' via two new functions -
'mouse-drag-frame-resize' and 'mouse-drag-frame-move'.  This is
needed because with some toolkits the notifications for frame
movement and resizing arrive asynchronously, breaking any
calculations using intermediate frame sizes and positions.

* lisp/mouse.el (mouse-drag-mode-line, mouse-drag-left-edge)
(mouse-drag-top-left-corner, mouse-drag-top-edge)
(mouse-drag-top-right-corner, mouse-drag-right-edge)
(mouse-drag-bottom-right-corner, mouse-drag-bottom-edge)
(mouse-drag-bottom-left-corner): Call 'mouse-drag-frame-resize'
instead of 'mouse-drag-frame'.
(mouse-drag-frame): Split into two new functions -
'mouse-drag-frame-move' and 'mouse-drag-frame-resize'.
(mouse-drag-frame-resize, mouse-drag-frame-move): New functions
to implement functionality of the removed 'mouse-drag-frame'.

4 years agoFix some problems with moving and resizing child frames
Martin Rudalics [Mon, 6 Apr 2020 07:22:36 +0000 (09:22 +0200)]
Fix some problems with moving and resizing child frames

(1) Provide new option 'x-gtk-resize-child-frames' which allows
to either hide a child frame during resizing or asks GTK to
resize it "immediately".  This is needed because desktops like
GNOME shell otherwise won't allow resizing child frames at all.
(2) Do not try to synchronize the position of a child frame
after moving it.  Needed because the present implementation
introduces a 0.5 secs delay which makes dragging child frames
virtually impossible with Lucid and Motif toolkits on desktops
like GNOME shell that use invisible outer frame borders.

For further information see the thread starting with
https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00343.html

* src/frame.c (syms_of_frame): New symbol Qxg_frame_set_char_size_4.
* src/gtkutil.c (xg_frame_set_char_size): Hide child frame
during resizing when 'x-gtk-resize-child-frames' equals 'hide'.
* src/xfns.c (x_set_parent_frame, Fx_create_frame): Set
gtk_container_resize_mode to GTK_RESIZE_IMMEDIATE for child
frames when'x-gtk-resize-child-frames' equals 'resize-mode'.
(Fx_gtk_debug): New function to toggle interactive GTK debugging
from within Emacs.
(syms_of_xfns): New symbols Qhide and Qresize_mode.
(x-gtk-resize-child-frames): New option that allows to resize
child frames on desktops like GNOME shell (with the mutter WM)
that otherwise refuse to resize them.
* src/xterm.c (x_set_offset): Don't x_sync_with_move for child
frames, it makes moving child frames virtually impossible with
the Lucid and Motif toolkits.

4 years agoMerge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Sun, 5 Apr 2020 21:08:17 +0000 (22:08 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD

4 years ago* src/comp.c (emit_XFIXNUM): Fix for LSB_TAG plus annotate a FIXME.
Andrea Corallo [Sun, 5 Apr 2020 19:42:49 +0000 (20:42 +0100)]
* src/comp.c (emit_XFIXNUM): Fix for LSB_TAG plus annotate a FIXME.

4 years ago* src/comp.c (emit_const_lisp_obj, emit_mvar_val): Fix.
Andrea Corallo [Sun, 5 Apr 2020 18:40:51 +0000 (19:40 +0100)]
* src/comp.c (emit_const_lisp_obj, emit_mvar_val): Fix.

4 years ago* src/comp.c (hash_native_abi): Fix assertion.
Andrea Corallo [Sun, 5 Apr 2020 15:55:09 +0000 (16:55 +0100)]
* src/comp.c (hash_native_abi): Fix assertion.

4 years ago* src/comp.c (emit_binary_op): New function.
Andrea Corallo [Sun, 5 Apr 2020 14:40:01 +0000 (15:40 +0100)]
* src/comp.c (emit_binary_op): New function.

Wrap gcc_jit_context_new_binary_op within emit_binary_op to make sure
input type are coherent and save a slew of code.

4 years ago* src/comp.c: Emit cast only when necessary.
Andrea Corallo [Sun, 5 Apr 2020 13:24:00 +0000 (14:24 +0100)]
* src/comp.c: Emit cast only when necessary.

Coerce only when the destination type is different from the current
one.

4 years ago* src/comp.c: Add MSB TAG and wide int support.
Andrea Corallo [Sat, 4 Apr 2020 22:33:52 +0000 (23:33 +0100)]
* src/comp.c: Add MSB TAG and wide int support.

4 years ago* src/comp.c: Clean-up unnecessary field declaration.
Andrea Corallo [Fri, 3 Apr 2020 20:19:45 +0000 (21:19 +0100)]
* src/comp.c: Clean-up unnecessary field declaration.

4 years ago* lisp/emacs-lisp/comp.el (native-compile): Better documentation.
Andrea Corallo [Fri, 3 Apr 2020 19:09:02 +0000 (20:09 +0100)]
* lisp/emacs-lisp/comp.el (native-compile): Better documentation.

4 years ago* src/coding.c (code_convert_string): Fix type mismatches.
Paul Eggert [Sun, 5 Apr 2020 17:45:09 +0000 (10:45 -0700)]
* src/coding.c (code_convert_string): Fix type mismatches.

4 years agoFix a recent change in bignum.c
Eli Zaretskii [Sun, 5 Apr 2020 16:51:09 +0000 (19:51 +0300)]
Fix a recent change in bignum.c

* src/bignum.c (check_int_nonnegative): Fix a recent change.
Reported by Glenn Morris <rgm@gnu.org>.

4 years agoFix thinko in tramp-cache.el
Michael Albinus [Sun, 5 Apr 2020 16:29:10 +0000 (18:29 +0200)]
Fix thinko in tramp-cache.el

* lisp/net/tramp-cache.el (tramp-set-connection-property)
(tramp-flush-connection-property)
(tramp-flush-connection-properties): Use `tramp-file-name-p'.

4 years agoMerge from origin/emacs-27
Glenn Morris [Sun, 5 Apr 2020 14:50:15 +0000 (07:50 -0700)]
Merge from origin/emacs-27

6de20c7eab (origin/emacs-27) Fix syntax error in man page.
f8607d3c03 Handle filling of indented ChangeLog function entries
7e78f0d1b2 Fix void-variable n-reb in re-builder (Bug#40409)
452d776a5d Fix small bug in copy_string_contents.
fa823653ff Fix invocations of gpg from Gnus
d4f51d0a2e Don't draw GTK's internal border and tab bar on top of eac...
38731d504e ; * src/buffer.c (syms_of_buffer) <inhibit-read-only>: Doc...
44ac9e48bb Tweak htmlfontify's generated output

4 years ago; Merge from origin/emacs-27
Glenn Morris [Sun, 5 Apr 2020 14:50:15 +0000 (07:50 -0700)]
; Merge from origin/emacs-27

The following commit was skipped:

b2f2d0d2c4 (emacs-27) ; Auto-commit of loaddefs files.

4 years agoMerge from origin/emacs-27
Glenn Morris [Sun, 5 Apr 2020 14:50:15 +0000 (07:50 -0700)]
Merge from origin/emacs-27

ac3da1dd96 Handle project--files-in-directory finding no files better
650a664ccd Let imenu to work on the menu bar when its list is a singl...

4 years ago* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Avoid known cl-defsubst breakage
Stefan Monnier [Sun, 5 Apr 2020 13:54:53 +0000 (09:54 -0400)]
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Avoid known cl-defsubst breakage

4 years agoAvoid expensive recoding for ASCII identity cases (bug#40407)
Mattias Engdegård [Fri, 3 Apr 2020 14:01:01 +0000 (16:01 +0200)]
Avoid expensive recoding for ASCII identity cases (bug#40407)

Optimise for the common case of encoding or decoding an ASCII-only
string using an ASCII-compatible coding, for file names in particular.

* src/coding.c (string_ascii_p): New function.
(code_convert_string): Return the input string for ASCII-only inputs
and ASCII-compatible codings.
* test/src/coding-tests.el (coding-nocopy-ascii): New test.

4 years agoSuppress relint diagnostics in rx-tests.el
Mattias Engdegård [Sun, 5 Apr 2020 13:13:44 +0000 (15:13 +0200)]
Suppress relint diagnostics in rx-tests.el

* test/lisp/emacs-lisp/rx-tests.el (rx-char-any, rx-any):
Suppress relint complaints; these regexps are intentionally bad.

4 years agoFix inverted NOCOPY encode/decode parameter (bug#40407)
Mattias Engdegård [Sun, 5 Apr 2020 09:27:36 +0000 (11:27 +0200)]
Fix inverted NOCOPY encode/decode parameter (bug#40407)

In {encode,decode}-coding-string, the NOCOPY parameter had the
opposite effect to what was intended and documented.  This 18 year old
bug (introduced in 4031e2bf0a) only affected calls with CODING-SYSTEM
being nil.

* src/coding.c (code_convert_string): Correct use of NOCOPY.
* test/src/coding-tests.el (coding-nocopy-trivial): New test.

4 years agoImprove integer range checking
Paul Eggert [Sun, 5 Apr 2020 08:17:32 +0000 (01:17 -0700)]
Improve integer range checking

* src/bignum.c (check_integer_range, check_uinteger_max)
(check_int_nonnegative): New functions.
* src/frame.c (check_frame_pixels): New function.
(Fset_frame_height, Fset_frame_width, Fset_frame_size): Use it.
* src/lisp.h (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER):
Remove these macros.  Unless otherwise specified, all callers
replaced by calls to check_integer_range, check_uinteger_range,
check_int_nonnegative.
* src/frame.c (gui_set_right_divider_width)
(gui_set_bottom_divider_width):
* src/nsfns.m (ns_set_internal_border_width):
* src/xfns.c (x_set_internal_border_width):
Using check_int_nonnegative means these functions no longer
incorrectly reject negative bignums; they treat them as 0,
just like negative fixnums.

4 years agoFix syntax error in man page.
Philipp Stephani [Sun, 5 Apr 2020 08:19:31 +0000 (10:19 +0200)]
Fix syntax error in man page.

* doc/man/emacs.1.in: Fix syntax of --script argument.  The Info
manual states that --script has to be followed by a space, and the
syntax with the equals sign doesn't actually work.

4 years ago* src/lisp.h: Update overly-optimistic comment.
Paul Eggert [Sun, 5 Apr 2020 08:00:35 +0000 (01:00 -0700)]
* src/lisp.h: Update overly-optimistic comment.

4 years ago* lisp/arc-mode.el: Rewrite displaying the summaries
Stefan Monnier [Sun, 5 Apr 2020 02:46:29 +0000 (22:46 -0400)]
* lisp/arc-mode.el: Rewrite displaying the summaries

Completely rewrite the code that displayes the summaries, so all
backends share the same code.

(archive--summarize-descs): New function.
(archive-arc-summarize, archive-lzh-summarize, archive-zip-summarize)
(archive-zoo-summarize, archive-rar-summarize, archive-7z-summarize)
(archive-ar-summarize): Use it.
(archive-hidden-columns): New custom.
(archive-alternate-hidden-columns): New const.
(archive-mode-map): Always enable `archive-alternate-display`.
(archive-alternate-display): Set `archive-hidden-columns`.
(archive-hideshow-column): New command.
(archive--fit, archive--fit2, archive--enabled-p): New aux functions.

4 years ago* lisp/arc-mode.el: Remove make-(local-variable|variable-buffer-local)
Stefan Monnier [Sun, 5 Apr 2020 02:35:39 +0000 (22:35 -0400)]
* lisp/arc-mode.el: Remove make-(local-variable|variable-buffer-local)

(archive-file-list-start, archive-file-list-end)
(archive-proper-file-start, archive-file-name-indent, archive-remote)
(archive-member-coding-system, archive-alternate-display)
(archive-file-name-coding-system, archive-files): Use `defvar-local`.
(archive-extract): Use `setq-local`.
(archive-get-descr): Use `user-error` when clicking on a directory.

4 years agoAvoid SAFE_ALLOCA in Fstring, Funibyte_string
Paul Eggert [Sun, 5 Apr 2020 01:26:21 +0000 (18:26 -0700)]
Avoid SAFE_ALLOCA in Fstring, Funibyte_string

* src/character.c (Fstring, Funibyte_string):
Redo to avoid the need for a temporary array allocation
and then a copying from that array to the destination.

4 years agoHandle filling of indented ChangeLog function entries
Noam Postavsky [Sat, 4 Apr 2020 16:28:23 +0000 (12:28 -0400)]
Handle filling of indented ChangeLog function entries

* lisp/vc/log-edit.el (log-edit-fill-entry): Relax regexp a bit to
recognize function entries with leading blanks.
* test/lisp/vc/log-edit-tests.el: New test.

4 years ago* lisp/arc-mode.el (archive--file-desc): Add fields from other structs
Stefan Monnier [Sat, 4 Apr 2020 02:27:54 +0000 (22:27 -0400)]
* lisp/arc-mode.el (archive--file-desc): Add fields from other structs

Add fields `size`, `time` (used by all backends) as well as
`pos`, `ratio`, `uid`, and `gid` (used only be some backends).

(archive-arc--file-desc, archive-rar--file-desc, archive-ar--file-desc)
(archive-lzh--file-desc, archive-zip--file-desc, archive-7z--file-desc):
Remove defstructs.
(archive-arc-summarize): Record size and time in the descrs.
(archive-lzh-summarize): Record size, time, uid, and gid in the descrs.
(archive-zip-summarize): Record size and time in the descrs.
(archive-zoo-summarize): Record size and time in the descrs.
(archive-rar-summarize): Adjust to use of `archive--file-desc`.
(archive-7z-summarize): Adjust to new constructor.
(archive-ar-summarize): Adjust to use of `archive--file-desc`.

(archive-ar-write-file-member): Remove mode-to-int hack.
(archive-get-descr): Directory entries aren't regular members.

4 years agoFix void-variable n-reb in re-builder (Bug#40409)
Noam Postavsky [Sat, 4 Apr 2020 16:00:41 +0000 (12:00 -0400)]
Fix void-variable n-reb in re-builder (Bug#40409)

* lisp/emacs-lisp/re-builder.el (reb-while): Take the current value of
the counter instead of its name.
(reb-mark-non-matching-parenthesis): Bind n-reb to 0 at the start and
don't wrongly treat it as dynamicly bound.

4 years agoRevert unneeded part of gcc -Og change
Paul Eggert [Sun, 5 Apr 2020 00:04:23 +0000 (17:04 -0700)]
Revert unneeded part of gcc -Og change

* configure.ac (DEFINE_KEY_OPS_AS_MACROS):
Undo this recent change to configure.ac; it’s not needed.

4 years ago* lib-src/Makefile.in (LINK_CFLAGS): Remove; unused.
Paul Eggert [Sat, 4 Apr 2020 23:57:22 +0000 (16:57 -0700)]
* lib-src/Makefile.in (LINK_CFLAGS): Remove; unused.

4 years agoDefault gcc -Og to inlining key ops
Paul Eggert [Sat, 4 Apr 2020 23:56:57 +0000 (16:56 -0700)]
Default gcc -Og to inlining key ops

Problem reported by Martin Rudalics in:
https://lists.gnu.org/r/emacs-devel/2020-04/msg00195.html
* configure.ac (DEFINE_KEY_OPS_AS_MACROS): Define if -Og.
* src/Makefile.in (KEY_OPS_CFLAGS): New macro.
(EMACS_CFLAGS): Use it.
* src/lisp.h (DEFINE_KEY_OPS_AS_MACROS): Let the gcc command line
specify it.  Remove use of undocumented INLINING macro.

4 years agoSupport the "explore" command in gdb-mi.el
Eli Zaretskii [Sat, 4 Apr 2020 11:15:41 +0000 (14:15 +0300)]
Support the "explore" command in gdb-mi.el

* lisp/progmodes/gdb-mi.el (gdb-control-commands-regexp): Add
support for "explore", "explore value", and "explore type".
Allow more than one word after control commands.
(gdb-gdb): Decrease gdb-control-level when we get the "(gdb)"
prompt, which signals that "explore" exited.  (Bug#40250)

4 years agoFix face spec handling for 'default' "terminal class"
Eli Zaretskii [Sat, 4 Apr 2020 06:59:16 +0000 (09:59 +0300)]
Fix face spec handling for 'default' "terminal class"

* lisp/faces.el (face-spec-choose): Reverse order of 'defaults'
and 'result' when generating attribute list, so that the spec for
'default' "terminal class" is indeed overridden by the actual
class's spec, per the documentation.  (Bug#40336)

4 years ago* lisp/arc-mode.el: Remove unused struct fields
Stefan Monnier [Fri, 3 Apr 2020 22:11:52 +0000 (18:11 -0400)]
* lisp/arc-mode.el: Remove unused struct fields

(archive--file-desc): Remove `case-fiddled`.
Change all subtypes's constructors as their callers accordingly.
(archive--file-desc-case-fiddled): New function.
(archive-int-to-mode): Accept a nil input.
Make all callers take advantage of it.
(archive-arc-rename-entry): Use `make-string`.
(archive-zip--file-desc): Change `pos+len` field into `pos` field.
(archive-zip-chmod-entry): Simplify accordingly.
(archive-zip-summarize): Don't bother with `lheader` which was not used.
(archive-zoo--file-desc): Delete struct; use archive--file-desc instead.
(archive-7z--file-desc): Remove `user` and `group` fields.
Adjust constructor and its caller.
(archive-ar-summarize): Use `archive-int-to-mode`.