1. 22 Jan, 2015 1 commit
  2. 20 Jan, 2015 6 commits
    • Paul Eggert's avatar
      Undo port to hypothetical nonzero Qnil case · 0dd19ac8
      Paul Eggert authored
      This mostly undoes the previous change in this area.  See:
      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00570.html
      * alloc.c (allocate_pseudovector):
      * callint.c (Fcall_interactively):
      * dispnew.c (realloc_glyph_pool):
      * fringe.c (init_fringe):
      * lisp.h (memsetnil):
      * xdisp.c (init_iterator):
      Simplify by assuming that Qnil is zero, but verify the assumption.
      * lisp.h (NIL_IS_ZERO): Revert back to this symbol, removing
      NIL_IS_NONZERO.  All uses changed.
      0dd19ac8
    • Jan Djärv's avatar
      Fix double chars in NS port. · a53b9132
      Jan Djärv authored
      Fixes: debbugs:19531
      
      * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt.
      a53b9132
    • Dmitry Antipov's avatar
      Prefer xlispstrdup to avoid dumb calls to strlen · f9775f21
      Dmitry Antipov authored
      * nsfont.m (ns_get_family):
      * nsterm.m (ns_term_init):
      * w32fns.c (w32_window):
      * xfns.c (x_window, Fx_select_font): Use xlispstrdup.
      f9775f21
    • Paul Eggert's avatar
      Correct an old fix for GTK font selection · ef5a526f
      Paul Eggert authored
      * gtkutil.c (xg_get_font): Fix off-by-2 typo.
      Fixes: bug#3228
      ef5a526f
    • Paul Eggert's avatar
      Fix minor bugs with printing null bytes · 97bf9238
      Paul Eggert authored
      * minibuf.c (read_minibuf_noninteractive):
      * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]:
      Work even if the Lisp string contains a null byte.
      97bf9238
    • Paul Eggert's avatar
      Port to hypothetical case where Qnil is nonzero · 347e0144
      Paul Eggert authored
      * alloc.c (allocate_pseudovector):
      * callint.c (Fcall_interactively):
      * coding.c (syms_of_coding):
      * dispnew.c (realloc_glyph_pool):
      * fringe.c (init_fringe):
      * lisp.h (memsetnil):
      * xdisp.c (init_iterator):
      Port to the currently-hypothetical case where Qnil is nonzero.
      * dispnew.c (adjust_glyph_matrix): Remove unnecessary verification,
      as there are no Lisp_Object values in the data here.
      * lisp.h (NIL_IS_NONZERO): New symbol, replacing NIL_IS_ZERO.
      All uses changed.  Define only if not already defined, so that one
      can debug with -DNIL_IS_NONZERO.
      * xdisp.c (init_iterator): Remove unnecessary initializations to 0.
      347e0144
  3. 19 Jan, 2015 2 commits
    • Eli Zaretskii's avatar
      Verify that Qnil is zero before relying on that in redisplay. · fb6462f0
      Eli Zaretskii authored
       src/dispnew.c (adjust_glyph_matrix, realloc_glyph_pool): Verify that
       Qnil is represented as zero, before using that to initialize parts
       of the glyph structure.
       src/xdisp.c (init_iterator): Verify that Qnil is represented as
       zero, before using that to initialize parts of the iterator
       structure.
      fb6462f0
    • Paul Eggert's avatar
      Prefer memset to repeatedly assigning Qnil · b7f83add
      Paul Eggert authored
      * alloc.c (allocate_pseudovector): Catch more bogus values.
      * alloc.c (allocate_pseudovector):
      * callint.c (Fcall_interactively):
      * coding.c (syms_of_coding):
      * fringe.c (init_fringe):
      Verify that Qnil == 0.
      * callint.c (Fcall_interactively):
      * eval.c (Fapply, Ffuncall):
      * fns.c (mapcar1, larger_vector):
      * font.c (font_expand_wildcards):
      * fringe.c (init_fringe):
      Prefer memset to assigning zeros by hand.
      * callint.c (Fcall_interactively):
      Remove duplicate assignment of Qnil to args[i].
      * coding.c (syms_of_coding):
      Prefer LISP_INITIALLY_ZERO to assigning zeros by hand.
      * fileio.c (Ffile_selinux_context):
      Rewrite to avoid need for Lisp_Object array.
      * lisp.h (XLI_BUILTIN_LISPSYM): New macro.
      (DEFINE_LISP_SYMBOL_END): Use it.
      (NIL_IS_ZERO): New constant.
      (memsetnil): New function.
      b7f83add
  4. 16 Jan, 2015 4 commits
    • Dmitry Antipov's avatar
      Prefer INLINE functions in font.h to match style used in lisp.h · 4303d110
      Dmitry Antipov authored
      * font.h (FONTP, FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P)
      (CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
      (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, CHECK_FONT_GET_OBJECT):
      Now functions.
      * font.c (Ffont_otf_alternates, Fquery_font, Ffont_get_glyphs):
      * ftfont.c (ftfont_shape):
      * macfont.m (macfont_shape):
      * w32uniscribe.c (uniscribe_shape):
      * xftfont.c (xftfont_shape): Adjust CHECK_FONT_GET_OBJECT users.
      4303d110
    • Dmitry Antipov's avatar
      Tiny lisp.h cleanup · 7ee2733f
      Dmitry Antipov authored
      * lisp.h (XTERMINAL): Add eassert.
      * process.c (make_lisp_proc): Now static here.
      7ee2733f
    • Dmitry Antipov's avatar
      Tune pseudovector allocation assuming Qnil == 0 · 3b48f995
      Dmitry Antipov authored
      * alloc.c (allocate_pseudovector): Use memset for both
      Lisp_Objects and regular slots.  Add zerolen arg.
      * lisp.h (allocate_pseudovector): Adjust prototype.
      (ALLOCATE_PSEUDOVECTOR): Adjust user.
      (ALLOCATE_ZEROED_PSEUDOVECTOR): New macro.
      (allocate_hash_table, allocate_window, allocate_frame)
      (allocate_process, allocate_terminal): Remove prototypes.
      * fns.c (allocate_hash_table): Now static here.
      * frame.c (allocate_frame):
      * process.c (allocate_process):
      * terminal.c (allocate_terminal):
      * window.c (allocate_window): Now static here.
      Use ALLOCATE_ZEROED_PSEUDOVECTOR.  Add comment.
      3b48f995
    • Paul Eggert's avatar
      Give up on -Wsuggest-attribute=const · 0adc75af
      Paul Eggert authored
      The attribute doesn't help performance significantly, and the
      warning seems to be more trouble than it's worth.  See the thread at:
      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00361.html
      * configure.ac (WERROR_CFLAGS): Don't use -Wsuggest-attribute=const.
      * lib-src/make-docfile.c (write_globals):
      Remove special hack for Fnext_read_file_uses_dialog_p.
      * src/decompress.c (Fzlib_available_p):
      * src/gnutls.c (Fgnutls_available_p):
      * src/gtkutil.h (xg_uses_old_file_dialog):
      * src/xdisp.c (Ftool_bar_height):
      * src/xmenu.c (popup_activated):
      No longer const, since it's not const on at lest some
      configurations, and we shouldn't lie to the compiler.
      0adc75af
  5. 15 Jan, 2015 2 commits
    • Eli Zaretskii's avatar
      Add set-binary-mode primitive to switch a standard stream to binary I/O. · 0f238ea4
      Eli Zaretskii authored
       src/fileio.c: Include binary-io.h.
       (Fset_binary_mode): New function.
       (syms_of_fileio): Defsubr it.
       (syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.
      
       admin/unidata/unidata/uvs.el (uvs-print-table-ivd): Call set-binary-mode on
       stdout.
      
       doc/lispref/streams.texi (Input Functions): Document 'set-binary-mode'.
       (Output Functions): Cross-reference to documentation of
       'set-binary-mode'.
      
       etc/NEWS: Mention 'set-binary-mode'.
      0f238ea4
    • Ted Zlatanov's avatar
      Flag :unknown-ca and :self-signed SSL certs (Bug#19404) · 3b7eed4e
      Ted Zlatanov authored
      Fixes: debbugs:19404
      
      * gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
      (Fgnutls_peer_status): Use it to set the :self-signed flag.
      Rename the previous :self-signed to :unknown-ca.
      (Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.
      3b7eed4e
  6. 14 Jan, 2015 8 commits
    • Eli Zaretskii's avatar
      Fix crashes on MS-Windows due to pop-up menus (Bug#19596) · e7db8e8d
      Eli Zaretskii authored
       src/w32fns.c (w32_wnd_proc): Ignore MENUITEMINFO's dwItemData data
       when FLAGS indicate the item is not highlighted, i.e. it's not our
       help-echo string.
      e7db8e8d
    • Martin Rudalics's avatar
      In update_frame_menubar remove garbaged code. · 9602b625
      Martin Rudalics authored
      * xmenu.c (update_frame_menubar): Remove garbaged code.
      9602b625
    • Dmitry Antipov's avatar
      Never move gap in make_buffer_string_both. · 009836b9
      Dmitry Antipov authored
      * editfns.c (make_buffer_string_both): If requested range intersects
      the gap, don't move the latter but copy in two regions, thus avoiding
      unnecessary relocation of buffer data.
      009836b9
    • Dmitry Antipov's avatar
      Consistently handle time zone specification. · da396beb
      Dmitry Antipov authored
      * editfns.c (decode_time_zone): New function, refactored out from ...
      (Fencode_time): ... adjusted user.
      (Fset_time_zone_rule): Use decode_time_zone.
      da396beb
    • Paul Eggert's avatar
      remove_slash_colon need not be inline · d4b352af
      Paul Eggert authored
      * process.c, process.h (remove_slash_colon): No longer inline.
      This saves text bytes without hurting runtime performance.
      d4b352af
    • Dmitry Antipov's avatar
      Consolidate common path transformation code. · d7e26b44
      Dmitry Antipov authored
      * process.h (remove_slash_colon): New function.
      * callproc.c (encode_current_directory, call_process):
      * process.c (Fstart_process): Use it.
      d7e26b44
    • Dmitry Antipov's avatar
      Avoid extra multibyteness check in ENCODE_FILE users. · 01ebf7a3
      Dmitry Antipov authored
      * callproc.c (encode_current_directory, Fcall_process, call_process):
      * dired.c (directory_files_internal, file_name_completion):
      Do not check for STRING_MULTIBYTE because encode_file_name
      is a no-op for unibyte strings.
      01ebf7a3
    • Paul Eggert's avatar
      Use bool for boolean in xmenu.c, xml.c · 3ef29501
      Paul Eggert authored
      * xmenu.c (x_menu_set_in_use, popup_get_selection)
      (Fx_menu_bar_open_internal, popup_widget_loop)
      (x_activate_menubar, xg_crazy_callback_abort)
      (update_frame_menubar, set_frame_menubar)
      (initialize_frame_menubar, free_frame_menubar)
      (create_and_show_popup_menu, x_menu_show)
      (create_and_show_dialog, x_dialog_show):
      * xml.c (libxml2_loaded_p, init_libxml2_functions, parse_region)
      (Flibxml_parse_html_region, Flibxml_parse_xml_region):
      * xrdb.c (main) [TESTRM]:
      * xsettings.c (init_gsettings):
      * xterm.c (XFillRectangle, xg_scroll_callback)
      (xg_end_scroll_callback):
      * xterm.h (x_menu_set_in_use) [USE_GTK || USE_MOTIF]:
      Use bool for boolean.
      * xmenu.c (TRUE): Remove; no longer used.
      (show_help_event): Remove long-unused code.
      (set_frame_menubar): Remove "#if 1" and corresponding "#endif" lines.
      3ef29501
  7. 13 Jan, 2015 7 commits
    • Paul Eggert's avatar
      Don't say Fnext_read_file_uses_dialog_p is const · 785adfcc
      Paul Eggert authored
      It's const only if a windowing system is not used; don't say it's
      const otherwise.  See:
      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00310.html
      * lib-src/make-docfile.c (write_globals):
      Add a special hack for Fnext_read_file_uses_dialog_p.
      * src/fileio.c (next_read_file_uses_dialog_p): Remove.
      Move guts back to ...
      (Fnext_read_file_uses_dialog_p): ... here.
      Don't declare as const, as make-docfile.c now has a special case
      for this function.  This is an ugly hack, but it's better than
      lying to the compiler.
      785adfcc
    • Paul Eggert's avatar
      Remove now-unnecessary forward XTYPE decl · 56478476
      Paul Eggert authored
      * lisp.h (XTYPE): Remove forward declaration.  The recent merge
      from emacs-24 fixed the problem in a better way, by moving XPNTR's
      definition to after XTYPE's.
      56478476
    • Eli Zaretskii's avatar
      Fix problems with 32-bit wide-int build exposed by MinGW · 5aa618b0
      Eli Zaretskii authored
       lisp.h (XPNTR): Move definition to after XTYPE, to avoid
       compilation error in an unoptimized build when !USE_LSB_TAG.
       src/w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
       same larger value as for the 64-bit build.
       src/w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
       avoid compiler warnings.
       src/w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
       Avoid compiler warnings about cast from integer to pointer of
       different size.
       src/w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
       UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
       casting from integer to pointer of different size.
       (add_menu_item): Pass the help-echo string as a pointer to
       Lisp_String, not as a Lisp_Object.
       (w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
       string object from its C pointer.
       src/w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
       make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
       C pointer.
       <WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
       (Fx_create_frame): Type-cast the result of XFASTINT to avoild
       compiler warnings about size differences.
       (Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
       pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
       (Fw32_toggle_lock_key): Pass the new state of the key as a C
       integer; use -1 for nil.  Doc fix.
       src/.gdbinit (xgetsym): New subroutine.
       (xsymname, xsymbol): Use it.
       (xprintsym): No need to call xgetptr.
      5aa618b0
    • Dmitry Antipov's avatar
      Make Fnext_read_file_uses_dialog_p compatible with recent DEFUN change. · 0064e36f
      Dmitry Antipov authored
      * fileio.c (next_read_file_uses_dialog_p): New workaround ...
      (Fnext_read_file_uses_dialog_p): ... called from here to avoid
      ATTRIBUTE_CONST dependency from #ifdefs.  For details, see
      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00289.html.
      0064e36f
    • Martin Rudalics's avatar
      In adjust_frame_size don't return too early after font size change. · 233dcf12
      Martin Rudalics authored
      * frame.c (adjust_frame_size): Make sure new numbers of
      lines/columns get installed after font size change (Bug#19575).
      233dcf12
    • Dmitry Antipov's avatar
      Consolidate duplicated string matching code. · b53b1ca4
      Dmitry Antipov authored
      * search.c (fast_string_match_internal): New function,
      consolidated from...
      (fast_string_match, fast_string_match_ignore_case): ...functions
      which are...
      * lisp.h (fast_string_match, fast_string_match_ignore_case):
      inlined from here now.
      (fast_string_match_internal): Add prototype.
      * dired.c (file_name_completion): Use fast_string_match_internal.
      b53b1ca4
    • Dmitry Antipov's avatar
      Support const and noreturn DEFUN attributes. · ad9c4a40
      Dmitry Antipov authored
      * lib-src/make-docfile.c (struct global): New field 'flags'.
      (DEFUN_noreturn, DEFUN_const): New enum bitfields.
      (add_global): Now return pointer to global.
      (write_globals): Add _Noreturn and ATTRIBUTE_CONST attributes
      if requested by global's flags.
      (stream_match): New function.
      (scan_c_stream): Recognize 'attributes:' of DEFUN.
      
      * src/callint.c (Finteractive):
      * src/character.c (Fcharacterp, Fmax_char):
      * src.data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
      (Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
      (Ffloatp, Fbyteorder):
      * src/decompress.c (Fzlib_available_p):
      * src/fns.c (Fidentity):
      * src/frame.c (Fframe_windows_min_size):
      * src/gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
      * src/window.c (Fwindow__sanitize_window_sizes):
      * src/xdisp.c (Ftool_bar_height):
      * src/xfaces.c (Fface_attribute_relative_p): Add const attribute.
      * src/emacs.c (Fkill_emacs):
      * src/eval.c (Fthrow):
      * src/keyboard.c (Ftop_level, Fexit_recursive_edit)
      (Fabor_recursive_edit): Add noreturn attribute.
      ad9c4a40
  8. 12 Jan, 2015 4 commits
    • Paul Eggert's avatar
      Port to 32-bit MingGW --with-wide-int · 52afe0cf
      Paul Eggert authored
      Problem reported by Eli Zaretskii in:
      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00265.html
      * lisp.h (struct Lisp_Sub_Char_Table): Check that offset matches
      what we think it is, rather than checking only its alignment (and
      doing so incorrectly on MinGW).
      52afe0cf
    • Dmitry Antipov's avatar
      Miscellaneous tiny fixes here and there. · e946a9ac
      Dmitry Antipov authored
      * fileio.c (Ffile_name_as_directory, Fdirectory_file_name):
      Remove dead NILP check.
      * image.c (Flookup_image): Use regular format for docstring.
      * keyboard.c (apply_modifiers_uncached): Use stpcpy.
      e946a9ac
    • Martin Rudalics's avatar
      Adjust frame heights to real height of tool bar. · fb35f1f7
      Martin Rudalics authored
      * frame.el (frame-notice-user-settings): Remove code dealing with
      frame-initial-frame-tool-bar-height.  Turn off `tool-bar-mode'
      only if `window-system-frame-alist' or `default-frame-alist' ask
      for it.
      (make-frame): Update frame-adjust-size-history if needed.
      * dispnew.c (change_frame_size_1): Pass Qchange_frame_size to
      adjust_frame_size.
      * frame.c (frame_default_tool_bar_height): New variable.
      (adjust_frame_size): Possibly add requested adjustment to
      Vframe_adjust_size_history.
      (make_frame): Initialize tool_bar_redisplayed_once slot.
      (Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify
      doc-string.  Call adjust_frame_size unconditionally (the frame's
      text size may remain unaltered but the pixel size may change).
      (x_figure_window_size): If frame_default_tool_bar_height was
      set, use it instead of calculating the tool bar height from
      DEFAULT_TOOL_BAR_IMAGE_HEIGHT.  Don't set
      Vframe_initial_frame_tool_bar_height.
      (Qchange_frame_size, Qxg_frame_set_char_size)
      (Qset_window_configuration, Qx_create_frame_1)
      (Qx_create_frame_2): New symbols.
      (Vframe_initial_frame_tool_bar_height): Remove.
      (Vframe_adjust_size_history): New history variable for debugging
      frame size adjustments.
      * frame.h (struct frame): New boolean slot
      tool_bar_redisplayed_once.
      (frame_default_tool_bar_height): Extern.
      * gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size
      to adjust_frame_size.
      * nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and
      Qx_create_frame_2 to adjust_frame_size.
      * w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with
      inhibit 1 when we have not redisplayed the tool bar yet.
      (Fx_create_frame): Pass Pass Qx_create_frame_1 and
      Qx_create_frame_2 to adjust_frame_size.
      * w32menu.c (set_frame_menubar): Simplify adjust_frame_size
      call.
      * window.c (Fset_window_configuration): Pass
      Qset_window_configuration to adjust_frame_size.
      * xdisp.c (redisplay_tool_bar): Assign new height to
      frame_default_tool_bar_height.
      (redisplay_internal): If we haven't redisplayed this frame's
      tool bar, call redisplay_tool_bar early so we can adjust the
      frame size accordingly.
      * xfns.c (x_change_tool_bar_height): Call adjust_frame_size with
      inhibit 1 when we have not redisplayed the tool bar yet.
      (Fx_create_frame): Pass Pass Qx_create_frame_1 and
      Qx_create_frame_2 to adjust_frame_size.
      fb35f1f7
    • Paul Eggert's avatar
      Have 'make' output better GEN names · d703a4dc
      Paul Eggert authored
      * lisp/Makefile.in (PHONY_EXTRAS): New macro.
      (.PHONY): Depend on it, and on $(lisp)/loaddefs.el, so that the
      relevant files' time stamps are ignored.
      (custom-deps, $(lisp)/cus-load.el, finder-data)
      ($(lisp)/finder-inf.el): Use PHONY_EXTRAS.
      (custom-deps, $(lisp)/cus-load.el, finder-data)
      ($(lisp)/finder-inf.el, autoloads, $(lisp)/loaddefs.el)
      ($(lisp)/subdirs.el, update-subdirs):
      Output more-accurate destination names with GEN.
      * src/Makefile.in (gl-stamp, globals.h): Simplify by putting the new
      contents of globals.h into gl-stamp.  This lets us use AM_V_GEN
      more naturally so that 'make' can output more-accurate names.
      d703a4dc
  9. 11 Jan, 2015 3 commits
  10. 10 Jan, 2015 3 commits
    • Paul Eggert's avatar
      Port to 32-bit --with-wide-int · 6a37ecee
      Paul Eggert authored
      Prefer symbol indexes to struct Lisp_Symbol * casted and then
      widened, as the latter had trouble with GCC on Fedora 21 when
      configured --with-wide-int and when used in static initializers.
      * lib-src/make-docfile.c (write_globals): Define and use symbols like
      iQnil (a small integer, like 0) rather than aQnil (an address
      constant).
      * src/alloc.c (garbage_collect_1, which_symbols):
      * src/lread.c (init_obarray):
      Prefer builtin_lisp_symbol when it can be used.
      * src/dispextern.h (struct image_type.type):
      * src/font.c (font_property_table.key):
      * src/frame.c (struct frame_parm_table.sym):
      * src/keyboard.c (scroll_bar_parts, struct event_head):
      * src/xdisp.c (struct props.name):
      Use the index of a builtin symbol rather than its address.
      All uses changed.
      * src/lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
      (TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
      symbol indexes rather than pointers, and which work better on MSB
      hosts because they shift right before tagging.  All uses changed.
      (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
      No longer noops on wide-int hosts, since they work now.
      (builtin_lisp_symbol): New function.
      6a37ecee
    • Paul Eggert's avatar
      Port to HAVE_FREETYPE && !HAVE_XFT · 64993792
      Paul Eggert authored
      * dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
      * font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
      Declare in this case too.
      64993792
    • Paul Eggert's avatar
      Port Qnil==0 changes to 32-bit --with-wide-int · 29eaf3c8
      Paul Eggert authored
      * lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
      macro-implemented version.  For the non-USE_LSB_TAG case, supply
      a new inline function that is the inverse of the new TAG_SYMPTR.
      (lisp_h_XUNTAGBASE, XUNTAGBASE): Remove.  All uses removed.
      (TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
      negative number, don't allow sign bits to bleed into the encoded
      value.  Shift in zero bits instead.
      29eaf3c8