1. 25 Sep, 2014 1 commit
    • Paul Eggert's avatar
      Fix local_cons etc. to not exhaust the stack when in a loop. · 10381f58
      Paul Eggert authored
      Problem reported in:
      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html
      * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
      * charset.c (load_charset_map_from_file, Ffind_charset_region)
      (Ffind_charset_string):
      * chartab.c (uniprop_encode_value_numeric, uniprop_table):
      * data.c (wrong_range):
      * editfns.c (Fpropertize, format2):
      * emacs.c (init_cmdargs, decode_env_path):
      * fileio.c (auto_save_error):
      * fns.c (Fyes_or_no_p):
      * font.c (font_style_to_value, font_parse_xlfd)
      (font_parse_family_registry, font_delete_unmatched)
      (font_add_log):
      * fontset.c (Fset_fontset_font):
      * frame.c (x_get_arg):
      * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item)
      (read_char_minibuf_menu_prompt):
      * keymap.c (silly_event_symbol_error, describe_vector):
      * lread.c (load_warn_old_style_backquotes):
      * menu.c (single_menu_item):
      * minibuf.c (Fread_buffer):
      * process.c (status_message, Fformat_network_address)
      (server_accept_connection):
      * textprop.c (copy_text_properties):
      * xdisp.c (Fcurrent_bidi_paragraph_direction):
      * xfns.c (x_default_scroll_bar_color_parameter):
      * xfont.c (xfont_open):
      * xselect.c (x_clipboard_manager_error_1):
      * xterm.c (x_term_init):
      Put USE_LOCAL_ALLOCA at the start of the function.
      * fns.c (maybe_resize_hash_table): Use build_string instead of
      build_local_string, since we'd otherwise need a conditional
      USE_LOCAL_ALLOCA here, but this is just debugging output and is
      not worth the bother of optimization.
      * font.c (font_delete_unmatched): Remove by-hand code that
      observed MAX_ALLOCA limit, since it's now done automatically.
      * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top,
      since build_local_string needs its sa_alloc.
      * lisp.h (lisp_word_count): New function.
      (SAFE_ALLOCA_LISP): Use it.
      (USE_LOCAL_ALLOCA): New macro.
      (local_cons, make_local_vector, make_local_string):
      Observe the MAX_ALLOCA limit.
      (LISP_STRING_OVERHEAD): New constant.
      (make_local_string): Use it.
      10381f58
  2. 24 Sep, 2014 11 commits
    • Paul Eggert's avatar
      Default to stack objects on non-GNU/Linux, non-DOS_NT platforms. · 59355ea9
      Paul Eggert authored
      * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true
      if !defined DOS_NT && !defined GNU_LINUX.  I've tested this on AIX
      and Solaris and it's likely to work on similar platforms.
      59355ea9
    • Paul Eggert's avatar
      Avoid signed integer overflow when converting Time to ptrdiff_t. · 203a9eb0
      Paul Eggert authored
      * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
      New macros.
      (position_to_Time, Time_to_position): New functions.
      (gen_help_event, kbd_buffer_get_event): Use them.
      * systime.h (Time) [emacs && !HAVE_X_WINDOWS]:
      Go back to plain 'unsigned long', so that 'Time' is the same
      for both X and non-X builds; this is less likely to cause surprise.
      * termhooks.h: Remove compile-time check that Time and ptrdiff_t
      are the same size; this is no longer required.
      203a9eb0
    • Stefan Monnier's avatar
      * lisp/find-cmd.el (find-cmd): Use grep's `find-program'. · 0e176389
      Stefan Monnier authored
      Suggested by <lompik@voila.fr>.
      
      Fixes: debbugs:18518
      0e176389
    • Paul Eggert's avatar
      * keyboard.c (make_lispy_event): Avoid unnecessary tests · cd812613
      Paul Eggert authored
      of bit 28 and of whether an unsigned value is negative.
      This simplifies the code a bit, and pacifies clang 3.4.
      cd812613
    • Ulf Jasper's avatar
      Newsticker: Add commands to rearrange treeview groups and document them. (Bug#12560) · 558eb84f
      Ulf Jasper authored
      2014-09-24  Ulf Jasper  <ulf.jasper@web.de>
      
      	* newsticker.texi: Reworked.  Document new treeview group
      	commands.  Remove VERSION, UPDATED, use EMACSVER instead.  Use
      	term 'feed reader'.
      
      2014-09-24  Ulf Jasper  <ulf.jasper@web.de>
      
      	* automated/newsticker-tests.el
      	(newsticker--group-find-parent-group),
      	(newsticker--group-do-rename-group): New tests.
      
      2014-09-24  Ulf Jasper  <ulf.jasper@web.de>
      
      	* net/newst-treeview.el (newsticker--treeview-do-get-node-by-id):
      	Renamed `newsticker--treeview-do-get-node' to
      	`newsticker--treeview-do-get-node-by-id'.
      	(newsticker--treeview-get-node-by-id): Renamed
      	`newsticker--treeview-get-node' to
      	`newsticker--treeview-get-node-by-id'.
      	(newsticker--treeview-get-current-node): Renamed `
      	`newsticker--treeview-get-node' to
      	`newsticker--treeview-get-node-by-id'.
      	(newsticker--treeview-buffer-init)
      	(newsticker--treeview-buffer-init): Disable buffer undo.
      	(newsticker--treeview-unfold-node): Adapted to modified
      	`newsticker--group-find-parent-group'.
      	(newsticker--group-do-find-group): Renamed
      	`newsticker--group-do-find-group-for-feed' to
      	`newsticker--group-do-find-group'.  Now works for both, groups and
      	feeds.
      	(newsticker--group-find-parent-group): Renamed
      	`newsticker--group-find-group-for-feed' to
      	`newsticker--group-find-parent-group'.  Now works for both, groups
      	and feeds.
      	(newsticker--group-do-get-parent-group)
      	(newsticker--group-get-parent-group): Removed.
      	(newsticker-group-add-group): Changed interactive prompts.
      	(newsticker-group-add-group): Finally jump to added group.
      	(newsticker-group-delete-group): Finally jump to current feed.
      	(newsticker--group-do-rename-group, newsticker-group-rename-group)
      	(newsticker--get-group-names, newsticker--group-names): New.
      	(newsticker-group-move-feed): Finally jump to moved feed.
      	(newsticker-group-shift-feed-down, newsticker-group-shift-feed-up)
      	(newsticker-group-shift-group-down)
      	(newsticker-group-shift-group-up, newsticker--group-shift): New
      	(newsticker--group-manage-orphan-feeds): Renamed
      	`newsticker--group-find-group-for-feed' to
      	`newsticker--group-find-parent-group'.
      	(newsticker-treeview-mode-map): New keybindings for new shift commands.
      	(newsticker-treeview-tree-do-click): Renamed
      	`newsticker--treeview-get-node' to
      	`newsticker--treeview-get-node-by-id'.
      
      	* net/newst-backend.el (newsticker--item-list)
      	(newsticker--item-position, newsticker--prev-message)
      	(newsticker--scrollable-text): Moved to newst-ticker.el.
      
      	* net/newst-ticker.el (newsticker--item-list)
      	(newsticker--item-position, newsticker--prev-message)
      	(newsticker--scrollable-text): Moved from newst-backend.el.
      558eb84f
    • Ken Brown's avatar
      * lisp.h (toplevel) [!USE_STACK_LISP_OBJECTS]: Fix poorly nested · cb617064
      Ken Brown authored
      conditions (Bug#18544).
      cb617064
    • Dmitry Antipov's avatar
      * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX · e9a86416
      Dmitry Antipov authored
      && __GNUC__ && !__clang__.  Mention known problems.  Adjust comment.
      e9a86416
    • Dmitry Antipov's avatar
      * chartab.c (uniprop_encode_value_numeric): · c0b1b037
      Dmitry Antipov authored
      * font.c (font_style_to_value): Use make_local_vector.
      (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA.
      * keymap.c (append_key): Use scoped_list1.
      c0b1b037
    • Eli Zaretskii's avatar
      Fix fallout on MinGW64 from the previous commit. · d4dfe4ea
      Eli Zaretskii authored
       src/systime.h (Time): Define as size_t, to be consistent with 64-bit
       Windows builds, where 'long' is a 32-bit type.
       src/w32inevt.h (w32_console_mouse_position): Update the argument
       types to use 'Time'.
       src/w32term.c (w32_mouse_position)
       (x_horizontal_scroll_bar_report_motion)
       (x_scroll_bar_report_motion): Update the argument types to use
       'Time'.
      d4dfe4ea
    • Dmitry Antipov's avatar
      * termhooks.h (enum scroll_bar_part): Begin from 0 to allow... · 4b930ccb
      Dmitry Antipov authored
      (struct input_event): ...unsigned bitfields.  Likewise for
      `event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
      Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
      * keyboard.c (gen_help_event, kbd_buffer_store_help_event)
      (kbd_buffer_get_event): Adjust users.
      (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
      (make_scroll_bar_position): New function, refactored out of...
      (make_lispy_event): ...adjusted user.
      * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
      * nsterm.m (ns_mouse_position, mouseUp):
      * term.c (term_mouse_position):
      * w32inevt.c (w32_console_mouse_position):
      * w32term.c (w32_mouse_position):
      * xterm.c (XTmouse_position): Use scroll_bar_above_handle.
      (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
      Prefer enum and explicit enum members to integers and numeric values.
      4b930ccb
    • Paul Eggert's avatar
      Fix some slow uses and misuses of strcat. · 4620e6bc
      Paul Eggert authored
      * doc.c (get_doc_string):
      * gtkutil.c (get_utf8_string):
      * xsmfns.c (x_session_initialize):
      Avoid recomputation of string length.
      * ftfont.c (ftfont_spec_pattern):
      * xfns.c (xic_create_fontsetname):
      Don't assume output buffer is initially zero.
      4620e6bc
  3. 23 Sep, 2014 7 commits
  4. 22 Sep, 2014 18 commits
    • Stefan Monnier's avatar
      Merge from emacs-24 · 9949231f
      Stefan Monnier authored
      9949231f
    • Sam Steingold's avatar
      oops · 298dfce8
      Sam Steingold authored
      298dfce8
    • Sam Steingold's avatar
      (sql-execute): Use `special-mode'. · 7fc340b2
      Sam Steingold authored
      * sql.el (sql-execute): Use `special-mode'.
      7fc340b2
    • Sam Steingold's avatar
      (sql-product-alist): Improve the Vertica entry. · edf16c37
      Sam Steingold authored
      * lisp/progmodes/sql.el (sql-product-alist): Improve the Vertica entry.
      edf16c37
    • Stefan Monnier's avatar
      Add pcase-defmacro, as well as `quote' and `app' patterns. · 6b33c17c
      Stefan Monnier authored
      * loadup.el: Increase max-lisp-eval-depth when macroexpanding macroexp.
      * emacs-lisp/pcase.el: Allow (F . ARGS) in `app' patterns.
      (pcase--funcall, pcase--eval): New functions.
      (pcase--u1): Use them for guard, pred, let, and app.
      (\`): Use the new feature to generate better code for vector patterns.
      * emacs-lisp/pcase.el: Use pcase-defmacro to handle backquote.
      (pcase--upat): Remove.
      (pcase--macroexpand): Don't hardcode handling of `.
      (pcase--split-consp, pcase--split-vector): Remove.
      (pcase--split-equal): Disregard ` since it's expanded away.
      (pcase--split-member): Optimize for quote rather than for `.
      (pcase--split-pred): Optimize for quote rather than for `.
      (pcase--u1): Remove handling of ` (and of `or' and `and').
      Quote non-selfquoting values when passing them to `eq'.
      Drop `app's let-binding if the variable is not used.
      (pcase--q1): Remove.
      (`): Define as a pattern macro.
      * emacs-lisp/pcase.el (pcase--match): New smart-constructor function.
      (pcase--expand pcase--q1, pcase--app-subst-match): Use it.
      (pcase--macroexpand): Handle self-quoting patterns here, expand them to
      quote patterns.
      (pcase--split-match): Don't hoist or/and here any more.
      (pcase--split-equal): Optimize quote patterns as well as ` patterns.
      (pcase--flip): New helper macro.
      (pcase--u1): Optimize the memq case directly.
      Don't handle neither self-quoting nor and/or patterns any more.
      * emacs-lisp/pcase.el (pcase-defmacro): New macro.
      (pcase--macroexpand): New function.
      (pcase--expand): Use it.
      * emacs-lisp/pcase.el (pcase--app-subst-match, pcase--app-subst-rest):
      New optimization functions.
      (pcase--u1): Add support for `quote' and `app'.
      (pcase): Document them in the docstring.
      6b33c17c
    • Stefan Monnier's avatar
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/pcase.el: Allow (F . ARGS) in `app' patterns. · 2b968ea6
      Stefan Monnier authored
      (pcase--funcall, pcase--eval): New functions.
      (pcase--u1): Use them for guard, pred, let, and app.
      (\`): Use the new feature to generate better code for vector patterns.
      2b968ea6
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/pcase.el: Use pcase-defmacro to handle backquote. · 7fbd780a
      Stefan Monnier authored
      (pcase--upat): Remove.
      (pcase--macroexpand): Don't hardcode handling of `.
      (pcase--split-consp, pcase--split-vector): Remove.
      (pcase--split-equal): Disregard ` since it's expanded away.
      (pcase--split-member): Optimize for quote rather than for `.
      (pcase--split-pred): Optimize for quote rather than for `.
      (pcase--u1): Remove handling of ` (and of `or' and `and').
      Quote non-selfquoting values when passing them to `eq'.
      Drop `app's let-binding if the variable is not used.
      (pcase--q1): Remove.
      (`): Define as a pattern macro.
      7fbd780a
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/pcase.el (pcase--match): New smart-constructor function. · 1a625553
      Stefan Monnier authored
      (pcase--expand pcase--q1, pcase--app-subst-match): Use it.
      (pcase--macroexpand): Handle self-quoting patterns here, expand them to
      quote patterns.
      (pcase--split-match): Don't hoist or/and here any more.
      (pcase--split-equal): Optimize quote patterns as well as ` patterns.
      (pcase--flip): New helper macro.
      (pcase--u1): Optimize the memq case directly.
      Don't handle neither self-quoting nor and/or patterns any more.
      1a625553
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/pcase.el (pcase-defmacro): New macro. · 536cda1f
      Stefan Monnier authored
      (pcase--macroexpand): New function.
      (pcase--expand): Use it.
      536cda1f
    • Eli Zaretskii's avatar
      Fix bug #18516 with SIGSEGV in expand-file-name. · f11af8a4
      Eli Zaretskii authored
       src/fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is
       always set to a valid value.  Make sure the size passed to alloca
       is always positive.
      f11af8a4
    • Stefan Monnier's avatar
      Add support for `quote' and `app'. · 13b1840d
      Stefan Monnier authored
      * lisp/emacs-lisp/pcase.el (pcase--app-subst-match, pcase--app-subst-rest):
      New optimization functions.
      (pcase--u1): Add support for `quote' and `app'.
      (pcase): Document them in the docstring.
      13b1840d
    • Stefan Monnier's avatar
      Use lexical-bindin in Ibuffer. · 601a0cfe
      Stefan Monnier authored
      * lisp/ibuffer.el (ibuffer-do-toggle-read-only): `arg' is unused.
      (ibuffer-compile-format): Simplify.
      (ibuffer-clear-summary-columns): Simplify.
      * lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Don't use the third
      elem of dotimes when we don't refer to the iteration var from it.
      (ibuffer-toggle-sorting-mode): Avoid add-to-list.
      * lisp/ibuf-macs.el (define-ibuffer-column, define-ibuffer-op):
      Silence byte-compiler.
      601a0cfe
    • Stefan Monnier's avatar
      * lisp/font-lock.el (font-lock-compile-keyword): Don't confuse a lambda · efd314de
      Stefan Monnier authored
      expression for a list.
      efd314de
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Don't add fundoc usage · 55fa245f
      Stefan Monnier authored
      for functions with no arguments.
      55fa245f
    • Stefan Monnier's avatar
      * lisp/mpc.el (mpc-data-directory): Use locate-user-emacs-file. · 84a87ab5
      Stefan Monnier authored
      (mpc-volume-refresh): Make sure the corresponding header-line is updated.
      (mpc-songs-jump-to, mpc-play): Use user-error.
      84a87ab5
    • Dmitry Antipov's avatar
      Avoid extra call to oblookup when interning symbols. · 99c3fad7
      Dmitry Antipov authored
      * lisp.h (intern_driver): Add prototype.
      * lread.c (intern_driver): New function.
      (intern1, intern_c_string_1, Fintern):
      * font.c (font_intern_prop):
      * w32font.c (intern_font_name): Use it.
      99c3fad7
    • Dmitry Antipov's avatar
      On OSX, do not free font-specific data more than once (Bug#18501). · fc5ebc3f
      Dmitry Antipov authored
      * macfont.m (macfont_close): Release and free font-specific data
      only if it wasn't previously freed.
      fc5ebc3f
  5. 21 Sep, 2014 3 commits