1. 20 Oct, 2021 1 commit
    • Aidan Kehoe's avatar
      Remove support (Unicode-splitting) for running under Win95/98/ME, step 2 · c3d9375176c1
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-20  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* Makefile.in.in (win32_objs):
      	* Makefile.in.in (unicode-encapsulate):
      	Remove references to intl-auto-encap-win32.{c,obj} from this
      	file, no longer used.
      
      	* depend (gccache-xlike-inc.o): Removed.
      	* depend (gccache-xlike.o): Removed.
      	* depend (intl-auto-encap-win32.o): Removed.
      	Regenerate this file, remove references to
      	intl-auto-encap-win32.o; remove reerences to gccache-xlike* in
      	passing.
      
      	* intl-auto-encap-win32.c: Remove, all its functionality is now in
      	the header file (see revision of
      	../lib-src/make-mswin-unicode.pl).
      
      	* intl-auto-encap-win32.h: Regenerate using the Cygwin w32api
      	headers, removing runtime support for Win95/98/Me, with revision
      	of the Cygwin types to be compatible with Visual Studio 8.
      
      	* intl-encap-win32.c:
      	Revise this file to work with the Cygwin w32api headers.
      
      	* syswindows.h:
      	Ditto.
      
      lib-src/ChangeLog addition:
      
      2021-10-20  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* make-mswin-unicode.pl:
      	Revise this now we have removed support for Win95/98/Me; generate
      	the Unicode encapsulated code as inline headers that no longer
      	check at runtime whether the Unicode versions of the functions
      	should be called. No longer generate intl-auto-encap.c.
      	Revise the file to better deal with the Cygwin headers and types,
      	in a way that is compatible with Visual Studio 8.
      
      nt/ChangeLog addition:
      
      2021-10-20  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* xemacs.mak (TEMACS_COMMON_OBJS):
      	* xemacs.mak (unicode-encapsulate):
      	Remove references to intl-auto-encap-win32.{c,obj} from this file,
      	no longer used or present.
      c3d9375176c1
  2. 19 Oct, 2021 5 commits
    • Aidan Kehoe's avatar
      Fix the 64-bit Cygwin build after the last change. · 4d9c3e84aef8
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* syswindows.h:
      	Remove some casts from qxeSetWindowLongPtr, qxeGetWindowLongPtr,
      	qxeSetClassPtr, qxeGetClassPtr, fixing the 64-bit Cygwin build for
      	me.
      4d9c3e84aef8
    • Aidan Kehoe's avatar
      Send wide message explicitly when they are split, Windows. · 0f36f2ab4a32
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* dialog-msw.c (handle_directory_proc):
      	* event-msw.c (mswindows_wnd_proc):
      	* glyphs-msw.c (add_tree_item):
      	* glyphs-msw.c (add_tab_item):
      	* toolbar-msw.c (mswindows_output_toolbar):
      	Send wide messages explicitly when they are split, restoring
      	functionality for the toolbar labels.
      0f36f2ab4a32
    • Aidan Kehoe's avatar
      Remove support (Unicode-splitting) for running under Win95/98/ME, step 1 · 96251fe075ad
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* device-msw.c (mswindows_init_dde):
      	Remove references to XEUNICODE_P, we always run as a Unicode
      	program under Win32.
      	* device-msw.c (Fmswindows_printer_list):
      	Ditto, remove Windows 95/98/Me-specific code.
      	* dumper.c (pdump_file_get):
      	* dumper.c (pdump_load):
      	Remove references to XEUNICODE_P, we always run as a Unicode
      	program under Win32.
      
      	* emacs.c (main_1):
      	* emacs.c (main):
      	Error early if we are started on a Win32 system without native support
      	for Unicode.
      	No longer do other work to attempt to support Windows 95/98/Me.
      
      	* event-msw.c (Fdde_alloc_advise_item):
      	* event-msw.c (mswindows_wnd_proc):
      	Remove support for running as a non-Unicode program under Win32.
      
      	* intl-auto-encap-win32.c:
      	* intl-auto-encap-win32.c (XEUNICODE_P):
      	#define this to 1 for the moment, until we revise this file to
      	just declare inline headers for the sake of type...
      96251fe075ad
    • Aidan Kehoe's avatar
      Quiet some warnings from Visual C++. · 82c33744907a
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Quiet some warnings from Visual C++.
      	* data.c (parse_integer):
      	Visual C++ advises that unary - applied to an unsigned integer
      	remains unsigned, correct this.
      	* doprnt.c (Fnumber_to_string):
      	Declare RADIXING as a UINT_16_BIT, to quiet the compiler (we are
      	careful to check its range).
      	* fns.c (split_string_by_ichar_1):
      	Avoid multiplying a Bytecount by a double, to quiet the compiler
      	regarding data loss.
      	* xemacs.def.in.in:
      	qxesprintf() no longer available here.
      
      nt/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* xemacs.mak (TEMACS_COMMON_OBJS):
      	Remove hash.obj from this, no longer needed.
      82c33744907a
    • Aidan Kehoe's avatar
      Stop reading bignums around (* most-positive-fixnum 5) as fixnums, parse-integer · 0b11af138778
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* data.c:
      	* data.c (Fdigit_char_p):
      	Constrain our range of RADIX from one to the maximum value in
      	RADIX-TABLE.
      	* data.c (Fdigit_char):
      	Document this, do the same in this function.
      	* data.c (parse_integer):
      	Instead of attempting and failing a minority of the time to detect
      	overflow in this function, calculate that limiting number which,
      	on next iteration, may overflow, and hand over the the bignum code
      	when that is picked up.
      	* data.c (Fparse_integer):
      	Document a change to RADIX, zero is no longer accepted.
      
      tests/ChangeLog addition:
      
      2021-10-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* automated/format-tests.el:
      	Defer reading #x123456789a to runtime now it no longer reads
      	erroneously as a fixnum.
      	* automated/lisp-reader-tests.el:
      	Test for a bug fixed today, where some overflow was not detected
      	by the integer parsing code used by the Lis...
      0b11af138778
  3. 18 Oct, 2021 1 commit
    • Aidan Kehoe's avatar
      Be more systematic in initialising, clearing marker slots, window.c · 7ee8e7200a8a
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-18  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* window.c (Fdelete_slot):
      	* window.c (make_dummy_parent):
      	Be more systematic in initialising or clearing marker slots in
      	these other functions in this file, now WINDOW_MARKER_SLOT is
      	available in winslots.h
      7ee8e7200a8a
  4. 16 Oct, 2021 1 commit
    • Aidan Kehoe's avatar
      Modernise a defined-bit-width type, glyphs-eimage.c · d3a002ef59b7
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-16  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* glyphs-eimage.c (tiff_instantiate):
      	uint32 is deprecated, use our UINT_32_BIT type instead, thank you
      	the Cygwin GCC install.
      d3a002ef59b7
  5. 11 Oct, 2021 1 commit
    • Aidan Kehoe's avatar
      Rework winslots.h, making its syntax more powerful, avoiding assertion failure. · e1d36e7d8bab
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-10-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* winslots.h:
      	Rework this file, doing two broad things:
      	1. Remove the support for "saved" slots. This had been used when
      	the window configuration implementation was in C, and is no longer
      	relevant with Mike Sperber having moved it to window-xemacs.el.
      	2. Provide syntactic support for integer (usually fixnum) and
      	marker slots, allowing them to be initialised more systematically
      	from allocate_window(). This has the happy consequence that uses
      	of e.g. left_margin_width without checking its type (see
      	margin_width_internal()) will no longer throw an assertion failure
      	that small minority of times that a window is redisplayed without
      	recompute_all_cached_specifiers_in_window () having been
      	called. In theory shouldn't happen, but see the commit message
      	for a backtrace.
      
      	* window.c (WINDOW_INTEGER_SLOT_ARRAY):
      	* window.c (allocate_window):
      	* window.c (WINDOW_INTEGER_SLOT):
      	* window.c (WINDOW_SLOT):
      	* window.c (mark_window_as_deleted):
      	Use the new syntax for winslots.h in this file.
      
      
      Assertion failure:
      
      Current directory is /Sources/xemacs-21.5-new-backquotes/src/
      GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:30:16 UTC 2011)
      Copyright 2004 Free Software Foundation, Inc.
      GDB is free software, covered by the GNU General Public License, and you are
      welcome to change it and/or distribute copies of it under certain conditions.
      Type "show copying" to see the conditions.
      There is absolutely no warranty for GDB.  Type "show warranty" for details.
      This GDB was configured as "i386-apple-darwin"...Reading symbols for shared libraries ...................... done
      
      (gdb) core /cores/core.34919
      Core was generated by `/usr/local/bin/xemacs'.
      Reading symbols for shared libraries . done
      Reading symbols for shared libraries .................................. done
      #0  0x90754c5a in __kill ()
      (gdb) bt
      #0  0x90754c5a in __kill ()
      #1  0x90754c4c in kill$UNIX2003 ()
      #2  0x0019ff71 in fatal_error_signal (sig=6) at emacs.c:3854
      #3  <signal handler called>
      #4  0x90754c5a in __kill ()
      #5  0x90754c4c in kill$UNIX2003 ()
      #6  0x907e75a5 in raise ()
      #7  0x907fd6e4 in abort ()
      #8  0x00192f0e in assert_failed (file=0x210508 "window.c", line=1251, expr=0x23db72 "FIXNUMP (obj)") at emacs.c:4752
      #9  0x001e75a0 in XFIXNUM_1.lto_priv.171 (obj=21010044, file=<value temporarily unavailable, due to optimizations>, line=<value temporarily unavailable, due to optimizations>) at lisp.h:3117
      #10 0x0000760c in margin_width_internal (w=0x1f432cd8, left_margin=1) at window.c:1252
      #11 0x000b2ea6 in calculate_display_line_boundaries (w=0x1f432cd8, modeline=1) at redisplay.c:776
      #12 0x000b557b in generate_modeline (w=0x1f432cd8, dl=0x1912e00, type=1) at redisplay.c:3978
      #13 0x000b5c0d in ensure_modeline_generated.lto_priv.150 (w=0x1f432cd8, type=1) at redisplay.c:4594
      #14 0x000054c1 in regenerate_window_point_center.constprop.43 () at redisplay.c:6154
      #15 0x000b032c in redisplay_window (window=<value temporarily unavailable, due to optimizations>, skip_selected=1) at redisplay.c:6397
      #16 0x000b112d in redisplay_windows (window=524496088, skip_selected=1) at redisplay.c:6703
      #17 0x000b005b in redisplay_window (window=<value temporarily unavailable, due to optimizations>, skip_selected=1) at redisplay.c:6308
      #18 0x000b112d in redisplay_windows (window=524496088, skip_selected=1) at redisplay.c:6703
      #19 0x000b13b4 in redisplay_frame (f=<value temporarily unavailable, due to optimizations>, preemption_check=<value temporarily unavailable, due to optimizations>) at redisplay.c:7069
      #20 0x000b1711 in redisplay_device (d=0x3541cc4, automatic=<value temporarily unavailable, due to optimizations>) at redisplay.c:7147
      #21 0x000b1c63 in redisplay_no_pre_idle_hook () at redisplay.c:7222
      #22 0x0018c01a in Fnext_event (event=<value temporarily unavailable, due to optimizations>, prompt=21010044) at event-stream.c:2349
      #23 0x001daada in Fcommand_loop_1 () at cmdloop.c:622
      #24 0x001dab33 in command_loop_1 (unused_dummy=Could not find the frame base for "command_loop_1".
      ) at cmdloop.c:528
      #25 0x0019507a in condition_case_1 (handlers=21008624, bfun=0x1dab01 <command_loop_1>, barg=21010044, hfun=0x1dae67 <cmd_error>, harg=<value temporarily unavailable, due to optimizations>) at eval.c:2193
      #26 0x001dadaf in command_loop_3 () at cmdloop.c:285
      #27 0x001dadd1 in command_loop_2 (unused_dummy=Could not find the frame base for "command_loop_2".
      ) at cmdloop.c:298
      #28 0x0018f23d in internal_catch (tag=20740848, func=0x1dadc6 <command_loop_2>, arg=21010044, threw=0x0, thrown_tag=0x0, backtrace_before_throw=0x0) at eval.c:1770
      #29 0x001dad45 in initial_command_loop (load_me=21010044) at cmdloop.c:336
      #30 0x001b0bb8 in xemacs_21_5_b34_i386_apple_darwin10_8_0 (argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>, unused_envp=<value temporarily unavailable, due to optimizations>, restart=<value temporarily unavailable, due to optimizations>) at emacs.c:2757
      #31 0x0020deea in main (argc=Could not find the frame base for "main".
      ) at emacs.c:3253
      (gdb) up 10
      #10 0x0000760c in margin_width_internal (w=0x1f432cd8, left_margin=1) at window.c:1252
      (gdb) p w->right_margin_width
      $1 = 21010044
      (gdb) p Qnil
      $2 = 21010044
      (gdb) p w->left_margin_width
      $3 = 21010044
      e1d36e7d8bab
  6. 09 Oct, 2021 2 commits
    • Aidan Kehoe's avatar
      Regenerate lisp/mule/digit.el to reflect current UnicodeData.txt · e054558cb1eb
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2021-10-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* mule/make-digit.el:
      	New. File to generate digit.el from UnicodeData.txt.
      	* mule/digit.el:
      	Regenerate this reflecting the same version of UnicodeData of last
      	commit, last modification on unicode.org 2021-07-06 12:31, md5
      	c98cbeae07758b826ef080c65b9d4d61.
      e054558cb1eb
    • Aidan Kehoe's avatar
      Update uni-case-conv.el to reflect most recent UnicodeData.txt · b47e59823e8e
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2021-10-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* mule/uni-case-conv.el:
      	Update this file to reflect current UnicodeData.txt, last
      	modification on unicode.org 2021-07-06 12:31, md5
      	c98cbeae07758b826ef080c65b9d4d61.
      b47e59823e8e
  7. 14 Sep, 2021 1 commit
  8. 09 Sep, 2021 1 commit
    • Aidan Kehoe's avatar
      Move away from links to Bitbucket, now its Mercurial support is gone. · cb83f5e27eb2
      Aidan Kehoe authored
      ChangeLog addition:
      
      2021-09-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* README (Note):
      	Update a link in this file, now Bitbucket support for Mercurial is
      	no longer extant.  Thank you J Lewis Muir on Heptapod!
      
      lib-src/ChangeLog addition:
      
      2021-09-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* gnuserv.c (handle_unix_request):
      	Update a link to a specific changeset on Heptapod here, now
      	Bitbucket's Mercurial support is dead.
      
      src/ChangeLog addition:
      
      2021-09-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* ChangeLog:
      	Update a link in this file now Bitbucket support for Mercurial is
      	no longer extant.
      cb83f5e27eb2
  9. 15 Jul, 2021 2 commits
    • Aidan Kehoe's avatar
      Expose keystrokes_since_auto_save to Lisp. · b27fcbcefc1c
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-07-15  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* event-stream.c:
      	* event-stream.c (vars_of_event_stream):
      	Expose keystrokes_since_auto_save to Lisp, to allow e.g. more
      	intelligent decisions made in pre-idle-hook about when to autosave.
      b27fcbcefc1c
    • Aidan Kehoe's avatar
      Improve, simplify minibuf handling of remote file names. · de9be7923482
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2021-07-15  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* files.el:
      	* files.el (file-remote-p):
      	If EFS is loaded, use efs-path-regexp to work out if FILE is remote.
      	* minibuf.el (minibuffer-complete-and-exit):
      	* minibuf.el (exit-minibuffer):
      	Fix some indentation in these two functions.
      	* minibuf.el (minibuffer-smart-mouse-tracker):
      	Ignore ange-ftp, long deprecated.
      	Trust that #'file-remote-p will recognise EFS pathnames if EFS is
      	loaded.
      	Use the newer #'test-completion, which always gives t for an exact
      	match, rather than the older #'try-completion, where this is not
      	guaranteed.
      	* minibuf.el (minibuffer-smart-select-kludge-filename):
      	ange-ftp is long deprecated, ignore it.
      	Use the new support of #'file-remote-p for EFS, don't implement
      	that ourselves.
      de9be7923482
  10. 09 Jul, 2021 1 commit
    • Aidan Kehoe's avatar
      Fix some bugs in the printing of extent plists. · 5ff067476825
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-07-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* extents.c (print_extent):
      	Fix some bugs in the printing of extent plists, put spaces between
      	the elements, only print the plist at all if there are any non-nil
      	elements.
      5ff067476825
  11. 29 Jun, 2021 1 commit
    • Aidan Kehoe's avatar
      Revert some incompatibilities with #'make-char, #'split-char, control-1 · f7bb1e9afe27
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-06-29  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* text.c (check_coerce_octet):
      	Fix an incompatibility introduced by Ben in the unicode-internal
      	code, OCTET1 can range from 0 to 31, inclusive, and from #x80 to
      	#x9f, inclusive. It cannot range from 32 to 63.
      	(internal_to_external_charset_codepoint):
      	Fix a related incompatibility in the result of #'split-char,
      	(split-char ?\x80) now gives (control-1 0) as it did in all
      	previous versions of XEmacs mule.
      	Thank you for the bug report regarding latin-unity, Henry
      	Thompson!
      
      tests/ChangeLog addition:
      
      2021-06-29  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* automated/mule-tests.el:
      	Test the range of the OCTET1 argument with (make-char 'control
      	...), there has been some incompatibility and confusion with it.
      	Test the output of #'split-char, there was a similar
      	incompatibility with it.
      f7bb1e9afe27
  12. 10 Jun, 2021 5 commits
    • Aidan Kehoe's avatar
      assoc_no_quit(), use ALIST_LOOP_4 rather than Fassoc(). · 4524d575de48
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-06-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* lisp.h (ALIST_LOOP_4): Correct a bug in this macro, the name of
      	the tail variable reflects _al4_tail_##car.
      	* sequence.c (assoc_no_quit):
      	Implement this using ALIST_LOOP_4() rather than inhibit-quit and
      	Fassoc().
      4524d575de48
    • Aidan Kehoe's avatar
      Remove hash.c, hash.h, prefer the Lisp hash table infrastructure instead · 8ac701c0f9db
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-06-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Remove hash.h, hash.c, no longer used, since the Lisp hash tables
      	(elhash.[ch]) are preferred.
      
      	* font-mgr.c: Remove an #include for hash.h.
      	* gccache-x.c: Ditto.
      	* elhash.c (memory_hash): Move this here from hash.c, it is used
      	by the Lisp hash code.
      	* hash.c: Removed.
      	* hash.h: Removed.
      	* Makefile.in.in (objs): Remove hash.o from this list
      	* process-nt.c: Remove an #include for hash.h.
      	* process-unix.c: Ditto.
      	* process.c: Ditto.
      	* profile.c: Ditto.
      	* ui-gtk.c: Ditto.
      	* win32.c: Ditto.
      	* depend: Regenerate.
      8ac701c0f9db
    • Aidan Kehoe's avatar
      Fix the POSIX build, alloc.c · 9af1f6dacb8e
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-06-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* alloc.c: Wrap the #include "syswindows.h" with #ifdef
      	WIN32_NATIVE for the sake of the POSIX build.
      9af1f6dacb8e
    • Aidan Kehoe's avatar
      Implement the mswindows_read_link() cache as a normal Lisp hash table. · 85266ee3dde0
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-06-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Implement the mswindows_read_link() cache as a normal Lisp hash
      	table.
      	Be more careful about the result of GetTickCount() wrapping round.
      
      	* alloc.c (disksave_object_finalization):
      	Clear Vmswindows_read_link_hash before dumping, we don't want the
      	path information for build time hanging around.
      	* syswindows.h:
      	Make Vmswindows_read_link_hash available to alloc.c
      	* win32.c:
      	* win32.c (mswindows_read_link_1):
      	Use intern_istring when looking up the cache entry for a given
      	file name, allowing us to use a normal Lisp hash table.
      	Be more careful about the tick count wrapping around.
      	Change the declaration of the function to take the length of
      	FNAME, since it is always calculated anyway.
      	* win32.c (mswindows_read_link):
      	Call mswindows_read_link_1() with its new calling convention.
      	* win32.c (vars_of_win32):
      	Initialise and staticpro() Vmswindows_read_link_hash.
      85266ee3dde0
    • Aidan Kehoe's avatar
      Fix a buggy regexp, #'cl-do-prettyprint · 3b5e0b17236b
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2021-06-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* cl-extra.el (cl-do-prettyprint):
      	Fix a bug in a regexp here, can't start a subexpression within a
      	character set.
      3b5e0b17236b
  13. 27 May, 2021 1 commit
    • Aidan Kehoe's avatar
      Move the main profiling hash table to being a Lisp hash table. · 12b8d2bcb8b9
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-27  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Move the main profiling hash table to being a Lisp hash table, it
      	is safe to modify (but not to enlarge) this from a signal handler.
      
      	* gc.c:
      	No special marking for the profiling info now needed, remove the
      	call to mark_profiling_info().
      	* profile.c:
      	Vbig_profile_table is now a Lisp hash table, declare it as such.
      	* profile.c (create_profile_tables):
      	Move the body of create_timing_profile_table() in here, no need to
      	have it separate.
      
      	* profile.c (static const struct sized_memory_description
      	  hentry_description): Removed.
      	* profile.c (static const struct sized_memory_description
      	plain_hash_table_description): Removed.
      	These were never used and are not necessary now Vbig_profile_table
      	is a normal Lisp object.
      
      	* profile.c (profile_sow_backtrace):
      	Add entries for every function on the backtrace to
      	Vbig_profile_table, ensuring there won't be a need to add an entry
      	within sigprof_handler().
      	* profile.c (profile_record_about_to_call):
      	No need to pregrow_hash_table_if_necessary() here; do add zero entry
      	for *bt->function to Vbig_profile_table.
      	* profile.c (sigprof_handler):
      	Call inchash_eq() on the corresponding entry in
      	Vbig_profile_table; assert that the table hasn't been enlarged,
      	this code cannot handle that.
      	* profile.c (Fstart_profiling):
      	Use the Lisp hash table functions when dealing with
      	Vbig_profile_table.
      	* profile.c (Fclear_profiling_info):
      	Ditto.
      	* profile.c (get_profiling_info_timing_maphash): Ditto.
      	* profile.c (Fget_profiling_info): Ditto.
      	* profile.c (set_profiling_info_timing_maphash): Ditto.
      	* profile.c (Fset_profiling_info): Ditto.
      	* profile.c (mark_profiling_info_maphash): Removed. No longer
      	needed.
      	* profile.c (mark_profiling_info): Ditto.
      	* profile.c (vars_of_profile):
      	Just staticpro() Vbig_profile_table, don't dither about adding a
      	root block pointer.
      	* profile.h:
      	Remove the declaration of mark_profiling_info().
      
      man/ChangeLog addition:
      
      2021-05-27  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* internals/internals.texi (garbage_collect_1):
      	Remove documentation of special treatment of profiling info by GC,
      	something no longer done.
      	* internals/internals.texi (Profiling):
      	Document that we now use a Lisp hash table for the profiling
      	ticks, being careful to have sufficient space within it so that it
      	is never resized within a signal handler.
      12b8d2bcb8b9
  14. 26 May, 2021 3 commits
    • Aidan Kehoe's avatar
      close_process_descs(), loop through Vprocess_list rather than Vusid_to_process · da611c58288b
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-26  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* process-unix.c (close_process_descs):
      	Vusid_to_process is not used with event-Xt or event-gtk, loop
      	through Vprocess_list instead when closing descriptors in a
      	newly-forked subprocess.
      	* procimpl.h:
      	Now Vusid_to_process is no longer used outside of process.c,
      	remove it from this file.
      da611c58288b
    • Aidan Kehoe's avatar
      Move the USID (unique stream identifier) type to being Lisp_Object instead. · 41c7fb87b5a0
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-26  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* event-Xt.c (emacs_Xt_create_io_streams):
      	* event-Xt.c (emacs_Xt_delete_io_streams):
      	* event-Xt.c (debug_process_finalization):
      	* event-gtk.c (emacs_gtk_create_io_streams):
      	* event-gtk.c (emacs_gtk_delete_io_streams):
      	* event-gtk.c (debug_process_finalization):
      	* event-msw.c:
      	* event-msw.c (lisp_to_HANDLE):
      	* event-msw.c (NTPIPE_SLURP_STREAM_DATA):
      	* event-msw.c (mswindows_need_event):
      	* event-msw.c (emacs_mswindows_create_io_streams):
      	* event-msw.c (emacs_mswindows_delete_io_streams):
      	* event-stream.c (event_stream_create_io_streams):
      	* event-stream.c (event_stream_delete_io_streams):
      	* event-tty.c (emacs_tty_next_event):
      	* event-tty.c (emacs_tty_create_io_streams):
      	* event-tty.c (emacs_tty_delete_io_streams):
      	* event-unixoid.c (event_stream_unixoid_create_io_streams):
      	* event-unixoid.c (event_stream_unixoid_delete_io_streams):
      	* event-unixoid.c (init_event_unixoid):
      	* events.h:
      	* events.h (struct event_stream):
      	* general-slots.h:
      	* lisp.h:
      	* process-nt.c (nt_deactivate_process):
      	* process-unix.c (close_process_descs):
      	* process-unix.c (connect_to_file_descriptor):
      	* process-unix.c (unix_deactivate_process):
      	* process.c:
      	* process.c (get_process_from_usid):
      	* process.c (init_process_io_handles):
      	* process.c (Fprocess_send_eof):
      	* process.c (deactivate_process):
      	* process.c (init_xemacs_process):
      	* process.c (vars_of_process):
      	* process.h:
      	* procimpl.h:
      	* procimpl.h (struct process_methods):
      	Move the unique stream identifier (USID) type to being a
      	Lisp_Object rather than a C integer type.
      	Use the symbols Qdiscard, Qerror for USID_ERROR and USID_DONTHASH.
      	Use a weak list for the USID to process mapping, rather than a
      	native (non-Lisp) hash table, the number of streams will be
      	comfortably less than a hundred most of the time.
      	Provide lisp_to_HANDLE(), HANDLE_to_lisp() to this end in the
      	win32 code.
      
      man/ChangeLog addition:
      
      2021-05-26  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* internals/internals.texi (Stream Pairs):
      	* internals/internals.texi (Converting Events):
      	Update the documentation of the unique stream identifiers to
      	reflect that these are now Lisp objects.
      41c7fb87b5a0
    • Aidan Kehoe's avatar
      Correct a couple of assertions in the Win32 code. · 8fe0ddf71ba4
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-26  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* frame-msw.c (mswindows_init_frame_1):
      	* scrollbar-msw.c (mswindows_create_scrollbar_instance):
      	Correct a couple of assertions in these functions, avoid crashing
      	at startup on 32-bit Windows.
      8fe0ddf71ba4
  15. 19 May, 2021 1 commit
    • Aidan Kehoe's avatar
      Implement fc_intern() using a normal Lisp hash table, font-mgr.c · 779ea822c0ed
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-19  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Implement fc_intern() using a normal Lisp hash table, warn if
      	debug-xft is non-zero and the property name is not recognized.
      	* font-mgr.c:
      	* font-mgr.c (fc_intern):
      	* font-mgr.c (vars_of_font_mgr):
      	Initialize Vfc_property_name_hash_table here, and staticpro it.
      	* font-mgr.c (reinit_vars_of_font_mgr):
      	Remove the make_string_hash_table() call here.
      779ea822c0ed
  16. 11 May, 2021 1 commit
    • Aidan Kehoe's avatar
      #'gtk-import-function-internal, use binary search rather than hash table · 0849b7b1ff06
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* emacs-marshals.c:
      	* emacs-marshals.c (FOR_ALL_MARSHALLERS): New.  Regenerate this
      	file, see ../lisp/gtk-marshal.el.
      	* ui-gtk.c:
      	Make the map from marshaller types to functions a compile-time
      	constant, avoiding the creation of a hash table the first time a
      	marshalled function is called.
      	* ui-gtk.c (find_marshaller):
      	Move this here from emacs-marshals.c.
      	* ui-gtk.c (Fgtk_import_function_internal):
      	No need to prepend "emacs_gtk_marshal_" to the argument passed to
      	find_marshaller().
      
      lisp/ChangeLog addition:
      
      2021-05-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* gtk-marshal.el (get-marshaller-type-info): New.
      	Summarize the type info (so return type and argument type) of RVAL
      	and ARGS as a string.
      	* gtk-marshal.el (get-marshaller-name): Implement this using
      	#'get-marshaller-type-info.
      	* gtk-marshal.el (define-marshaller):
      	Add a newline and appropriate indentation to the C definition of
      	the function.
      	Push the now-defined marshal function onto defined-marshallers.
      	* gtk-marshal.el:
      	When creating emacs-marshal.c, instead of creating a long list of
      	puthash() calls to be called the first time any function is
      	imported, create a table mapping the lower 16 bits of the type
      	string hash to the corresponding function, which is faster in my
      	testing (with 10,000 gtk-import-function-internal calls), and has
      	more predictable performance than the old approach.
      0849b7b1ff06
  17. 10 May, 2021 1 commit
    • Aidan Kehoe's avatar
      Error if NUMBER is a character or a marker, #'zerop · 42ec899a2069
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2021-05-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* subr.el (zerop):
      	Error if NUMBER is a character or a marker in this function, as
      	the C code did previously.
      
      tests/ChangeLog addition:
      
      2021-05-10  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* automated/lisp-tests.el (wrong-type-argument):
      	Check that #'zerop errors appropriately if supplied a character or
      	a marker.
      42ec899a2069
  18. 06 May, 2021 3 commits
    • Aidan Kehoe's avatar
      Use weak lists rather than hash tables, window saved point cache. · c32a0554581d
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-06  Aidan Kehoe  <kehoea@parhasard.net>
      
      	The window point and saved_window_start caches are very small,
      	much less than 100 elements, use weak lists rather than weak hash
      	tables.
      
      	* window.c (make_point_cache): New. Renamed from
      	make_saved_buffer_point_cache().
      	* window.c (get_point_cache): New.
      	* window.c (put_point_cache): New.
      
      	* window.c (allocate_window):
      	* window.c (unshow_buffer):
      	* window.c (Fdelete_window):
      	* window.c (Fset_window_buffer):
      	* window.c (make_dummy_parent):
      	Use the new interface in all these functions.
      c32a0554581d
    • Aidan Kehoe's avatar
      #'make-variable-buffer-local, don't needlessly store Fcurrent_buffer () · b9e401de31a6
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-05-06  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* symbols.c (Fmake_variable_buffer_local):
      	Don't store the current buffer in this function, this function
      	doesn't actually directly make the symbol have a buffer-local
      	value, and storing a buffer that isn't used leads to minor issues
      	with buffers not getting garbage-collected when they should.
      b9e401de31a6
    • Aidan Kehoe's avatar
      Fix a longstanding bug when #'easy-menu-remove called before #'easy-menu-add · 501c528f409f
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2021-05-06  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* easymenu.el (easy-menu-add):
      	* easymenu.el (easy-menu-remove):
      	In the normal course of events #'easy-menu-remove is called before
      	#'easy-menu-add, and so the code in the latter to save any
      	existing non-default mode-popup-menu fails. Add corresponding code
      	to #'easy-menu-remove too.
      501c528f409f
  19. 29 Apr, 2021 1 commit
    • Aidan Kehoe's avatar
      Remove gccache-gtk.[ch], they are no longer relevant with GTK3 · 7bdbe2e7fe29
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-04-29  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Since GTK has moved to Cairo, it is no longer useful to attempt to
      	cache graphic contexts under that window system. Remove that code.
      
      	* console-xlike-inc.h: Remove those declarations and types
      	specific to the GC caching code.
      	* depend: Regenerate.
      	* gccache-gtk.c: Remove.
      	* gccache-gtk.h: Remove.
      	* gccache-x.h (X_SET_GC_FILL, X_SET_GC_PIXEL): Move these macros
      	here, rename from XLIKE_SET_GC_{FILL,PIXEL}.
      	* redisplay-x.c:
      	* redisplay-x.c (x_get_gc): Move this here from
      	redisplay-xlike-inc.c, renaming it from XLIKE_get_gc()
      	* redisplay-x.c (x_output_horizontal_line): Call it using the new
      	name. Use the X-specific GC masks.
      	* redisplay-x.c (x_output_vertical_divider): Ditto.
      	* redisplay-x.c (X_COLOR_TO_PIXEL): Add this, renamed from
      	XLIKE_COLOR_TO_PIXEL, moved from console-xlike-inc.h
      	* redisplay-x.c (x_flash): Use it, use the X-specific GC mask
      	names and function names.
      	* redisplay-x.c (x_output_blank): Ditto.
      	* redisplay-x.c (x_output_eol_cursor): Ditto.
      	* redisplay-x.c (x_output_xlike_pixmap): Ditto.
      	* redisplay-x.c (x_output_string): Ditto.
      	* redisplay-xlike-inc.c:
      	Move XLIKE_get_gc() to redisplay-x.c.
      	* redisplay-xlike-inc.c (XLIKE_output_blank):
      	Use the X-specific names when appropriate.
      	* redisplay-xlike-inc.c (XLIKE_output_pixmap):
      	Ditto.
      7bdbe2e7fe29
  20. 22 Apr, 2021 1 commit
    • Aidan Kehoe's avatar
      Move away from snprintf() to emacs_snprintf(), Mule-ize a few functions. · 3ee5188e182e
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-04-22  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* fontcolor-xlike-inc.c (FcResultToString):
      	* fontcolor-xlike-inc.c (FcTypeOfValueToString):
      	Use emacs_snprintf_ascbyte() in both these functions rather than
      	snprintf.
      	* gpmevent.c (turn_off_gpm):
      	Mule-ize this function.
      	* gpmevent.c (Fgpm_enabled_p):
      	Ditto.
      	* gpmevent.c (Fgpm_enable):
      	Ditto. Use emacs_snprintf() rather than snprintf(). Give a more
      	informative error when the current tty is not a Linux console.
      	* number-mp.c (bignum_set_long):
      	Use fixnum_to_string here rather than snprintf().
      	* process-unix.c (unix_open_network_stream):
      	Use emacs_snprintf() rather than snprintf() here. Check the
      	integer range for numeric ports.
      	* tls.c (tls_set_x509_key_file):
      	Use emacs_snprintf_ascbyte() here.
      3ee5188e182e
  21. 20 Apr, 2021 1 commit
    • Aidan Kehoe's avatar
      Remove redisplay_text_width_string(), no longer used. · 521182c3696a
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-04-20  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* redisplay.c (redisplay_text_width_string): Removed.
      	No longer used, and equivalent to
      	redisplay_window_text_width_string(). On inspection the only
      	difference appears to be the cachel updating, but r_w_t_w_s does
      	that too, see separate_textual_runs_mule.
      	* redisplay.h:
      	Remove its declaration.
      521182c3696a
  22. 17 Apr, 2021 2 commits
    • Aidan Kehoe's avatar
      Check for a bug just fixed with modeline display of current line number · 1b464322b6a7
      Aidan Kehoe authored
      tests/ChangeLog addition:
      
      2021-04-17  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* redisplay-tests.el (buffer):
      	Test a bug just fixed with display of line numbers in the modeline.
      1b464322b6a7
    • Aidan Kehoe's avatar
      Fix the last of the byte-char problems in window.c · 657519ff195a
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-04-17  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* redisplay.h:
      	Update the declaration of point_in_line_start_cache() here, to
      	reflect byte positions.
      	* window.c (Fwindow_displayed_text_pixel_height):
      	Use the buffer byte positions with point_in_line_start_cache(),
      	the last of the byte-char confusion in window.c
      657519ff195a
  23. 16 Apr, 2021 1 commit
  24. 15 Apr, 2021 1 commit
    • Aidan Kehoe's avatar
      Revise point_visible() to avoid recently-introduced scrolling problems · 13d6062cea8b
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-04-15  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* redisplay.c (point_visible):
      	end_pos[CURRENT_DISP] is now the inclusive upper bound on the
      	positions shown, not exclusive, revise this appropriately. Thank
      	you for the bug report, Stephen Turnbull!
      13d6062cea8b
  25. 14 Apr, 2021 1 commit
    • Aidan Kehoe's avatar
      Correct some further byte-char confusion, #'move-to-window-line. · df2bde42f558
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2021-04-14  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Correct some further byte-char confusion, #'move-to-window-line.
      
      	* redisplay.h: line_at_center() returns a line number, so the
      	appropriate type is Charcount, declare it as such.
      	* redisplay.c (line_at_center): Update the definition accordingly.
      	* redisplay.c (point_at_center): Update a call to line_at_center()
      	accordingly.
      
      	* window.c (Fmove_to_window_line):
      	Call line_at_center(), point_at_center() with byte positions.
      df2bde42f558