1. 13 Jan, 2015 8 commits
    • 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
    • Alan Mackenzie's avatar
      Allow compilation during loading of Modes derived from a CC Mode mode. · 30c5f5cd
      Alan Mackenzie authored
      Fixes debbugs#19206.
      
      cc-bytecomp.el (cc-bytecomp-compiling-or-loading): new function which
      walks the stack to discover whether we're compiling or loading.
      (cc-bytecomp-is-compiling): Reformulate, and move towards beginning.
      (cc-bytecomp-is-loading): New defsubst.
      (cc-bytecomp-setup-environment, cc-bytecomp-restore-environment): Use
      the
      above defsubsts.
      (cc-require-when-compile, cc-bytecomp-defvar)
      (cc-bytecomp-defun): Simplify conditionals.
      
      cc-defs.el (cc-bytecomp-compiling-or-loading): "Borrow" this function
      from cc-bytecomp.el.
      (c-get-current-file): Reformulate using the above.
      (c-lang-defconst): Prevent duplicate entries of file names in a symbol's
      'source property.
      (c-lang-const): Use cc-bytecomp-is-compiling.
      
      cc-langs.el (c-make-init-lang-vars-fun): Use cc-bytecomp-is-compiling.
      30c5f5cd
    • Stefan Monnier's avatar
      Fixes: debbugs:19552 · c3024739
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio-defclass): Fix call to `defclass'.
      c3024739
    • 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
    • Dmitry Gutov's avatar
      Don't eagerly load xref · 329b9021
      Dmitry Gutov authored
      Fixes: debbugs:19554
      
      * lisp/menu-bar.el (menu-bar-goto-menu): Before calling
      `xref-marker-stack-empty-p', first check that `xref' is loaded.
      329b9021
  2. 12 Jan, 2015 6 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
    • Martin Rudalics's avatar
      Add autoload cookie for xref-marker-stack-empty-p (Bug#19554). · cc59a3e5
      Martin Rudalics authored
      * progmodes/xref.el (xref-marker-stack-empty-p): Add autoload
      cookie (Bug#19554).
      cc59a3e5
    • 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
    • Paul Eggert's avatar
      Say "ELC foo.elc" instead of "GEN foo.elc" · c2774f37
      Paul Eggert authored
      * admin/unidata/Makefile.in, lisp/Makefile.in (AM_V_ELC)
      (am__v_ELC_, am__v_ELC_0, am__v_ELC_1): New macros.
      * admin/unidata/Makefile.in (%.elc):
      * lisp/Makefile.in ($(THEFILE)c, .el.elc): Use them.
      c2774f37
  3. 11 Jan, 2015 8 commits
  4. 10 Jan, 2015 13 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 to 32-bit Sun C 5.12 sparc · 288e1fd7
      Paul Eggert authored
      * make-docfile.c (close_emacs_globals): Align lispsym to GCALIGNMENT.
      The alignment is required on all platforms; it just happens to have
      been properly aligned on the previous platforms we tested.
      288e1fd7
    • 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
    • Lars Magne Ingebrigtsen's avatar
    • Ivan Shmakov's avatar
      (shr-urlify): Decode URLs before using them as titles · fd6b7e58
      Ivan Shmakov authored
      Fixes: debbugs:19555
      
      * lisp/net/shr.el (shr-urlify): Decode URLs before using them as titles.
      fd6b7e58
    • Lars Magne Ingebrigtsen's avatar
      eww title cleanup when loading · afaa7c18
      Lars Magne Ingebrigtsen authored
      (eww): Clear the title when loading so that we don't display
      misleading information.
      afaa7c18
    • Lars Magne Ingebrigtsen's avatar
      1fd00738
    • Lars Magne Ingebrigtsen's avatar
      Further eww DWIM URL interpretation fixups · 790ca72b
      Lars Magne Ingebrigtsen authored
      (eww): Also interpret things like "en.wikipedia.org/wiki/Free
      software" as an URL.
      790ca72b
    • Lars Magne Ingebrigtsen's avatar
      Tweak eww DWIM URL recognition · 0046f2c1
      Lars Magne Ingebrigtsen authored
      Fixes: debbugs:19556
      
      * net/eww.el (eww): Always interpret URLs that start with https?:
      as plain URLs, even if they have spaces in them.
      0046f2c1
    • Eli Zaretskii's avatar
      MS-Windows followup for change in semantics of XIL and XLI. (Bug#15880) · 485763c0
      Eli Zaretskii authored
       src/w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
       src/w32notify.c (Fw32notify_add_watch, w32_get_watch_object): Use
       make_pointer_integer instead of XIL.
       (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
       src/w32inevt.c (handle_file_notifications): Use make_pointer_integer
       instead of XIL.  Put a list of the descriptor, action, and file
       name in event->arg, instead of spreading them between event->code
       and event->arg.
       src/w32term.c (queue_notifications): Use make_pointer_integer
       instead of XIL.  Put a list of the descriptor, action, and file
       name in event->arg, instead of spreading them between event->code
       and event->arg.
       src/keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
       event creation to changes in w32term.c and w32inevt.c above.
      485763c0
    • Daniel Colascione's avatar
      Better binding for vc-delete-file · c2208b3d
      Daniel Colascione authored
      * lisp/vc/vc-hooks.el (vc-prefix-map): Bind vc-delete-file to C-x v x,
      by analogy with dired.
      c2208b3d
    • Daniel Colascione's avatar
      Tweak NEWS · 087a4d2f
      Daniel Colascione authored
      * etc/NEWS: Fix typo
      087a4d2f
  5. 09 Jan, 2015 2 commits
    • Daniel Colascione's avatar
      Teach js-mode about ES6 generators · 9c64c52b
      Daniel Colascione authored
      * lisp/progmodes/js.el (js--function-heading-1-re)
      (js--function-prologue-beginning): Parse ES6 generator function
      declarations.  (That is, "function* name()").
      9c64c52b
    • Paul Eggert's avatar
      Refactor pointer-to-integer conversion · d1f848ff
      Paul Eggert authored
      * gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
      Rename and move to lisp.h.  All uses changed.
      * lisp.h (XINTPTR, make_pointer_integer): New inline functions,
      which are renamed from gfilenotify.c's lisp_to_monitor and
      monitor_to_lisp, and with more-generic void * signatures.
      d1f848ff
  6. 08 Jan, 2015 3 commits
    • Stefan Monnier's avatar
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Move the function defs to defclass. · 6a67b20d
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio.el (defclass): Move from eieio-defclass all the code
      that creates functions, and most of the sanity checks.
      Mark as obsolete the <class>-child-p function.
      * lisp/emacs-lisp/eieio-core.el (eieio--define-field-accessors): Remove.
      (eieio--class, eieio--object): Use cl-defstruct.
      (eieio--object-num-slots): Define manually.
      (eieio-defclass-autoload): Use eieio--class-make.
      (eieio-defclass-internal): Rename from eieio-defclass.  Move all the
      `(lambda...) definitions and most of the sanity checks to `defclass'.
      Mark as obsolete the <class>-list-p function, the <class> variable and
      the <initarg> variables.  Use pcase-dolist.
      (eieio-defclass): New compatibility function.
      * lisp/emacs-lisp/eieio-opt.el (eieio-build-class-alist)
      (eieio-class-speedbar): Don't use eieio-default-superclass var.
      6a67b20d
    • Eli Zaretskii's avatar
      Fix line-move-visual's following of column in R2L lines. · 5fbd17e3
      Eli Zaretskii authored
       src/simple.el (line-move-visual): When converting X pixel coordinate
       to temporary-goal-column, adjust the value for right-to-left
       screen lines.  This fixes vertical-motion, next/prev-line, etc.
      
       src/dispnew.c (buffer_posn_from_coords): Fix the value of the column
       returned for right-to-left screen lines.  (Before the change on
       2014-12-30, the incorrectly-computed X pixel coordinate concealed
       this bug.)
      5fbd17e3