1. 13 Sep, 2017 1 commit
    • Paul Eggert's avatar
      Prefer HTTPS to FTP and HTTP in documentation · bc511a64
      Paul Eggert authored
      Most of this change is to boilerplate commentary such as license URLs.
      This change was prompted by ftp://ftp.gnu.org's going-away party,
      planned for November.  Change these FTP URLs to https://ftp.gnu.org
      instead.  Make similar changes for URLs to other organizations moving
      away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
      fsf.org when this works, as this will further help defend against
      man-in-the-middle attacks (for this part I omitted the MS-DOS and
      MS-Windows sources and the test tarballs to keep the workload down).
      HTTPS is not fully working to lists.gnu.org so I left those URLs alone
      for now.
      bc511a64
  2. 09 Sep, 2017 2 commits
    • Paul Eggert's avatar
      Improve --enable-gcc-warnings for MinGW64 · d6312354
      Paul Eggert authored
      This partially reverts my 2016-05-30 patch.  Apparently MinGW64
      still requires pacifications that GCC 7.1.1 x86-64 (Fedora 26)
      does not.  Also, pacify tparam.c, which isn’t used on Fedora.
      * lib-src/etags.c (process_file_name, TeX_commands):
      * src/buffer.c (fix_overlays_before):
      * src/data.c (Fmake_variable_buffer_local, cons_to_unsigned)
      (cons_to_signed):
      * src/editfns.c (Ftranslate_region_internal):
      Prefer UNINIT to some stray value, as this simplifies
      code-reading later.
      * src/eval.c (CACHEABLE): New macro.
      (internal_lisp_condition_case): Use it.
      * src/tparam.c (tparam1): Use FALLTHROUGH to pacify GCC.
      d6312354
    • Eli Zaretskii's avatar
      Fix compilation warnings in MinGW64 build using GCC 7 · 2b84c166
      Eli Zaretskii authored
      Reported by Richard Copley <rcopley@gmail.com>.
      * src/w32heap.c (init_heap): Declare enable_lfh only for
      mingw.org's MinGW build.
      
      * src/w32console.c (w32con_write_glyphs):
      * src/unexw32.c (get_section_info, COPY_CHUNK, unexec): Fix some
      mismatches of data type vs format spec.
      
      * src/w32fns.c (compute_tip_xy):
      * src/w32proc.c (stop_timer_thread):
      * src/w32notify.c (remove_watch):
      * src/eval.c (internal_lisp_condition_case):
      * src/editfns.c (Ftranslate_region_internal):
      * src/data.c (Fmake_variable_buffer_local, cons_to_unsigned)
      (cons_to_signed):
      * src/buffer.c (fix_overlays_before): Initialize variables to
      avoid compiler warnings.
      
      * lib-src/etags.c (TeX_commands, process_file_name): Initialize
      variables to avoid compilation warnings.
      2b84c166
  3. 12 Aug, 2017 1 commit
    • Paul Eggert's avatar
      Improve make-temp-file performance on local files · a6ad98ad
      Paul Eggert authored
      For the motivation behind this patch, please see Bug#28023 and:
      http://emacshorrors.com/posts/make-temp-name.html
      Although, given the recent changes to Tramp, the related security
      problem in make-temp-file is already fixed, make-temp-file still has
      several unnecessary system calls.  In the typical case on GNU/Linux,
      this patch replaces 8 syscalls (symlink, open, close, readlinkat, uname,
      getpid, unlink, umask) by 2 (open, close).
      * admin/merge-gnulib (GNULIB_MODULES): Add tempname, now
      that Emacs is using it directly.
      * configure.ac (AUTO_DEPEND): Remove AC_SYS_LONG_FILE_NAMES;
      no longer needed.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      * lisp/files.el (files--make-magic-temp-file): Rename from
      make-temp-file.
      (make-temp-file): Use make-temp-file-internal for
      non-magic file names.
      * src/fileio.c: Include tempname.h.
      (make_temp_name_tbl, make_temp_name_count)
      (make_temp_name_count_initialized_p, make_temp_name): Remove.
      (Fmake_temp_file_internal): New function.
      (Fmake_temp_name): Use it.
      * src/filelock.c (get_boot_time): Use Fmake_temp_file_internal
      instead of make_temp_name.
      a6ad98ad
  4. 05 Aug, 2017 1 commit
    • Eli Zaretskii's avatar
      Fix a bug in 'generate-new-buffer-name' · 885c5126
      Eli Zaretskii authored
      * src/buffer.c (Fgenerate_new_buffer_name): Test IGNORE for being
      nil before calling string-equal, since the latter will compare
      "nil and 'nil' as equal.  (Bug#27966)
      
      * test/src/buffer-tests.el
      (test-generate-new-buffer-name-bug27966): New test.
      885c5126
  5. 17 Jul, 2017 1 commit
    • Eli Zaretskii's avatar
      Allow user control on what starts and ends a paragraph for bidi · d7f7fef1
      Eli Zaretskii authored
      * src/buffer.h (struct buffer): New members
      bidi_paragraph_separate_re_ and bidi_paragraph_start_re_.
      * src/buffer.c (bset_bidi_paragraph_start_re)
      (bset_bidi_paragraph_separate_re): New setters/
      (Fbuffer_swap_text): Swap the values of bidi-paragraph-start-re and
      bidi-paragraph-separate-re.
      (init_buffer_once): Init the values of bidi-paragraph-start-re and
      bidi-paragraph-separate-re.
      (syms_of_buffer) <bidi-paragraph-start-re, bidi-paragraph-separate-re>:
      New per-buffer variables.
      * src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start):
      Support bidi-paragraph-start-re and bidi-paragraph-separate-re.
      (bidi_move_to_visually_next): Handle correctly the case when the
      separator matches an empty string.  (Bug#27526)
      
      * doc/emacs/mule.texi (Bidirectional Editing):
      * doc/lispref/display.texi (Bidirectional Display): Document
      bidi-paragraph-start-re and bidi-paragraph-separate-re.
      
      * etc/NEWS: Mention bidi-paragraph-start-re and
      bidi-paragraph-separate-re.
      d7f7fef1
  6. 11 Jul, 2017 1 commit
    • NicolasPetton's avatar
      Add an optional testfn parameter to assoc · 0bece6c6
      NicolasPetton authored
      * src/fns.c (assoc): New optional testfn parameter used for comparison
      when provided.
      * test/src/fns-tests.el (test-assoc-testfn): Add tests for the new
      'testfn' parameter.
      * src/buffer.c:
      * src/coding.c:
      * src/dbusbind.c:
      * src/font.c:
      * src/fontset.c:
      * src/gfilenotify.c:
      * src/image.c:
      * src/keymap.c:
      * src/process.c:
      * src/w32fns.c:
      * src/w32font.c:
      * src/w32notify.c:
      * src/w32term.c:
      * src/xdisp.c:
      * src/xfont.c: Add a third argument to Fassoc calls.
      * etc/NEWS:
      * doc/lispref/lists.texi: Document the new 'testfn' parameter.
      0bece6c6
  7. 25 Jun, 2017 1 commit
    • Eli Zaretskii's avatar
      Allow to disable display of line numbers beyond EOB · 5d1025e7
      Eli Zaretskii authored
      * src/buffer.c (disable_line_numbers_overlay_at_eob): New
      function.
      * src/lisp.h (disable_line_numbers_overlay_at_eob): Add prototype.
      * src/xdisp.c (should_produce_line_number): When at ZV, call
      disable_line_numbers_overlay_at_eob to determine whether line
      numbers should be displayed beyond ZV.
      5d1025e7
  8. 10 May, 2017 1 commit
    • Perry E. Metzger's avatar
      Implement 1-based column numbering in mode line · 7df07779
      Perry E. Metzger authored
      * src/xdisp.c (decode_mode_spec): Implement the %C construct.
      
      * lisp/bindings.el (column-number-indicator-zero-based): New
      defcustom.
      (mode-line-position): Use %C when
      column-number-indicator-zero-based is nil.
      
      * src/xdisp.c (syms_of_xdisp) <frame-title-format>:
      * src/buffer.c (syms_of_buffer) <mode-line-format>:
      * doc/lispref/modes.texi (%-Constructs):
      * doc/lispref/frames.texi (Frame Titles): Document the %C
      construct.
      
      * doc/emacs/display.texi (Optional Mode Line): Document
      'column-number-indicator-zero-based'.
      
      * etc/NEWS: Mention 'column-number-indicator-zero-based' and the
      %C construct.
      7df07779
  9. 31 Mar, 2017 1 commit
  10. 26 Jan, 2017 1 commit
    • Paul Eggert's avatar
      Replace QUIT with maybe_quit · b3a3ed52
      Paul Eggert authored
      There’s no longer need to have QUIT stand for a slug of C statements.
      Use the more-obvious function-call syntax instead.
      Also, use true and false when setting immediate_quit.
      These changes should not affect the generated machine code.
      * src/lisp.h (QUIT): Remove.  All uses replaced by maybe_quit.
      b3a3ed52
  11. 16 Jan, 2017 1 commit
    • Eli Zaretskii's avatar
      ; Spelling fixes · 5569e644
      Eli Zaretskii authored
      * src/buffer.c (delete_all_overlays, Fkill_buffer): Fix typos in
      comments.
      5569e644
  12. 01 Jan, 2017 1 commit
  13. 25 Dec, 2016 1 commit
    • Paul Eggert's avatar
      Reorder lisp.h to declare types before using them · f5b9c1e5
      Paul Eggert authored
      This puts basic functions for types to be after the corresponding
      type definitions.  This is a more-common programming style in C,
      and will make it easier to port Emacs to gcc
      -fcheck-pointer-bounds, since the functions now have access to the
      corresponding types' sizes.  This patch does not change the code;
      it just moves declarations and definitions and removes
      no-longer-needed forward declarations (Bug#25128).
      * src/buffer.c, src/data.c, src/image.c:
      Include process.h, for PROCESSP.
      * src/buffer.h (BUFFERP, CHECK_BUFFER, XBUFFER):
      * src/process.h (PROCESSP, CHECK_PROCESS, XPROCESS):
      * src/termhooks.h (TERMINALP, XTERMINAL):
      * src/window.h (WINDOWP, CHECK_WINDOW, XWINDOW):
      * src/thread.h (THREADP, CHECK_THREAD, XTHREAD, MUTEXP, CHECK_MUTEX)
      (XMUTEX, CONDVARP, CHECK_CONDVAR, XCONDVAR):
      Move here from lisp.h.
      * src/intervals.h: Include buffer.h, for BUFFERP.
      Include lisp.h, for Lisp_Object.
      * src/lisp.h: Reorder declarations and definitions as described
      above.  Move thread includes to be later, so that they can use the
      reordered definitions.  Move some symbols to other headers (noted
      elsewhere).  Remove forward decls that are no longer needed.
      * src/thread.h: Include systhread.h here, not in lisp.h,
      since lisp.h itself does not need systhread.h.
      f5b9c1e5
  14. 12 Dec, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix point motion in cloned buffers · a416e1d6
      Eli Zaretskii authored
      * src/thread.c (post_acquire_global_lock): Call
      set_buffer_internal_2 instead of tricking set_buffer_internal_1
      into resetting the current buffer even if it didn't change.  This
      avoids bug#25165, caused by failing to record the modified values
      of point and mark, because current_buffer was set to NULL.  Also,
      don't bother re-setting the buffer if there was no thread switch,
      as that just wastes cycles.
      * src/buffer.c (set_buffer_internal_2): New function, with most of
      the body of set_buffer_internal_1, but without the test for B
      being identical to the current buffer.
      (set_buffer_internal_1): Call set_buffer_internal_2 if B is not
      identical to the current buffer.
      * src/buffer.h (set_buffer_internal_2): Add prototype.
      
      * test/src/thread-tests.el (thread-sticky-point): New test.
      a416e1d6
  15. 03 Dec, 2016 1 commit
    • Noam Postavsky's avatar
      Add lisp watchpoints · 22721316
      Noam Postavsky authored
      This allows calling a function whenever a symbol-value is changed.
      
      * src/lisp.h (lisp_h_SYMBOL_TRAPPED_WRITE_P):
      (SYMBOL_TRAPPED_WRITE_P): New function/macro.
      (lisp_h_SYMBOL_CONSTANT_P): Check for SYMBOL_NOWRITE specifically.
      (enum symbol_trapped_write): New enumeration.
      (struct Lisp_Symbol): Rename field constant to trapped_write.
      (make_symbol_constant): New function.
      
      * src/data.c (Fadd_variable_watcher, Fremove_variable_watcher):
      (set_symbol_trapped_write, restore_symbol_trapped_write):
      (harmonize_variable_watchers, notify_variable_watchers): New functions.
      
      * src/data.c (Fset_default): Call `notify_variable_watchers' for trapped
      symbols.
      (set_internal): Change bool argument BIND to 3-value enum and call
      `notify_variable_watchers' for trapped symbols.
      
      * src/data.c (syms_of_data):
      * src/data.c (syms_of_data):
      * src/font.c (syms_of_font):
      * src/lread.c (intern_sym, init_obarray):
      * src/buffer.c (syms_of_buffer): Use make_symbol_constant.
      
      * src/alloc.c (init_symbol):
      * src/bytecode.c (exec_byte_code): Use SYMBOL_TRAPPED_WRITE_P.
      * src/data.c (Fmake_variable_buffer_local, Fmake_local_variable):
      (Fmake_variable_frame_local):
      * src/eval.c (Fdefvaralias, specbind): Refer to Lisp_Symbol's
      trapped_write instead of constant.
      (Ffuncall): Move subr calling code into separate function.
      (funcall_subr): New function.
      22721316
  16. 08 Nov, 2016 1 commit
    • Mark Oteiza's avatar
      Remove obsolete default-FOO variables · 73d47d22
      Mark Oteiza authored
      * etc/NEWS: Indicate the removed variables.
      * lisp/emacs-lisp/edebug.el (edebug-outside-mark): Fix comment.
      * lisp/subr.el (default-mode-line-format, default-header-line-format):
      (default-line-spacing, default-abbrev-mode, default-ctl-arrow):
      (default-truncate-lines, default-left-margin, default-tab-width):
      (default-case-fold-search, default-left-margin-width):
      (default-right-margin-width, default-left-fringe-width):
      (default-right-fringe-width, default-fringes-outside-margins):
      (default-scroll-bar-width, default-vertical-scroll-bar):
      (default-indicate-empty-lines, default-indicate-buffer-boundaries):
      (default-fringe-indicator-alist, default-fringe-cursor-alist):
      (default-scroll-up-aggressively, default-scroll-down-aggressively):
      (default-fill-column, default-cursor-type):
      (default-cursor-in-non-selected-windows):
      (default-buffer-file-coding-system, default-major-mode):
      (default-enable-multibyte-characters): Remove obsolete declarations.
      * src/buffer.c (default-mode-line-format, default-header-line-format):
      (default-line-spacing, default-abbrev-mode, default-ctl-arrow):
      (default-truncate-lines, default-left-margin, default-tab-width):
      (default-case-fold-search, default-left-margin-width):
      (default-right-margin-width, default-left-fringe-width):
      (default-right-fringe-width, default-fringes-outside-margins):
      (default-scroll-bar-width, default-vertical-scroll-bar):
      (default-indicate-empty-lines, default-indicate-buffer-boundaries):
      (default-fringe-indicator-alist, default-fringe-cursor-alist):
      (default-scroll-up-aggressively, default-scroll-down-aggressively):
      (default-fill-column, default-cursor-type):
      (default-cursor-in-non-selected-windows):
      (default-buffer-file-coding-system, default-major-mode):
      (default-enable-multibyte-characters): Remove.
      * src/fileio.c (choose_write_coding_system): Fix comment.
      * src/lisp.h (DEFVAR_BUFFER_DEFAULTS): Remove.
      73d47d22
  17. 30 Sep, 2016 1 commit
    • Paul Eggert's avatar
      Limit <config.h>’s includes · f4eb8900
      Paul Eggert authored
      This follows up on recent problems with the fact that config.h
      includes stdlib.h etc.; some files need to include stdlib.h later.
      config.h generally should limit itself to includes that are
      universally safe; outside of MS-Windows, only stdbool.h makes
      the cut among the files currently included.  So, move the
      other includes to just the files that need them (Bug#24506).
      * configure.ac (config_opsysfile): Remove, as this generic hook
      is no longer needed.
      * lib-src/etags.c, src/unexmacosx.c, src/w32.c, src/w32notify.c:
      * src/w32proc.c (_GNU_SOURCE):
      Remove, as it’s OK for config.h to do this now.
      * src/conf_post.h: Include <ms-w32.h>, instead of the generic
      config_opsysfile, for simplicity as this old way of configuring is
      now done only for the MS-Windows port.  Do not include <ms-w32.h>
      if DEFER_MS_W32_H, for the benefit of the few files that want its
      effects later.  Do not include <alloca.h>, <string.h>, or
      <stdlib.h>.  Other files modified to include these headers as
      needed, or to not include headers that are no longer needed.
      * src/lisp.h: Include <alloca.h> and <string.h> here, since
      some of the inline functions need them.
      * src/regex.c: Include <alloca.h> if not emacs.  (If emacs,
      we can rely on SAFE_ALLOCA.)  There is no longer any need to
      worry about HAVE_ALLOCA_H.
      * src/unexmacosx.c: Rely on config.h not including stdlib.h.
      * src/w32.c, src/w32notify.c, src/w32proc.c (DEFER_MS_W32_H):
      Define before including <config.h> first, and include <ms-w32.h>
      after the troublesome headers.
      f4eb8900
  18. 15 Jul, 2016 1 commit
  19. 24 Jun, 2016 1 commit
  20. 12 Jun, 2016 1 commit
    • Paul Eggert's avatar
      emacs_strerror cleanups · 5932ffcd
      Paul Eggert authored
      * src/buffer.c, src/emacs.c, src/lread.c: Don’t include coding.h;
      no longer needed, now that emacs_strerror is declared by lisp.h.
      * src/coding.c (emacs_strerror): Remove; moved to emacs.c.
      * src/coding.h (emacs_strerror) [emacs]: Remove decl; moved
      to lisp.h.
      * src/emacs.c (emacs_strerror): Move here from coding.c.  Do not
      convert result string; this is now the caller’s responsibility,
      as some need conversion and others don’t.
      * src/fileio.c (report_file_errno, report_file_notify_error):
      Use emacs_strerror rather than rolling it ourselves.
      * src/lisp.h (emacs_strerror): Move decl here from coding.h.
      * src/lread.c (dir_warning): Just call emacs_strerror rather than
      both strerror and emacs_strerror.  Convert its result from
      locale-coding-system, since it no longer does that conversion.
      * src/sound.c (sound_perror):
      * src/sysdep.c (emacs_perror, str_collate):
      Use emacs_strerror, not strerror.
      5932ffcd
  21. 08 Jun, 2016 1 commit
  22. 30 May, 2016 1 commit
    • Paul Eggert's avatar
      Omit IF_LINT code that no longer seems needed · 237244bb
      Paul Eggert authored
      Nowadays GCC is smarter, or the Emacs code has mutated, or both,
      and now is as good a time as any to remove uses of IF_LINT that
      now seem to be unnecessary.
      * lib-src/emacsclient.c (set_local_socket):
      * lib-src/movemail.c (main) [MAIL_USE_MAILLOCK && HAVE_TOUCHLOCK]:
      * src/buffer.c (fix_start_end_in_overlays, fix_overlays_before):
      * src/casefiddle.c (casify_region):
      * src/charset.c (load_charset_map):
      * src/coding.c (decode_coding_object, encode_coding_object):
      * src/data.c (Fmake_variable_buffer_local, Fmake_local_variable)
      (cons_to_unsigned, cons_to_signed):
      * src/frame.c (make_frame, x_set_frame_parameters):
      * src/keyboard.c (read_event_from_main_queue):
      * src/regex.c (regex_compile):
      * src/syntax.c (back_comment):
      * src/window.c (Frecenter):
      * src/xfaces.c (Fx_list_fonts):
      Remove IF_LINT that no longer seems necessary.
      * src/image.c (png_load_body, jpeg_load_body): Simplify use of IF_LINT.
      * src/keyboard.c (read_char): Use IF_LINT (volatile) rather than
      a pragma dance to pacify GCC -Wclobbered.
      * src/xdisp.c (x_produce_glyphs): Rewrite to avoid need for IF_LINT.
      
      * src/xterm.c (x_connection_closed): Now _Noreturn, which should
      mean we do not need IF_LINT any more.
      (x_io_error_quitter): Now _Noreturn.  Put an 'assume (false)’
      at the end, to forestall warnings from older compilers.
      237244bb
  23. 01 May, 2016 2 commits
  24. 30 Apr, 2016 2 commits
    • Paul Eggert's avatar
      Fix generate-new-buffer-name increment typo · 4b488a29
      Paul Eggert authored
      Problem reported by Chaitanya Koparkar (Bug#23394).
      * src/buffer.c (Fgenerate_new_buffer_name): Increment count when
      generating a new buffer.  This fixes a typo I introduced in
      2014-04-05T00:04:58Z!eggert@cs.ucla.edu.
      4b488a29
    • Lars Ingebrigtsen's avatar
      cursor-type doc fix · 77c5f455
      Lars Ingebrigtsen authored
      * src/buffer.c (syms_of_buffer): Mention that cursor-type's
      WIDHT/HEIGHT can't exceed the frame char size (bug#19215).
      77c5f455
  25. 05 Apr, 2016 1 commit
    • Paul Eggert's avatar
      Prefer AUTO_STRING_WITH_LEN to make_formatted_string · b4c7869e
      Paul Eggert authored
      * src/buffer.c (Fgenerate_new_buffer_name):
      * src/filelock.c (get_boot_time):
      * src/minibuf.c (get_minibuffer):
      * src/process.c (make_process):
      * src/xdisp.c (ensure_echo_area_buffers):
      Prefer AUTO_STRING_WITH_LEN + sprintf to make_formatted_string
      when either will do.
      b4c7869e
  26. 10 Mar, 2016 1 commit
    • Paul Eggert's avatar
      Rework C source files to avoid ^( · 7352c6c6
      Paul Eggert authored
      Work around Bug#22884 by rewording comments and strings to avoid ‘(’
      at the start of a line unless it starts a function.  This change
      is a short-term hack; in the longer run we plan to fix cc-mode’s
      performance for C files that have ‘(’ at the start of a line in a
      comment or string.
      7352c6c6
  27. 01 Feb, 2016 1 commit
    • Martin Rudalics's avatar
      Some corrections in Elisp manual · e639e10a
      Martin Rudalics authored
      * doc/lispref/buffers.texi (Read Only Buffers): Describe optional
      argument POSITION.
      * doc/lispref/debugging.texi (Error Debugging): `debug-on-signal'
      is an option.
      * doc/lispref/display.texi (Refresh Screen): Describe optional
      argument FRAME of `redraw-frame'.
      (Attribute Functions): Describe optional argument CHARACTER of
      `face-font'.
      (Defining Images): `image-load-path' is an option.
      (Beeping): `ring-bell-function' is an option.
      * doc/lispref/frames.texi (Size and Position): The PIXELWISE
      argument of `set-frame-size' is optional.
      (Raising and Lowering): The TERMINAL argument of `tty-top-frame'
      is optional.
      * doc/lispref/keymaps.texi (Controlling Active Maps): Fix doc of
      `set-transient-map'.
      * doc/lispref/minibuf.texi (Text from Minibuffer):
      `read-regexp-defaults-function' is an option.
      (Minibuffer Contents): `delete-minibuffer-contents' is a command.
      * doc/lispref/modes.texi (Mode Line Variables):
      `mode-line-position' and `mode-line-modes' are variables, not
      options.
      * doc/lispref/strings.texi (Creating Strings): The START argument
      of `substring' is optional.
      * doc/lispref/text.texi (Buffer Contents): Describe optional
      argument NO-PROPERTIES of `thing-at-point'.
      (User-Level Deletion): Both arguments of
      `delete-trailing-whitespace' are optional.
      (Margins): Use @key{RET} instead of @kbd{RET}.
      * doc/lispref/windows.texi (Display Action Functions): Write
      non-@code{nil} instead of non-nil.
      (Choosing Window Options): The WINDOW arg of
      `split-window-sensibly' is optional.
      (Choosing Window Options): Write non-@code{nil} instead of
      non-nil.
      (Window Start and End): Both args of `window-group-end' are
      optional.
      
      * src/buffer.c (Fbarf_if_buffer_read_only): Rename argument POS
      to POSITION to keep consisteny with doc-string.
      e639e10a
  28. 30 Jan, 2016 1 commit
    • Paul Eggert's avatar
      Pacify --enable-gcc-warnings when HYBRID_MALLOC · e1a9f209
      Paul Eggert authored
      * src/buffer.c (init_buffer):
      * src/emacs.c (main):
      * src/xsmfns.c (smc_save_yourself_CB, x_session_initialize):
      Use emacs_get_current_dir_name, not get_current_dir_name.
      * src/conf_post.h (aligned_alloc) [HYBRID_MALLOC && emacs]: New macro.
      (HYBRID_GET_CURRENT_DIR_NAME, get_current_dir_name): Remove.
      * src/emacs.c: Include "sheap.h".
      (report_sheap_usage): Remove decl.
      (Fdump_emacs) [HYBRID_MALLOC]: Report usage directly.
      Don't assume ptrdiff_t can be printed as int.
      * src/gmalloc.c [HYBRID_MALLOC]:
      Include "sheap.h" rather than declaring its contents by hand.
      (get_current_dir_name, gget_current_dir_name)
      (hybrid_get_current_dir_name): Remove.
      (emacs_abort): Remove duplicate decl.
      (aligned_alloc): Undef, like malloc etc.
      (ALLOCATED_BEFORE_DUMPING): Now a static function, not a macro.
      Make it a bit more efficient.
      (malloc_find_object_address): Remove unused decl.
      (enum mcheck_status, mcheck, mprobe, mtrace, muntrace, struct mstats)
      (mstats, memory_warnings): Declare only if GC_MCHECK.
      * src/lisp.h (emacs_get_current_dir_name):
      New decl, replacing get_current_dir_name.
      * src/sheap.c: Include sheap.h first.
      (STATIC_HEAP_SIZE): Remove; now in sheap.h.
      (debug_sheap): Now static.
      (bss_sbrk_buffer_end): Remove; no longer used.
      (bss_sbrk_ptr): Now static and private.
      (bss_sbrk_did_unexec): Now bool.
      (BLOCKSIZE): Remove, to avoid GCC warning about its not being used.
      (bss_sbrk): Don't treat request_size 0 as special, since the code
      works without this being a special case.
      Avoid overflow if request size exceeds INT_MAX.
      (report_sheap_usage): Remove; now done in emacs.c.
      * src/sheap.h: New file.
      * src/sysdep.c (get_current_dir_name): Remove macro.
      Include "sheap.h".
      (emacs_get_current_dir_name): Rename function from
      get_current_dir_name.  Handle HYBRID_MALLOC here;
      this is simpler.
      (Bug#22086)
      e1a9f209
  29. 22 Jan, 2016 1 commit
    • Paul Eggert's avatar
      xwidgets style cleanup · 7c3d742c
      Paul Eggert authored
      Adjust the newly-added Xwidgets code so that it uses a more-typical
      Emacs style.  This should not affect behavior, except that in
      a few places it adds runtime checks that Lisp arguments are of
      the proper type, and in one place it uses more-precise arithmetic.
      * src/buffer.c, src/dispnew.c, src/emacs.c, src/emacsgtkfixed.c:
      * src/emacs.c, src/print.c, src/window.c, src/xdisp.c, src/xterm.c:
      Include xwidget.h unconditionally.
      * src/buffer.c (Fkill_buffer):
      * src/dispnew.c (update_window):
      * src/emacs.c (main):
      * src/print.c (print_object):
      * src/window.c (Fdelete_window_internal):
      * src/xdisp.c (handle_single_display_spec, push_it, pop_it)
      (get_next_element, set_iterator_to_next, next_element_from_xwidget)
      (dump_glyph, calc_pixel_width_or_height, BUILD_GLYPH_STRINGS_XW)
      (BUILD_GLYPH_STRINGS, x_produce_glyphs, get_window_cursor_type):
      * src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor):
      Call xwidget functions and macros without worrying about
      HAVE_XWIDGETS when the code is a no-op on non-xwidget
      platforms.
      * src/dispextern.h (XWIDGET_GLYPH, struct glyph_string.xwidget)
      (IT_XWIDGET, GET_FROM_XWIDGET, struct it.u.xwidget)
      (struct it.xwidget):
      * src/lisp.h (PVEC_XWIDGET, PVEC_XWIDGET_VIEW):
      Always define.
      * src/emacsgtkfixed.h: Omit unnecessary comment.
      * src/keyboard.c: Fix spacing.
      * src/xdisp.c (BUILD_XWIDGET_GLYPH_STRING, produce_xwidget_glyph):
      Define to be a no-op if not HAVE_XWIDGETS.
      * src/xwidget.c: Include xwidget.h first (after config.h)
      to make sure that it can stand by itself.
      (Fmake_xwidget, Fxwidget_webkit_execute_script):
      Fix typo in doc string.
      (Fmake_xwidget): Check type of args.
      (Fmake_xwidget, offscreen_damage_event)
      (webkit_document_load_finished_cb, webkit_download_cb)
      (webkit_new_window_policy_decision_requested_cb)
      (webkit_navigation_policy_decision_requested_cb)
      (xwidget_osr_draw_cb, xwidget_osr_event_forward)
      (xwidget_osr_event_set_embedder, xwidget_init_view):
      Omit unnecessary casts.
      * src/xwidget.c (Fmake_xwidget, xwidget_hidden)
      (xwidget_show_view, xwidget_hide_view)
      (x_draw_xwidget_glyph_string, xwidget_start_redisplay, xwidget_touch)
      (xwidget_touched):
      * src/xwidget.h (struct xwidget.kill_without_query)
      (struct xwidget_view.redisplayed, struct xwidget_view.hidden):
      Use bool for boolean.
      * src/xwidget.c (store_xwidget_event_string, Fxwidget_size_request):
      Simplify by using list functions.
      (WEBKIT_FN_INIT): Omit unnecessary test for nil.
      (Fxwidget_resize): Check type of integer args
      before doing any work.  Check that they are nonnegative.
      (Fxwidget_set_adjustment): Check type of integer arg.
      Avoid redundant call to gtk_scrolled_window_get_vadjustment.
      Simplify.  Use double, not float.
      (Fxwidget_info, Fxwidget_view_info): Simplify by using CALLN.
      (valid_xwidget_spec_p): Simplify.
      (xwidget_spec_value): Omit unused arg FOUND.  All callers changed.
      * src/xwidget.h: Include lisp.h first, so that includers do
      not need to worry about doing that before including this file.
      Make this .h file safe to include even on non-HAVE_XWIDGETS
      configurations, to simplify the includers.
      (x_draw_xwidget_glyph_string, syms_of_xwidget, valid_xwidget_spec_p)
      (xwidget_end_redisplay, lookup_xwidget)
      (xwidget_view_delete_all_in_window, kill_buffer_xwidgets):
      Now a no-op if !HAVE_XWIDGETS, to simplify callers.
      (struct glyph_matrix, struct glyph_string, struct xwidget)
      (struct xwidget_view, struct window):
      New forward or incomplete decls, so that includers need not
      assume the corresponding .h files are already included, or that
      HAVE_XWIDGETS is defined.
      (struct xwidget_type, xwidget_from_id): Remove; unused.
      7c3d742c
  30. 19 Jan, 2016 1 commit
    • Joakim Verona's avatar
      Support for the new Xwidget feature. · 7c1f66a9
      Joakim Verona authored
      
      
      * configure.ac:
      (HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES):
      * xterm.c (x_draw_glyph_string, x_draw_bar_cursor):
      * xdisp.c:
      (handle_display_spec, handle_single_display_spec, push_it)
      (pop_it, set_iterator_to_next, dump_glyph)
      (calc_pixel_width_or_height, fill_xwidget_glyph_string)
      (BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS)
      (produce_xwidget_glyph, x_produce_glyphs)
      (get_window_cursor_type):
      * window.c (Fdelete_window_internal):
      * termhooks.h (e):
      * print.c (print_object):
      * lisp.h (ptrdiff_t):
      * keyboard.c (kbd_buffer_get_event, make_lispy_event)
      (syms_of_keyboard):
      * emacs.c (main):
      * dispnew.c (update_window, scrolling_window):
      * dispextern.h (g, i):
      * Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS)
      (GIR_LIBS, ALL_CFLAGS, base_obj, LIBES):
      * keyboard.c (kbd_buffer_get_event):
      * emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate)
      (emacs_fixed_class_init): Add case for an xwidget view.
      
      * xwidget.c, xwidget.h, xwidget.el: New files for xwidgets
      Co-authored-by: default avatarGrégoire Jadi  <daimrod@gmail.com>
      
      Various improvements to the Xwidget feature.
      * xwidgets.c:
      * emacsgtkfixed.c:
      * xwidget.el:
      7c1f66a9
  31. 13 Jan, 2016 2 commits
  32. 05 Jan, 2016 3 commits
  33. 04 Jan, 2016 1 commit
  34. 01 Jan, 2016 1 commit