1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-05 11:21:04 -08:00
Commit graph

41730 commits

Author SHA1 Message Date
Mattias Engdegård
a773a64748 Allow regexp-quote to return its argument
* src/search.c (Fregexp_quote): Only allocate a new string if needed.
* doc/lispref/searching.texi (Regexp Functions):
* etc/NEWS (Incompatible Lisp Changes): Document.
2019-09-25 18:09:42 +02:00
Lars Ingebrigtsen
13f244af40 Make ImageMagick multi-image size calculations work for .ico files
* src/image.c (imagemagick_load_image): Compute image sizes
correctly in multi-image .ico files and the like (bug#18333).
2019-09-24 19:47:20 +02:00
Pip Cet
873cd63ff2 Allow a :stride argument so XBM boolvecs are in the right format.
* src/image.c (xbm_image_p): Explicitly specify the right stride if a
bool vector is used as argument.
* doc/lispref/display.texi (XBM Images): Describe bool vectors
accurately.
* etc/NEWS: Document the change (bug#36337).
2019-09-24 18:35:15 +02:00
Eli Zaretskii
bc5472a4ee ; Fix typo in recently fixed doc string
* src/process.c (Fmake_network_process): Fix capitalization in
doc string.
2019-09-24 11:49:12 +03:00
Robert Pluim
47e94f864f ; Fix previous make-network-process doc change
* src/process.c (Fmake_network_process): Correct typo.
2019-09-24 10:28:33 +02:00
Eli Zaretskii
d32d9373b5 Resurrect support for negative frame geometry parameters on MS-Windows
* src/w32fns.c (my_create_window): Avoid assertion violations
in XFIXNUM when the 'top' or 'left' frame parameters are
neither fixnums nor 'unbound', in which case
f->size_hint_flags are set by gui_figure_window_size.
(Bug#37415)
2019-09-24 10:28:44 +03:00
Lars Ingebrigtsen
8c1e0ed717 make-network-process doc clarification
* src/process.c (Fmake_network_process): Further doc clarification
for listening on "::".
2019-09-23 20:49:39 +02:00
Alan Third
64f9d6d453 Fix GNUstep build
* src/nsfont.m (nsfont_draw): Change type to match.

Co-authored-by: martin rudalics <rudalics@gmx.at>
2019-09-23 19:17:38 +01:00
Paul Eggert
946a56a10f Update some URLs
This mostly changes http: to https: in URLs.  It also updates
some URLs that have moved, removes some URLs that no longer
work, recommends against using procmail (procmail.org no
longer works), and removes some mentions of the
no-longer-existing Gmane, LPF and VTW.
It doesn't update all URLs, just the ones I had time for.
* GNUmakefile (help):
* admin/admin.el (manual-doctype-string):
* admin/charsets/Makefile.in (${charsetdir}/ALTERNATIVNYJ.map):
* admin/charsets/mapconv:
* lisp/net/soap-client.el (soap-create-envelope):
* lisp/org/org.el (org-doi-server-url):
* lisp/textmodes/bibtex.el (bibtex-generate-url-list):
Prefer https: to http: un URLs.
2019-09-23 00:12:52 -07:00
Paul Eggert
2f600e97e7 Avoid crashes when casifying noncontiguous regions
This is a followon fix for Bug#37477.
* lisp/simple.el (region-extract-function):
Use setq here, since the var is now defined in C code.
* src/casefiddle.c (casify_pnc_region): New function.
(Fupcase_region, Fdowncase_region, Fcapitalize_region)
(Fupcase_initials_region): Use it.
(Fupcase_initials_region): Add region-noncontiguous-p flag
for consistency with the others.  All uses changed.
(syms_of_casefiddle): Define Qbounds, Vregion_extract_function.
* src/insdel.c (prepare_to_modify_buffer_1):
* src/keyboard.c (command_loop_1):
Use Vregion_extraction_function.
* src/insdel.c (syms_of_insdel): No need to define
Qregion_extract_function.
* test/src/casefiddle-tests.el (casefiddle-oldfunc): New var.
(casefiddle-loopfunc, casefiddle-badfunc): New functions.
(casefiddle-invalid-region-extract-function): New test.
2019-09-22 10:45:14 -07:00
Andreas Schwab
2cc9c45e44 Fix compilation with CHECK_STRUCTS
* src/pdumper.c (dump_buffer): Update hash of struct buffer.
2019-09-22 14:02:15 +02:00
Stefan Kangas
14e7c01fee * src/fns.c (Fbuffer_hash): Improve doc string. 2019-09-22 01:30:01 +02:00
Juri Linkov
2879c3ec1b Support rectangular regions in capitalize-region and capitalize-dwim.
* lisp/simple.el (capitalize-dwim): Add arg region-noncontiguous-p
in capitalize-region call.

* src/casefiddle.c (Fcapitalize_region): Add arg region-noncontiguous-p.
If non-nil, operate on multiple chunks.  (Bug#37477)
(Fdowncase_region): Use builtin symbol Qregion_extract_function
rather than calling intern.
2019-09-22 02:00:01 +03:00
Paul Eggert
d49d6ea967 Revert too-picky file-access tests
Problem reported by Andreas Schwab (Bug#37475).
* doc/lispref/files.texi (Writing to Files)
(Testing Accessibility, Kinds of Files):
Document that accessibility and file-type predicates return nil
if there is trouble determining accessibility or type.
* etc/NEWS: Adjust, and list the affected primitives.
* src/callproc.c (init_callproc): Go back to Ffile_exists_p.
* src/fileio.c (PICKY_EACCES, file_test_errno):
Remove.  All uses removed.
(Ffile_name_case_insensitive_p, Ffile_exists_p, Ffile_symlink_p)
(Ffile_directory_p, Ffile_regular_p): Document that these
functions return nil if there is trouble.
(Ffile_name_case_insensitive_p, check_file_access)
(Ffile_writable_p, Ffile_symlink_p, Ffile_directory_p)
(Ffile_accessible_directory_p, Ffile_regular_p)
* src/lread.c (Fload):
Go back to treating trouble in determining the answer as if the
file were missing.
* src/fileio.c (Ffile_newer_than_file_p): Use file_attribute_errno
not file_test_errno, since returning nil is not appropriate when
there are two files to test; e.g., in the rare cases where both
file timestamps have overflowed then neither t nor nil is correct.
2019-09-21 11:38:36 -07:00
Lars Ingebrigtsen
c61bfe0a3a Mention image caching in the `image-size' doc string
* src/image.c (Fimage_size): Mention that this function caches
images, and what to do about that (bug#33275).
2019-09-21 10:16:10 +02:00
Lars Ingebrigtsen
321175434a Mention how to listen to all interfaces in make-network-process
* src/process.c (Fmake_network_process): Mention how to listen to
all interfaces (bug#34617).
2019-09-21 09:58:13 +02:00
Stefan Kangas
6d50010b34 Recommend against SHA-1 and MD5 for security
* doc/lispref/text.texi (Checksum/Hash):
* src/fns.c (Fmd5, Fsecure_hash):
* lisp/subr.el (sha1): Doc fix to recommend against SHA-1 and MD5 for
security-related applications, since they are not collision
resistant.  (Bug#37420)
2019-09-20 20:47:47 +02:00
Lars Ingebrigtsen
b8e9baac9a Allow `process-contact' not to block
* doc/lispref/processes.texi (Process Information): Document it.

* lisp/simple.el (list-processes--refresh): Don't wait for contact
information for non-setup processes.

* src/process.c (Fprocess_contact): Take an optional parameter to
avoid blocking (bug#37408).
2019-09-20 20:19:28 +02:00
Eli Zaretskii
2b80340bf3 Fix calls to insert-*-hooks when JIT font lock is active
* src/insdel.c (signal_after_change): Save and restore
interval_insert_behind_hooks and
interval_insert_in_front_hooks across calls to various other
hooks, to prevent their clobbering by those other hooks.
(Bug#37455)
2019-09-19 17:10:00 +03:00
Paul Eggert
30026cfe66 Default PICKY_ACCESS to false on non-MS
* src/fileio.c (PICKY_EACCES) [!DOS_NT]: Default to false.
2019-09-19 00:22:03 -07:00
Paul Eggert
dff4f9c759 Omit some overenthusiastic file-truename calls
Problem reported by Tino Calancha (Bug#37445).
* src/emacs.c (init_cmdargs): Call file-truename only if
needed, i.e., if invocation-directory ends in "/i386/" on
WINDOWSNT.
* src/lread.c (readevalloop): If the sourcename is not
absolute, make it absolute.  There is no need to convert
non-absolute files into truenames, since absolute files are
not converted into truenames.
(init_lread): Do not convert source-directory into a truename
at startup.  There is no need to do so in a dumped Emacs since
an absolute file name suffices.  The source directory might
not even exist any more, or might have been replaced by an
interloper who takes advantage of the truename calculation.
(syms_of_lread): Remove Qfile_truename; no longer needed.
2019-09-18 23:54:15 -07:00
Matt Bisson
6eb122c8db Fix ignored Motif scrollbar resources (Bug#37359)
* src/xterm.c (x_create_toolkit_scroll_bar): On Motif
scrollbars, "foreground" has no meaning, while "background"
means the truck and arrow colors, and "trough" means the
background of the entire widget.  This fix hooks up the Emacs
scrollbar "foreground" color to the XmNbackground resource
and the "background" color to XmNtroughColor which is more in
line with how Xaw scrollbars behave.

Copyright-paperwork-exempt: yes
2019-09-19 08:48:43 +02:00
Juanma Barranquero
79a01866a0 lisp/*.el, src/*.c: Fix typos in docstrings
* lisp/apropos.el (apropos-do-all):
* lisp/auth-source-pass.el (auth-source-pass--select-from-entries):
* lisp/auth-source.el (auth-source-user-or-password):
* lisp/calc/calc-forms.el (math-tzone-names):
* lisp/calendar/diary-lib.el (diary-face-attrs)
(diary-mark-entries-1):
* lisp/cedet/cedet-files.el (cedet-files-list-recursively):
* lisp/cedet/ede.el (ede-constructing, ede-deep-rescan):
* lisp/cedet/ede/cpp-root.el (ede-cpp-root-header-file-p):
* lisp/cedet/ede/proj.el (ede-proj-target-makefile):
* lisp/cedet/inversion.el (inversion-check-version)
(inversion-test):
* lisp/cedet/mode-local.el (mode-local-map-file-buffers):
* lisp/cedet/semantic/complete.el (semantic-displayer-ghost):
* lisp/cedet/semantic/db-find.el (semanticdb-find-translate-path-default):
* lisp/cedet/semantic/db.el (semanticdb-table)
(semanticdb-search-system-databases):
* lisp/cedet/semantic/imenu.el (semantic-imenu-index-directory):
* lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map):
* lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-use-headers-flag):
* lisp/cedet/semantic/lex.el (semantic-lex-make-keyword-table)
(semantic-lex-make-type-table, semantic-lex-debug-analyzers):
* lisp/cedet/semantic/tag-ls.el (semantic-tag-abstract-p)
(semantic-tag-leaf-p, semantic-tag-static-p)
(semantic-tag-prototype-p):
* lisp/dnd.el (dnd-open-remote-file-function, dnd-open-local-file):
* lisp/emacs-lisp/eieio-opt.el (eieio-build-class-alist)
(eieio-read-class, eieio-read-subclass):
* lisp/emacs-lisp/generator.el (cps--replace-variable-references)
(cps--handle-loop-for):
* lisp/erc/erc-dcc.el (erc-dcc-list, erc-dcc-member, erc-dcc-server)
(erc-dcc-auto-mask-p, erc-dcc-get-file, erc-dcc-chat-accept):
* lisp/eshell/em-pred.el (eshell-pred-file-type):
* lisp/faces.el (defined-colors-with-face-attributes):
* lisp/font-core.el (font-lock-mode):
* lisp/frame.el (frame-restack):
* lisp/net/shr.el (shr-image-animate):
* lisp/org/org-agenda.el (org-agenda-change-all-lines)
(org-agenda-today-p):
* lisp/org/org-id.el (org-id-get):
* lisp/org/org.el (org-highlight-latex-and-related)
(org--valid-property-p):
* lisp/org/ox-beamer.el (org-beamer--get-label):
* lisp/org/ox-latex.el (org-latex--caption-above-p):
* lisp/org/ox-odt.el (org-odt--copy-image-file)
(org-odt--copy-formula-file):
* lisp/org/ox.el (org-export-with-timestamps):
* lisp/progmodes/verilog-mode.el (verilog-indent-declaration-macros):
* lisp/ses.el (ses-file-format-extend-parameter-list):
* lisp/term.el (ansi-term):
* lisp/textmodes/bibtex.el (bibtex-no-opt-remove-re)
(bibtex-beginning-of-first-entry, bibtex-autokey-get-title)
(bibtex-read-key, bibtex-initialize):
* lisp/textmodes/flyspell.el (flyspell-word):
* lisp/view.el (view-mode-exit):
* src/composite.c:
* src/floatfns.c (Fisnan): Fix typos in docstrings.
2019-09-19 04:32:25 +02:00
Eli Zaretskii
617f4f31a0 Fix loading .elc files on MS-Windows
* src/lread.c (Fload): Don't clobber 'found' if the .el file
was not found, as it is used by WINDOWSNT later on.
2019-09-18 21:46:11 +03:00
Paul Eggert
9597ee68d9 Out-of-datedness .elc check is merely a file test
* src/fileio.c (file_test_errno): Now extern.
* src/lread.c (Fload): Use file_test_errno instead,
since this is really just a file test (the attributes
are not given to the user).
2019-09-18 05:18:58 -07:00
Eli Zaretskii
7ff2eef926 Fix the MS-Windows build broken by recent errno changes
* src/fileio.c (file_directory_p): If the file exists, but is
not a directory, set errno to ENOTDIR, like the Posix branch
does; openp expects that.
2019-09-18 15:14:15 +03:00
Paul Eggert
735940f455 Be less picky about EACCES in file test predicates
Problem reported by Tino Calancha (Bug#37445) and others.
* src/fileio.c (PICKY_EACCES): New constant, false by default.
(file_test_errno): Ignore EACCES if not picky.
(check_file_access): Investigate EACCES problems further
if picky.
2019-09-18 04:21:55 -07:00
Paul Eggert
94ca934a5c Fix permission-denied issue in MS-Windows startup
* src/callproc.c (init_callproc): Use file_access_p rather
than Ffile_exists_p during startup (Bug#37445).
2019-09-18 03:06:49 -07:00
Paul Eggert
9dc306b1db Improve reporting of I/O, access errors
Signal an error for file-oriented errors that are not tame
errors like ENOENT and ENOTDIR (Bug#37389).
Do this for primitives exposed to Lisp; the lower
level internal C API merely makes errno values available
to higher-level C code.
* doc/lispref/files.texi (Testing Accessibility)
(File Attributes, Extended Attributes): Do not say that the
functions return nil when the return value cannot be determined.
* etc/NEWS: Mention the change.
* src/dired.c (Ffile_attributes): Fix doc string confusion
about opening a file vs getting its attributes.
(file_attributes): Signal serious errors.
* src/fileio.c (check_existing, check_executable)
(check_writable): Remove.  All callers changed to use
check_file_access or file_access_p.
(file_access_p, file_metadata_errno, file_attribute_errno)
(file_test_errno, check_file_access, check_emacs_readlinkat):
New functions.
* src/fileio.c (Ffile_executable_p, Ffile_readable_p)
(Ffile_name_case_insensitive_p, Frename_file, Ffile_exists_p):
(Ffile_symlink_p, Ffile_directory_p)
(Ffile_accessible_directory_p, Ffile_regular_p)
(Ffile_selinux_context, Ffile_acl, Ffile_modes)
(Ffile_newer_than_file_p, Fset_visited_file_modtime)
(Ffile_system_info):
* src/filelock.c (unlock_file, Ffile_locked_p):
* src/lread.c (Fload):
Signal serious errors.
* src/fileio.c (Ffile_writable_p): Remove unnecessary CHECK_STRING.
(emacs_readlinkat): Now static.
* src/filelock.c (current_lock_owner, lock_if_free): Return a
positive errno on error, and the negative of the old old value
on success.  All callers changed.
* src/lread.c (openp): Propagate serious errno values to caller.
2019-09-17 19:24:38 -07:00
Jimmy Aguilar Mena
ae3edf0ac3 Substituted deprecated WebKitGTK+ api.
* src/xwidget.c : Substituted WebKitGTK+ API calls and use
JavaScriptCore GLib API instead.
2019-09-17 22:15:28 +02:00
Juanma Barranquero
746b20c237 * src/w32fns.c (Fw32_read_registry): Doc fix 2019-09-17 16:29:23 +02:00
Eli Zaretskii
8054935c61 Improve font lookup on MS-Windows
* src/w32font.c (struct font_callback_data): New member
'known_fonts'.
(w32font_list_internal, w32font_match_internal): Set up
match_data.known_fonts if the font spec includes :script that
names one of the non-USB scripts.
(add_font_entity_to_list): If font_matches_spec returns zero
for a font, and we have some fonts in match_data->known_fonts,
consider the font to be a match if it is named in known_fonts.
(font_supported_scripts): Update the Unicode Subranges.  In
particular, map bit 74 to 'burmese', as this is the name Emacs
uses, not 'myanmar'.  Add a list of scripts that have no USBs
defined for them.
(syms_of_w32font) <Qburmese, Qcuneiform_numbers_and_punctuation>
<Qaegean_number, Qw32_non_USB_fonts>: New symbols.

* lisp/term/w32-win.el (w32-no-usb-subranges): New defconst.
(w32--filter-USB-scripts, w32-find-non-USB-fonts): New functions.
(w32-non-USB-fonts): New defvar.

* lisp/international/fontset.el (setup-default-fontset): Add
more scripts to automatic setup by representative characters.

* doc/emacs/msdos.texi (Windows Fonts): Document
'w32-find-non-USB-fonts' and 'w32-non-USB-fonts'.

* etc/NEWS: Mention 'w32-find-non-USB-fonts' and
'w32-non-USB-fonts'.
2019-09-17 14:19:54 +03:00
Paul Eggert
01c929bc64 Pacify GCC -Wmaybe-uninitialized
* src/dired.c (directory_files_internal):
Pacify GCC 7.4.0-1ubuntu1~18.04.1 x86-64.
2019-09-17 04:01:20 -07:00
Paul Eggert
c108d8ecc6 Don’t round file-system-info counts
* src/fileio.c (blocks_to_bytes): Convert the byte count to an
integer, since we have bignums now.  This avoids possible rounding
errors for file systems containing more than 8 PiB or so.
2019-09-17 03:55:12 -07:00
Paul Eggert
2c2f0eb9fc Remove obsolete Lint directives
Most of the directives were wrong anyway.  Apparently
traditional lint hasn’t been used to check Emacs for years.
* src/callint.c (Finteractive):
* src/cm.c (evalcost):
* src/emacs.c (main):
* src/eval.c (call1, call2, call3, call4, call5, call6, call7, call8):
* src/fns.c (concat2, concat3, nconc2):
* src/term.c (calculate_ins_del_char_costs):
Omit ARGSUSED comments.
* src/eval.c (call1): Omit VARARGS comment.
2019-09-16 14:05:03 -07:00
Paul Eggert
2335704fcc directory-files cleanup and speed tweaking
* src/dired.c (directory_files_internal):
Check ‘match’ before doing anything heavyweight.
Move decls closer to use.
Remove obsolete comments about GC.
No need to encode ‘directory’ or to call multibyte_chars_in_text.
Remove no-longer-needed bug check.
Skip finalname construction if file_attributes fails.
2019-09-16 13:55:23 -07:00
Eli Zaretskii
facd6d5aff Improve error reporting in file_accessible_directory_p
* src/w32.c (w32_accessible_directory_p): Set errno, so that
file_accessible_directory_p does on MS-Windows, to live up to
its callers' expectations.
2019-09-16 22:19:16 +03:00
Eli Zaretskii
169d04b8ac Fix initialization of shared-game-score-directory on MS-Windows
* src/callproc.c (init_callproc) [WINDOWSNT]: Run PATH_GAME
through w32_relocate, to expand %emacs_dir%.
[DOS_NT]: Accept EACCES as not "unusual" errno value.
Reported by Richard Copley <rcopley@gmail.com>.
2019-09-16 17:51:25 +03:00
Paul Eggert
be82888347 Fix some file-name-case-insensitive glitches
* src/fileio.c (file_name_directory): New static function,
broken out of Ffile_name_directory.
(file_name_case_insensitive_err, Ffile_writable_p, Fdo_auto_save):
Use it.
(file_name_case_insensitive_err): Rename from
file_name_case_insensitive_p.  Accept an unencoded Lisp_Object
rather than an encoded char *, so that platforms other than
Cygwin and macOS need not encode the file name.  Return an int
-1, 0, errno rather than a bool (setting errno if false),
so that the caller can distinguish an error from false.
All callers changed.
(Ffile_name_case_insensitive_p): Don’t issue system calls on
platforms other than Cygwin and macOS.  Fix bug that broke the
attempt to move up the filesystem tree (it moved up only one
level).
2019-09-15 22:15:28 -07:00
Paul Eggert
ba0605779e Fix unknown-vs-nonexistent glitch for file timestamps
* src/fileio.c (time_error_value): EACCES means the file
timestamp is unknown, not that the file does not exist.
2019-09-15 20:18:06 -07:00
Paul Eggert
de3daf0639 Improve directory-access diagnostics
* src/callproc.c (init_callproc): Diagnose I/O errors,
access errors, etc. for the game directory.
* src/charset.c (init_charset): Improve quality of diagnostic
when the charsets directory has I/O errors, access errors, etc.
2019-09-15 20:12:33 -07:00
Paul Eggert
dbc57b5573 file_name_case_insensitive_p int->long fix
* src/fileio.c (file_name_case_insensitive_p):
Don’t assume ‘long int’ fits in ‘int’.
2019-09-14 22:00:42 -07:00
Paul Eggert
52172d2340 Fix gc-elapsed rounding bug
* src/alloc.c (garbage_collect): Don’t accumulate rounding
errors when computing gc-elapsed.
2019-09-14 10:56:12 -07:00
Eli Zaretskii
49a4b86925 * src/print.c (PRINT_CIRCLE_CANDIDATE_P): Fix a thinko. (Bug#36566) 2019-09-14 17:04:30 +03:00
Paul Eggert
bac66302e9 Improve gc-cons-percentage calculation
The old calculation relied on a hodgpodge of partly updated GC
stats to find a number to multiply gc-cons-percentage by.
The new one counts data found by the previous GC, plus half of
the data allocated since then; this is more systematic albeit
still ad hoc.
* src/alloc.c (consing_until_gc, gc_threshold, consing_threshold):
Now EMACS_INT, not intmax_t.
(HI_THRESHOLD): New macro.
(tally_consing): New function.
(make_interval, allocate_string, allocate_string_data)
(make_float, free_cons, allocate_vectorlike, Fmake_symbol): Use it.
(allow_garbage_collection, inhibit_garbage_collection)
(consing_threshold, garbage_collect):
Use HI_THRESHOLD rather than INTMAX_MAX.
(consing_threshold): New arg SINCE_GC.  All callers changed.
(bump_consing_until_gc): Return new consing_until_gc, instead of
nil.  All callers changed.  Don’t worry about overflow since we
now saturate at HI_THRESHOLD.  Guess that half of
recently-allocated objects are still alive, instead of relying on
the previous (even less-accurate) hodgepodge.
(maybe_garbage_collect): New function.
(garbage_collect): Work even if a finalizer disables or enables
memory profiling.  Do not use malloc_probe if GC reclaimed nothing.
* src/lisp.h (maybe_gc): Call maybe_garbage_collect instead
of garbage_collect.
2019-09-14 00:37:26 -07:00
Paul Eggert
e4fb98b542 Simplify GC statistics-gathering
* src/alloc.c (make_interval, allocate_string, make_float)
(free_cons, Fcons, setup_on_free_list)
(allocate_vector_from_block, Fmake_symbol):
Do not update gcstat, since it is for statistics from the most
recent GC, not for a partially-updated hodgepodge.
(sweep_vectors): Update gcstat, since setup_on_free_list
no longer does.
(garbage_collect_1): Rename to garbage_collect and adopt its API.
Remove the old garbage_collect, which is no longer needed.
All callers changed.
2019-09-13 16:10:54 -07:00
Gemini Lasswell
0dba340da5 Don't build print-number-table unless it will be used
There are only a few users of print-number-table, and none of them use
it when print-circle is nil.  A couple of them used to.  print_object
was changed in 2012-04-20 "* src/print.c (print_preprocess): Only
check print_depth if print-circle is nil".
byte-compile-output-docform which uses print-number-table binds
print-circle to t before printing unless
byte-compile-disable-print-circle is set, but that variable has been
marked obsolete since 24.1.

* src/print.c (print_preprocess): Assert Vprint_circle is non-nil.
Remove code handling the case when Vprint_circle is nil.
(print, Fprint_preprocess): Don't call print_preprocess unless
Vprint_circle is non-nil.
(print_object): Remove comment referencing removed code in
print_preprocess.
2019-09-13 13:43:07 -07:00
Gemini Lasswell
6eaf39d21b Fix unnecessary hash table creation in cl-prin1 (bug#36566)
cl-prin1 prints all its punctuation by passing strings to prin1.  When
print-circle was set, print_preprocess was creating a new hash table
for each string, causing excessive garbage collection when printing
large Lisp objects with cl-prin1.

* src/print.c (print_number_index): Fix typo in comment above.
(PRINT_CIRCLE_CANDIDATE_P): Don't create print_number_table
for top-level strings with no properties, except when
print_continuous_numbering is on.
2019-09-13 13:43:07 -07:00
Eli Zaretskii
5940ac6330 Fix assertion violations due to non-ASCII text in menus
* src/xdisp.c (tool_bar_height, redisplay_tool_bar)
(display_menu_bar): If the Lisp string to be displayed in the
menu-bar or tool-bar window is multibyte, tell the display
engine to treat it as multibyte, instead of relying on the
initial determination by init_iterator (which is based on the
multibyteness of the current buffer).  (Bug#37385)
2019-09-13 10:47:28 +03:00
Stefan Monnier
997415504c * src/profiler.c: Leave key hashslots as Qunbound (bug#37382)
Now that "key == Qunbound" is used to determine if a hash table entry
is available, we can't stash pre-allocated vectors into the `key` slot
anymore, so use the `value` slot instead.

(make_log): Pre-fill the `value` slots i.s.o `key`.
(evict_lower_half): Stash key back into `value`, i.s.o `key`.
(record_backtrace): Get pre-allocated vector for `value` i.s.o `key`.
2019-09-12 08:25:36 -04:00