Commit graph

2706 commits

Author SHA1 Message Date
Paul Eggert 86baa208f8 Port emacsclient to FreeBSD 11 etc.
* lib-src/emacsclient.c: Include <string.h>.  This is needed on
platforms like FreeBSD 11 that use code involving strlen etc., and
because <config.h> no longer includes string.h.
2016-11-08 08:54:51 -08:00
Paul Eggert dc152c54f4 Modernize usage of 'macOS' in doc and comments
Apple changed the spelling of its operating system again, to "macOS",
effective with macOS 10.12 Sierra (2016-09-20).  Change Emacs
documentation and comments to match this.  Stick with older OS
spellings ("OS X", "Mac OS X") when talking about older releases where
the older names are more correct.
2016-11-06 00:42:03 -07:00
Eli Zaretskii 59c5f36acf * lib-src/etags.c (invalidate_nodes): Remove a redundant nullp test. 2016-10-12 18:24:21 +03:00
Paul Eggert f4eb890029 Limit <config.h>’s includes
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.
2016-09-30 12:38:52 -07:00
Paul Eggert fffa49b136 Merge from origin/emacs-25
cf9e174 Document the optional zlib library in MS-Windows builds
84eb144 ; * admin/notes/unicode: Mention BidiCharacterTest.txt.
73c67dd Fix tagging of DEFUN by etags
ea1960b Avoid resetting track-mouse by mouse clicks
505fef3 Improve nt/README.W32 instructions
1229cc4 Document that desktop file overrides frame parameters
f0eb70d ; Update ChangeLog.2 and ldef-boot.el for Emacs 25.1 release

# Conflicts:
#	ChangeLog.2
#	admin/notes/unicode
#	lisp/ldefs-boot.el
2016-09-26 13:35:56 -07:00
Eli Zaretskii 73c67dda4f Fix tagging of DEFUN by etags
* lib-src/etags.c (C_entries): Tag DEFUN twice: once with its C
name, and then again with its Lisp name.  This restores the
ability to find Lisp primitives by their C name, which was lost
when the etags back-end was switched to a more strict search
criteria.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the changes in etags.c wrt
tagging DEFUN.
2016-09-21 18:10:29 +03:00
Michal Nazarewicz ef474bd3d6 Fix compiler thinking tmpdir may be unitialised in emacsclient
This fixes the following warning:

	emacsclient.c: In function ‘set_local_socket’:
	/usr/include/x86_64-linux-gnu/bits/string3.h:111:3: error:
		‘tmpdir’ may be used uninitialized in this function
		[-Werror=maybe-uninitialized]
	   return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
	   ^
	emacsclient.c:1197:17: note: ‘tmpdir’ was declared here
	     const char *tmpdir;

* lib-src/emacsclient.c (set_local_socket): Get rid of use_tmpdir
variable and instead use tmpdir being non-NULL as sign that it should
be used.
2016-09-12 21:57:36 +02:00
Paul Eggert d2f1971dd5 Port flexible array members to GCC + valgrind
These changes are needed to conform to the C standard's rule for
allocating structs containing flexible array members.  C11 says
that malloc (offsetof (struct s, m) + n) does not suffice to
allocate a struct with an n-byte tail; instead, malloc’s arg
should be rounded up to the nearest multiple of alignof (struct s).
Although this is arguably a defect in C11, gcc -O2 + valgrind
sometimes complains when this rule is violated, and when debugging
it’s better to keep valgrind happy.
For details please see the thread containing the message at:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00416.html
* lib-src/ebrowse.c, src/alloc.c, src/image.c, src/process.c:
Include flexmember.h.
* lib-src/ebrowse.c (add_sym, add_member, make_namespace)
(register_namespace_alias):
* src/alloc.c (SDATA_SIZE, allocate_string_data):
* src/image.c (xpm_cache_color, imagemagick_create_cache):
* src/process.c (Fmake_network_process):
Use FLEXSIZEOF instead of offsetof and addition.
* src/alloc.c (SDATA_SIZE, vector_alignment):
Use FLEXALIGNOF instead of sizeof (ptrdiff_t).
* src/lisp.h (ALIGNOF_STRUCT_LISP_VECTOR):
Remove, as alloc.c can now calculate this on its own.
2016-09-07 18:10:11 -07:00
Eli Zaretskii 2030ddbd15 * lib-src/etags.c (invalidate_nodes): Fix another thinko. 2016-08-31 20:19:42 +03:00
Paul Eggert 9166d40251 Fix etags problems found by static checking
* lib-src/etags.c (invalidate_nodes, put_entry):
Remove now-unnecessary tests for null pointers.  Simplify.
(put_entries): Rewrite to avoid GCC 6.2 warning about
dereferencing null pointer.
2016-08-31 10:15:45 -07:00
Eli Zaretskii 4ec31277e7 Fix a thinko in etags.c
* lib-src/etags.c (invalidate_nodes): Don't try to dereference
a null pointer.
2016-08-31 19:57:59 +03:00
Eli Zaretskii 6d8144a2ab Avoid recursive calls in etags
* lib-src/etags.c (stack_entry): New struct.
(push_node, pop_node, put_entry): New functions.
(free_tree, add_node, invalidate_nodes, put_entries): Re-implement
in a non-recursive way, to avoid stack overflow.  (Bug#5847)
2016-08-31 18:53:43 +03:00
Paul Eggert 4be1ab61f4 Pacify --enable-gcc-warnings for lib-src/pop.c
* lib-src/pop.c: Include c-ctype.h.
(socket_connection): Pacify --enable-gcc-warnings by rewriting to
avoid 'if (v = E) ...'.  Use c_tolower, instead of a combination
of the (undeclared) isupper and tolower.  Fix pointer constness
problem.
2016-08-28 01:57:10 -07:00
Eli Zaretskii d0e1774a58 Fix compilation warning in the MinGW build
* nt/inc/ms-w32.h: Include stdint.h.
(_execvp, execve): Provide prototypes.

* lib-src/emacsclient.c [WINDOWSNT]: Remove prototype for execvp,
it is now in nt/inc/ms-w32.h.
* lib-src/ntlib.c (getppid): Avoid compiler warnings due to format
mismatch.
(sys_ctime): Remove, not used.
2016-07-22 20:38:22 +03:00
Paul Eggert 82f49c6a37 Replace IF_LINT by NONVOLATILE and UNINIT
Inspired by a suggestion from RMS in: http://bugs.gnu.org/23640#58
* .dir-locals.el (c-mode): Adjust to macro changes.
* src/conf_post.h (NONVOLATILE, UNINIT): New macros (Bug#23640).
(IF_LINT): Remove.  All uses replaced by the new macros.
2016-06-08 11:50:42 -07:00
Paul Eggert 237244bbd5 Omit IF_LINT code that no longer seems needed
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.
2016-05-30 16:13:04 -07:00
Eli Zaretskii cb5af79249 Fix compiler warnings in the MinGW build
* configure.ac [mingw32]: Don't add -Wpointer-sign, and add
-Wno-pointer-sign, to keep the noise level down.

* nt/mingw-cfg.site (gl_cv_warn_c__Wredundant_decls): Disable
-Wredundant-decls, as that produces a lot of noise due to
redeclaration of time-related functions by gnulib.
* nt/runemacs.c (set_user_model_id): Fix argument type of
'SetCurrentProcessExplicitAppUserModelID'.

* src/image.c (x_create_bitmap_from_file) [HAVE_NTGUI]: Don't
declare 'dpyinfo', as it is unused.
(xpm_load): Fix warnings about pointer signedness.
* src/w32proc.c (IsValidLocale, init_winsock): Remove redundant
prototypes.
(sys_spawnve): Avoid warnings about discarding 'const' qualifier.
(sys_select): Provide prototype.
(g_b_init_compare_string_w): Move declaration to file scope.
* src/w32heap.c (dumped_data_commit): Now static.
(FREEABLE_P): Avoid warnings about pointer comparison with integer.
(mmap_realloc): Cast to 'char *' for arithmetics on void pointers.
* src/w32console.c (ctrl_c_handler, sys_tputs, sys_tgetstr)
(evalcost, cmputc, cmcheckmagic, cmcostinit, cmgoto, Wcm_clear):
Provide prototypes.
* src/w32.c (globals_of_w32, conv_sockaddr_to_lisp): Remove
redundant prototypes.
(w32_get_internal_run_time, map_w32_filename): Provide prototype.
(init_environment, sys_ctime): Avoid warnings about discarding
'const' qualifier.
Include utimens.h.
(sys_ctime, sys_chdir, sys_creat, sys_fopen, sys_mkdir)
(sys_open, sys_rename, sys_rmdir, is_slow_fs, term_winsock)
(sys_close, sys_dup2, sys_read, sys_write, sys_localtime): Provide
prototypes.
(sys_rename_replace): Use %d to avoid compiler warnings.
(_wsa_errlist): Make the message text 'const char *', to avoid
compilation warnings.
(dynlib_reset_last_error): Move prototype to file scope.
(w32_get_resource): First argument is now 'const char *'.
* src/w32uniscribe.c (syms_of_w32uniscribe): Provide prototype.
(otf_features): Second argument is no 'const char *'.
* src/w32term.c (free_frame_menubar, x_wm_set_size_hint)
(x_set_window_size): Remove redundant prototypes.
(XChangeGC, XGetGCValues, w32_draw_underwave)
(w32_draw_rectangle, w32_shift_glyphs_for_insert, x_mouse_leave)
(x_calc_absolute_position, x_destroy_window): Now static.
(menubar_selection_callback): Move prototype to file scope.
* src/w32font.c (g_b_init_get_glyph_outline_w): Remove redundant
declaration.
(w32_to_x_charset): Fix warnings about discarding 'const' qualifier.
(w32font_full_name): Fix warnings about implicit conversion of
'float' to 'double'.
* src/w32reg.c (w32_get_rdb_resource): Fix warnings about
discarding 'const' qualifier.
* src/w32menu.c (syms_of_w32menu, globals_of_w32menu)
(set_frame_menubar): Remove redundant prototypes.
(menubar_selection_callback, w32_menu_display_help): Provide
prototypes.
(simple_dialog_show): Avoid warnings about discarding 'const'
qualifier.
* src/w32fns.c (syms_of_w32fns, globals_of_w32fns)
(free_frame_menubar, w32_strerror, x_set_menu_bar_lines)
(x_set_tool_bar_lines, x_set_internal_border_width): Remove
redundant prototypes.
(current_popup_menu): Remove redundant declaration.
(colormap_t): Member 'name' is now 'const char *'.
(add_system_logical_colors_to_map): Fix signed/unsigned warnings.
(x_decode_color, x_set_border_pixel)
(x_clear_under_internal_border, x_set_name, hook_w32_key)
(reset_w32_kbdhook_state, deliver_wm_chars, w32_backtrace): Now
static.
(w32_load_cursor, w32_key_to_modifier, map_keypad_keys)
(w32_msg_worker, w32_last_error): Provide prototypes.
(funhook, lookup_vk_code): Avoid warnings about missing
parentheses.
(x_default_font_parameter, Fw32_notification_notify): Avoid
warnings about discarding 'const' qualifier.
(Fx_create_frame): Avoid warnings about empty body of 'else'.
(x_screen_planes): Ifdef away unused function.
(Fx_show_tip): Remove unused variables.
(Fw32_battery_status): Avoid warnings about implicit promotion
from float to double.
(Fw32_notification_notify): Initialize 'timeout'.
* src/profiler.c (profiler_cpu_running) [HAVE_ITIMERSPEC]: Only
define the TIMER_SETTIME_RUNNING value if it will be used.
* src/w32notify.c (send_notifications): Ifdef away an empty if
clause.  Remove unused variable.
(watch_end, watch_completion): Provide prototypes.
* src/sound.c (sound_warning) [WINDOWSNT]: Don't define: unused.
* src/callproc.c (child_setup, getenv_internal_1) [WINDOWSNT]: Fix
warning with pointer signedness.
* src/gnutls.c (gnutls_x509_crt_get_signature)
(gnutls_alert_send_appropriate) [WINDOWSNT]: Don't define, and
don't load them from the GnuTLS library, as they are no longer
used.
* src/process.c (DATAGRAM_CHAN_P) [!DATAGRAM_SOCKETS]: Don't
define, as it's unused.
* src/unexw32.c (open_input_file, open_output_file)
(close_file_data): Remove redundant prototypes.
(_start): provide prototype.
(mainCRTStartup): Move prototype to file level.
(find_section): Use type-cast to shut up compiler warnings.
(offset_to_section, relocate_offset): Now static.
(find_section): First argument is now a 'const char *'.
(offset_to_section): Ifdef away, as it's unused.
* src/w32heap.h (find_section): Adjust prototype.
* src/dynlib.c (dynlib_reset_last_error): Provide prototype.
* src/dired.c (directory_files_internal_w32_unwind): Avoid
warnings about missing prototypes.
(is_slow_fs) [WINDOWSNT]: Provide prototype at file level.
(directory_files_internal) [WINDOWSNT]: Fix warnings about pointer
signedness.
* src/fileio.c (Ffile_writable_p, Ffile_regular_p) [WINDOWSNT]:
Fix warnings about pointer signedness.
* src/filelock.c (WTMP_FILE) [WINDOWSNT]: Don't define, it's
unused.
* src/sysdep.c (_getpid): Remove redundant prototype.
(sys_subshell) [DOS_NT]: Don't define 'status', it's unused.
[!MSDOS]: Don't define 'st', it's unused.
(init_sys_modes) [DOS_NT]: Don't define 'terminal', it's unused.
(str_collate) [WINDOWSNT]: Avoid warnings about pointer signedness.
* src/keyboard.c (tty_read_avail_input) [WINDOWSNT]: Don't define
n_to_read, as it is not used.
(MAX_ENCODED_BYTES) [WINDOWSNT]: Don't define, as it's unused.
* src/w32font.h (syms_of_w32font): Remove redundant prototype.
* src/xfaces.c (x_display_info) [HAVE_NTGUI]: Remove unused macro.
* src/term.c (init_tty) [DOS_NT]: Ifdef away variables that are
not used by DOS_NT builds, to avoid compiler warnings.
* src/menu.c (current_popup_menu) [HAVE_NTGUI]: Remove redundant
declaration.
* src/dispnew.c (init_display) [WINDOWSNT]: Use type-cast to shut
up compiler warnings.
* src/w32term.h (x_set_window_size, x_get_focus_frame)
(x_make_frame_visible, x_make_frame_invisible, x_iconify_frame)
(x_set_frame_alpha, x_activate_menubar, x_bitmap_icon)
(x_free_frame_resources, x_real_positions)
(display_x_get_resource): Remove redundant prototypes.

* lib-src/ntlib.c (sys_ctime, sys_fopen, sys_chdir, mkostemp)
(sys_rename, gettimeofday): Provide prototypes.
* lib-src/ntlib.h (getuid, geteuid, mkostemp): Remove redundant
declarations.
* lib-src/emacsclient.c (w32_getenv): Argument is now 'const char *'.
(xstrdup, w32_get_resource, w32_window_app, w32_execvp, ttyname)
(close_winsock, initialize_sockets, w32_set_user_model_id)
(w32_find_emacs_process, w32_give_focus) [WINDOWSNT]: Add
prototypes.
(w32_get_resource) [WINDOWSNT]: Fix a warning about signedness
difference.
(w32_set_user_model_id): Update prototype of
SetCurrentProcessExplicitAppUserModelID to avoid compiler
warnings.
(start_daemon_and_retry_set_socket) [WINDOWSNT]: Use type-cast to
shut up compiler warnings.
* lib-src/etags.c (MAXPATHLEN) [WINDOWSNT]: Remove unused macro.
2016-05-21 20:06:33 +03:00
Paul Eggert 374f6a5f34 Port --enable-gcc-warnings to GCC 6.1
* configure.ac (WERROR_CFLAGS): Omit -Wunused-const-variable=2.
* lib-src/etags.c (LOOKING_AT, LOOKING_AT_NOCASE):
Omit test whether pointer plus a constant equals a null pointer.
* src/alloc.c (compact_small_strings):
Avoid pointer arithmetic on null pointers.
* src/alloc.c (mark_face_cache):
* src/fontset.c (free_realized_fontsets, Fset_fontset_font):
* src/fringe.c (draw_fringe_bitmap_1)
(Fset_fringe_bitmap_face):
* src/macfont.m (macfont_draw):
* src/msdos.c (IT_set_face, IT_clear_screen):
* src/nsfont.m (nsfont_draw):
* src/nsterm.h (FRAME_DEFAULT_FACE):
* src/nsterm.m (ns_draw_window_cursor)
(ns_draw_vertical_window_border, ns_draw_window_divider)
(ns_dumpglyphs_box_or_relief)
(ns_maybe_dumpglyphs_background, ns_dumpglyphs_image)
(ns_dumpglyphs_stretch):
* src/w32term.c (w32_draw_vertical_window_border)
(w32_draw_window_divider, x_set_mouse_face_gc):
* src/xdisp.c (estimate_mode_line_height, init_iterator)
(handle_face_prop, handle_single_display_spec, pop_it)
(CHAR_COMPOSED_P, get_next_display_element)
(next_element_from_display_vector, extend_face_to_end_of_line)
(fill_gstring_glyph_string,BUILD_COMPOSITE_GLYPH_STRING):
* src/xfaces.c (Finternal_merge_in_global_face, Fface_font)
(lookup_named_face):
* src/xterm.c (x_draw_vertical_window_border)
(x_draw_window_divider, x_set_mouse_face_gc):
Prefer FACE_OPT_FROM_ID to FACE_FROM_ID when the result might be null.
* src/xterm.c (try_window_id):
Redo loop to convince GCC 6.1 that it is null pointer safe.
(x_color_cells):
Use eassume as necessary to pacify GCC 6.1.
* src/dispextern.h (FACE_FROM_ID, IMAGE_FROM_ID): Now returns non-null.
(FACE_OPT_FROM_ID, IMAGE_OPT_FROM_ID): New macro, with the old
behavior of the non-_OPT macro, to be used when the result
might be a null pointer.
* src/dispnew.c (buffer_posn_from_coords, marginal_area_string)
[HAVE_WINDOW_SYSTEM]:
* src/intervals.h (INTERVAL_WRITABLE_P):
* src/term.c (turn_off_face):
* src/xdisp.c (get_glyph_face_and_encoding, fill_image_glyph_string)
(produce_image_glyph, produce_xwidget_glyph):
* src/xfaces.c (lookup_named_face):
Remove unnecessary test for null pointer.
* src/keyboard.c (read_char): Suppress bogus -Wclobbered warning.
* src/process.c (would_block): New function.
(server_accept_connection, wait_reading_process_output, send_process):
Use it.
* src/xdisp.c (get_window_cursor_type, note_mouse_highlight):
Prefer IMAGE_OPT_FROM_ID to IMAGE_FROM_ID when the result
might be null.
2016-05-18 00:49:29 -07:00
Paul Eggert e8bda380bb Prefer grep -E/-F to egrep/fgrep
POSIX marked egrep and fgrep as legacy apps in SUSv2 (1997) and
withdrew them in SUSv3 (2001), and these days grep -E and grep -F
are probably more portable.
* lib-src/etags.c (main):
* lisp/eshell/em-unix.el (eshell-grep, eshell/egrep)
(eshell/fgrep):
* lisp/cedet/semantic/symref.el (semantic-symref-find-text):
* lisp/eshell/esh-var.el (eshell-apply-indices):
* lisp/progmodes/ada-xref.el (ada-xref-search-with-egrep)
(ada-find-in-src-path):
* lisp/textmodes/ispell.el (ispell-grep-command):
(ispell-lookup-words):
Use or document grep -E and grep -F instead of egrep and fgrep.
* lisp/textmodes/ispell.el (ispell-grep-options):
Use -Ei on all platforms, not just MS-Windows.
2016-05-07 18:40:55 -07:00
Eli Zaretskii a1f71da92d Unhide the --no-line-directive option to 'etags'
* lib-src/etags.c (print_help): Un-undocument the --no-line-directive
option.  (Bug#22306)

* doc/man/etags.1: Document the --no-line-directive option.

[This reapplies commit fee0526a18,
which was inadvertently lost by merge commit
7823745acbe9b87eea2db4ef434e379fc903ec35.]
2016-03-21 17:05:55 -07:00
John Wiegley 63efcc2686 Merge from origin/emacs-25
facb5e2 Update Emacs manual section related to character folding
4efea8e ; * etc/DEBUG: Fix a typo.  (Bug#22984)
f8df21b Update admin/notes/unicode
950be68 Add symref-filepattern entries for c?perl-mode
8b8a6ad Don't use XRANDR 1.3 extensions if the server doesn't support them.
985dacf ; NEWS update for the last change in etags
741a6f8 Sync with gnulib
7352c6c Rework C source files to avoid ^(
a589e9a By default, etags produces unqualified Perl tag names
72c7438 Indent methods with keyword names correctly
28532a9 Propertize character literals and special global variables
        differently
a7d6f39 ; Fix last change in NEWS
83b2a20 Change how /etc/NEWS presents character folding
b417c5a Revert "Revert "Backport: * lisp/isearch.el: Turn char-folding
        off by default""
711ca36 Properly handle lambda as read function (bug 22961)
1b9d616 Propertize operator symbol names with symbol syntax class
9b16bc2 Stop recognizing :#{} as symbol in ruby-mode
366ec77 Allow using the left shift operator without spaces on both sides
02bf7cc Properly handle unquoting in wdired (bug 22938)
16cf469 ; Spelling fix and tighten up comment
f50bc04 Allow splat operator before percent literal
991c801 Don't apply the return value of goto-char as syntax class
6e63b3e Guard against nested percent literals
066f3bc Recognize iuwu-mod after an escaped newline
6f7a57c Fix symbolic mode string conversion for s and t
50b9826 Update 'ucs-names' database
993b2fb Improve doc string of 'shell-command'
b71c717 Make the code in movemail_strftime more general
cc057e4 Speed up redisplay of binary files with long series of nulls
e51b27e Remove the highlighting support for quoting 'like this' inside
        Lisp docstrings
b1abce1 Restore leading space in movemail pop output
98b8d44 Fix bidi-paragraph-direction in Rmail view buffer
dc9d837 Don't misindent computed property generator methods
7923112 Fix mbox files produced by movemail on MS-Windows
c45a1ca doc string file descriptor exhaustion fix
265141b Fix Bug#22814
2016-03-11 13:33:32 -08:00
Paul Eggert 7352c6c695 Rework C source files to avoid ^(
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.
2016-03-10 07:59:19 -08:00
Eli Zaretskii a589e9aed5 By default, etags produces unqualified Perl tag names
* lib-src/etags.c (Perl_functions): Produce unqualified names,
unless -Q was specified.
(print_help): Update the description of -Q.

* doc/man/etags.1: Update the documentation of -Q.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/CTAGS.good: Adapt the expected test results to the
changed Perl functionality.
2016-03-10 17:27:26 +02:00
Paul Eggert 59c7a5d711 Assume getaddrinfo in C code
* admin/CPP-DEFINES, configure.ac: Remove HAVE_GETADDRINFO, HAVE_H_ERRNO.
All uses removed.
* doc/lispref/processes.texi (Network, Network Processes), etc/NEWS:
Say that port numbers can be integer strings.
* lib-src/pop.c (h_errno) [!WINDOWSNT && !HAVE_H_ERRNO]: Remove decl.
(socket_connection): Assume HAVE_GETADDRINFO.
* lisp/mpc.el (mpc--proc-connect):
* lisp/net/network-stream.el (open-network-stream):
It’s now OK to use integer strings as port numbers.
* src/process.c (conv_numerical_to_lisp) [!HAVE_GETADDRINFO]: Remove.
(Fmake_network_process): Assume HAVE_GETADDRINFO.
2016-03-07 18:55:20 -08:00
Eli Zaretskii b71c717f95 Make the code in movemail_strftime more general
* lib-src/movemail.c (movemail_strftime): Transform the format
string passed by the caller instead of using a separate format
string.
2016-03-06 18:27:16 +02:00
Paul Eggert b1abce1a30 Restore leading space in movemail pop output
* lib-src/movemail.c (movemail_strftime) [WINDOWSNT]: New function.
(strftime) [WINDOWSNT]: New macro.
(mbx_delimit_begin): Go back to previous version of this code,
now that there’s a special-purpose WINDOWSNT implementation
that should do the right thing.  That way, the output continues
to use leading space rather than leading zero for day of month.
2016-03-05 11:31:22 -08:00
Eli Zaretskii 792311228d Fix mbox files produced by movemail on MS-Windows
* lib-src/movemail.c (mbx_delimit_begin): Use portable strftime
format specifiers, as at least the MS-Windows version of strftime
doesn't support %e and %T.
2016-03-05 12:57:06 +02:00
Eli Zaretskii bc96f6e827 Implement getaddrinfo fallback for MS-Windows
See http://lists.gnu.org/archive/html/emacs-devel/2016-02/msg01602.html
for more details.

* nt/mingw-cfg.site (ac_cv_func_getaddrinfo)
(ac_cv_func_gai_strerror): Set to "yes", as the configure script's
test program is not smart enough to auto-detect these.
* nt/inc/sys/socket.h (getaddrinfo, freeaddrinfo): Redirect to
sys_getaddrinfo and sys_freeaddrinfo.  Provide prototypes for
sys_getaddrinfo and sys_freeaddrinfo.

* src/w32.c (init_winsock): Try loading getaddrinfo and
freeaddrinfo from ws2_32.dll.
(sys_getaddrinfo, sys_freeaddrinfo): New functions.

* lib-src/pop.c [WINDOWSNT]: Include winsock2.h, not winsock.h,
and also ws2tcpip.h.
(getaddrinfo, freeaddrinfo) [WINDOWSNT]: Redirect to
sys_getaddrinfo and sys_freeaddrinfo, respectively.
(load_ws2, sys_getaddrinfo, sys_freeaddrinfo) [WINDOWSNT]: New
functions.
2016-03-05 12:12:58 +02:00
John Wiegley 692caf1e8d Merge from origin/emacs-25
b13cab6 Add a eww command to toggle paragraph direction
4e46128 * nextstep/WISHLIST: Merge into etc/TODO and remove.
9e078e5 Fix char signedness issue in bidi code
064adf6 * lib-src/pop.c (socket_connection): Fix format string.
14060a9 Avoid inflooping in thing-at-point-looking-at
098d47b * lisp/emacs-lisp/derived.el (define-derived-mode): Revert
        indent change.
b5db8e0 etc/PROBLEMS: Mention problems with using file descriptors
ec10ef9 * lisp/apropos.el (apropos-variable): Doc fix.  (Bug#22813).
d2dd614 Remove unneeded workaround in xftfont.c
9b7593c ; * etc/NEWS: Reflect latest changes in saveplace.
fde0cd1 * lisp/saveplace.el (save-place-local-mode): New minor mode
06a872b Fix redisplay on a TTY after 'make-frame'
95f5a43 Make double-click-1 work with unbalanced parens in CC Mode.
        Fixes bug#5560.
7d206fc Input method polish-slash should not use keyboard translation
8be32cf Fix an assertion
040e0d6 Fix 'toggle-save-place'
5244db2 * src/keyboard.c: Don't inadvertently set immediate_echo (bug#22581)
2016-03-03 23:53:08 -08:00
Andreas Schwab 064adf6ff0 * lib-src/pop.c (socket_connection): Fix format string. 2016-02-27 14:25:15 +01:00
John Wiegley c79978fcad Merge from origin/emacs-25
dacde7e * etc/AUTHORS: Update the AUTHORS file
478ca5d ; fix changelog entries
2b7d006 ; make change-history-commit
851decb * lisp/dired-aux.el: Require cl-lib.  (Bug#22613)
47896c8 ; Improve commentary in insdel.c
53ca1e1 Index tilde characters in names of backup files
d97f522 Document deprecation of hi-lock-mode's 'C-x w' bindings
b55f06d ; * etc/NEWS: Use double spaces to end a sentence.
28bb214 Announce that the `C-x w' bindings are deprecated
1c98f98 Suppress GNUstep hardening
d82f24b Fix redisplay after a large insertion
85a2753 Revert "Fix gnus-group-get-new-news-this-group on group with
        closed server"
e8e3db0 ; Improve merge documentation in CONTRIBUTE
5be9989 * lib-src/make-docfile.c: Include stdarg.h.
c95ebbf Extend gpm-mouse-mode's doc string and doc to point out
        limitations.
2016-02-15 14:10:25 -08:00
John Wiegley a644fa3675 Merge from origin/emacs-25
f5d6b9b Revert "Support integer image rotation and respect EXIF rotations"
afe7d1f Revert "Document EXIF image rotation"
c6f377c Document OS X LANG default
eb4a18c Set locale when run from OS X GUI
456c0a3 make-docfile cleanup for I/O, etc.
25ec995 Memory-management cleanup in make-docfile
02d925e Kevin Gallagher has new email address
4ef153b Improve doc strings of 'forward/backward-word-strictly'
3ad05a0 Describe Makefile test targets in test/README
2016-02-15 14:09:12 -08:00
Paul Eggert 5eb9989f9b * lib-src/make-docfile.c: Include stdarg.h. 2016-02-11 12:51:08 -08:00
Paul Eggert 456c0a3137 make-docfile cleanup for I/O, etc.
* lib-src/make-docfile.c (progname, generate_globals, num_globals)
(num_globals_allocated, globals): Now static.
(generate_globals, struct rcsoc_state, read_c_string_or_comment):
(write_c_args, scan_c_stream, search_lisp_doc_at_eol, scan_lisp_file):
Use bool for boolean.
(verror): New function.
(fatal, error): Use it.  API is now like printf.  All callers changed.
(main): Remove err_count local that was always 0.
(main, scan_c_stream, scan_lisp_file): Check for I/O error.
(scan_file, scan_c_file, scan_c_stream, scan_lisp_file):
Return void, not 0.
(put_char, scan_keyword_or_put_char, scan_c_file): Use char for byte.
(scan_keyword_or_put_char): Check for missing ( and unexpected EOF.
(close_emacs_globals): Use ptrdiff_t for index, not int.
(scan_c_file, scan_lisp_file): Exit with failure if file cannot be
opened, rather than diagnosing but exiting with status 0.
(search_lisp_doc_at_eol): Don't worry about ungetc of EOF; it's
portable now.
2016-02-10 11:41:10 -08:00
Paul Eggert 25ec995c06 Memory-management cleanup in make-docfile
I compiled it with -fsanitize=address and fixed the leaks it detected.
Also, I changed it to prefer signed to unsigned integer types,
and to check for integer overflow.
* lib-src/make-docfile.c:
Include <stddef.h>, <stdint.h>, <intprops.h>, <min-max.h>.
(memory_exhausted): New function.
(xmalloc, xrealloc): Use it.
(xmalloc, xrealloc, scan_file, struct rcsoc_state, write_c_args)
(uncompiled, scan_lisp_file):
Prefer signed integer types to unsigned.
(xstrdup): Remove.  All uses removed.
(num_globals, num_globals_allocated, write_globals, scan_c_stream):
Use ptrdiff_t, not int, for indexes that in theory could exceed INT_MAX.
(add_global): Use const to pacify --enable-gcc-warnings.
Make a copy here, rather than relying on strdup calls later.
(add_global, write_globals, scan_c_stream):
Avoid integer overflow when calculating sizes.
(write_globals, scan_c_stream, scan_lisp_file): Avoid memory leak.
(scan_c_stream): Check for add_global failure.
2016-02-10 11:41:10 -08:00
Paul Eggert b3fc7a3e76 Merge from origin/emacs-25
9ffe7dd * lisp/isearch.el (isearch-define-mode-toggle): Improve logic
16140f7 * lisp/menu-bar.el (menu-bar-options-menu): New search submenu
3db6adb * lisp/isearch.el (search-default-mode)
4ea1ea7 * lisp/isearch.el: Rename search-default-regexp-mode to search-default-mode
c77ffc8 Use monitor's resolution for positioning tooltips
49e5749 Fix file-notify-test on MS-Windows
be1d874 Fix issues found by auditing w32notify code
87ae218 Extend etags Ruby support for accessors
aa35257 Update publicsuffix.txt.
6816bff Ensure that Gnus dribble handling allows removing entries
691feae Be consistent when using encoded strings in nnimap data
3ed423b Display the decoded Gnus group name
5428b5b Use completion-ignore-case instead of defining command
2016-02-09 14:23:10 -08:00
Paul Eggert fdc2da4ef4 Merge from origin/emacs-25
2c117fc * etc/NEWS: Document new mpc.el features
71a0496 * lisp/custom.el (defface): Revert indentation change.  (Bug#22524)
9dfece1 Correctly fontify C++ initializations which "look like" functions.
4485222 Improve newsticker-treeview-selection-face
4236944 Minor fix in tagging Ruby accessors by etags
35fc77d Spelling fixes
3dda110 Remove 'def X' from the example
2016-02-09 14:23:09 -08:00
Eli Zaretskii 87ae21858a Extend etags Ruby support for accessors
* lib-src/etags.c (Ruby_functions): Support accessors defined with
parentheses.  (Bug#22563)

* test/etags/ruby-src/test1.ru (A::B): Add tests for accessors
defined with parentheses.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby tests.
2016-02-06 11:08:20 +02:00
Eli Zaretskii 4236944f19 Minor fix in tagging Ruby accessors by etags
* lib-src/etags.c (Ruby_functions): Don't tag accessors whose
names are not literal symbols.  (Bug#22241)
2016-02-04 19:23:12 +02:00
John Wiegley 0608bf1c3d Merge from origin/emacs-25
ee73997 Make erc work better when encountering unknown prefix chars
b99141d Make erc completion case-insensitive again
66c4620 Make complection in erc use consistent casing
8c562b2 Make /QUIT in erc more robust
d93d2c5 Make tracking faces in Emacs work more reliably
af6ab7e Make shr not bug out on images on non-graphical displays
3311f40 Fix bookmark display widths
d90ab1e Fix typo in eww-make-unique-file-name
7f81825 Make it possible to TAB to input fields
a43a1dc Insert complete alt texts when images are disabled
56ed4e1 Allow eww text fields to grow
66b315c Make erc work when subword-mode is switched on
255b68f Fix IMAP doc example
91557f5 Quoting fixes in doc strings and diagnostics
2c0dc9f Fix warning message in hack-local-variables
504696d Etags: yet another improvement in Ruby tags
8784ebf Fix x-popup-menu on TTYs without a mouse
8b87ecb * lisp/emacs-lisp/map.el: Improvements to the docstring of the
        pcase macro
6191003 Use pop-to-buffer-same-window in eww
fe321fd * autogen.sh: Revert all recent changes.
74ebd4a * make-dist: Updates related to nt/.
737193a * make-dist: Add modules/.
3696bf2 * make-dist: Update for super-special file that can't live in etc/.
a4278e2 Fix failure to compile ns-win.el in parallel builds
860da4d Fix names of tags generated for Ruby accessors
f6213ce Fix file-name recognition in 'etags'
e42e662 Change Ruby file names and extensions recognized by 'etags'
58bfb6a More improvements for Ruby support in 'etags'
c04e911 Add --git-config option to autogen.sh
5713466 Fix editing undo changes in eww fields
51362d6 Allow the user more control of popping up the eww window
ee0fbd8 Make eww-browse-url with new-window parameter work again
9c3142d Clean up eww code slightly
cb035f3 Don't insert nil faces in shr
4c3fae3 ; * lisp/progmodes/prolog.el: Remove some obsolete commentary.
93f2153 Improve the custom type of some user options.
9f60d7e Mark some risky calendar variables.
1d07dcd Highlight two additional SCSS keywords
ee8b466 Recommend enabling integrity-checking in git
e639e10 Some corrections in Elisp manual
d766ca8 Chatter when autogen.sh changes Git configuration
3b734e1 * org/org-compat.el (org-font-lock-ensure): Fix bogus test (bug#22399)
43cb9f8 Omit unnecessary history from Lisp intro
2fbd1da * etc/HISTORY: Add some more history, plus git tags.
c90e1b4 Improve elisp “Security Considerations” doc
cedd7ca autogen.sh now arranges for git to check hashes
86ce76b ; Fix ChangeLog.2 commit ID.
7b1d2b1 Fix (c & 040) typo in emergency escapes
a8273da Fix display of overlay strings with 'display' and 'box' property
fc48106 Fix imap-starttls-open
cdecbed Fix return value of imap-starttls-open
20c7e34 ; * etc/NEWS: Fix renamed command name
98bdbdb Correct reference to DARWIN_OS preprocessor symbol
b250d29 Spelling fix
b920a0e Spelling fixes
93b144b Pacify GCC on C library without glibc API
2016-02-03 23:56:08 -08:00
Eli Zaretskii 504696d75d Etags: yet another improvement in Ruby tags
* lib-src/etags.c (Ruby_functions): Handle continuation lines in
Ruby accessor definitions.  (Bug#22241)

* test/etags/ruby-src/test1.ru (A::B#X): Add some more tests for
accessors and multiline definitions.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby tags.
2016-02-03 18:24:20 +02:00
Eli Zaretskii 860da4dccb Fix names of tags generated for Ruby accessors
* lib-src/etags.c (Ruby_functions): Don't include the leading
colon ':' in tags for Ruby accessors and aliases.  (Bug#22241)

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby tags.
2016-02-02 20:31:43 +02:00
Eli Zaretskii f6213ce799 Fix file-name recognition in 'etags'
* lib-src/etags.c (get_language_from_filename): If FILE includes a
leading directory, compare only its basename to the known file
names in lang_names[].

* test/etags/Makefile (RBSRC): Adapt to recent test1.ruby
renaming.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby file names and
to the results in Makefile due to the above etags.c fix.
2016-02-02 20:01:33 +02:00
Eli Zaretskii e42e662f26 Change Ruby file names and extensions recognized by 'etags'
* lib-src/etags.c <Ruby_filenames>: New variable, holds names
of Ruby files.
<Ruby_suffixes>: Treat .rb, .ru, and .rbw as Ruby extensions.
<lang_names>: Add Ruby_filenames to the Ruby entry.
* test/etags/ruby-src/test1.ru: Renamed from test1.ruby.
(Bug#22241)
2016-02-02 19:50:08 +02:00
Eli Zaretskii 58bfb6a4f5 More improvements for Ruby support in 'etags'
* lib-src/etags.c (Ruby_functions): Tag Ruby accessors and
alias_method.  Identify constants even if the assignment is not
followed by whitespace.  (Bug#22241)

* test/etags/ruby-src/test1.ruby: Add tests for constants,
accessors, and alias_method.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby tests.
2016-02-02 19:16:22 +02:00
Paul Eggert 99fa8c3dbf - 2016-01-30 13:56:23 -08:00
Paul Eggert cb4e054e41 - 2016-01-30 11:43:26 -08:00
lu4nx 40a85fba44 Support Go language in 'etags'
* lib-src/etags.c <Ruby_help>: Fix documentation of Ruby tags.
<Go_help>: New help.
<Go_suffixes>: New variable.
(Go_functions): New function.
<lang_names>: Add entry for Go.  (Bug#22370)

* doc/emacs/maintaining.texi (Tag Syntax): Document Go support.
* doc/man/etags.1: Mention Go support.

* etc/NEWS: Mention Go support.

* test/etags/go-src/test.go:
* test/etags/go-src/test1.go: New test files.
* test/etags/Makefile (GOSRC): New variable.
(SRCS): Add $(GOSRC).
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to addition of Go tests.
2016-01-30 14:56:43 +02:00
Eli Zaretskii 25b79d7bc7 Improve Ruby support in 'etags'
* lib-src/etags.c (Ruby_functions): Tag constants.  Don't tag
singleton classes.  Remove class qualifiers from tags generated
for method and constant names.  (Bug#22241)

* doc/emacs/maintaining.texi (Tag Syntax): Mention that constants
are tagged by etags in Ruby.

* etc/NEWS: Mention that constants are tagged by etags in Ruby.

* test/etags/ruby-src/test1.ruby: Add more tests.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the changes in etags and in Ruby
tests.
2016-01-30 14:16:36 +02:00
Paul Eggert 6475f9265e Port "$@" to OpenIndiana ksh93
In http://lists.gnu.org/archive/html/bug-autoconf/2015-12/msg00000.html
Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh
(derived from ksh 93t+ 2010-03-05).  ${1+"$@"} works around an ancient
bug in long-dead shells, so remove the workaround.
* admin/check-doc-strings, configure.ac, lib-src/rcs2log:
Use plain "$@" rather than ${1+"$@"}.
2016-01-24 17:29:01 -08:00
Eli Zaretskii fee0526a18 Unhide the --no-line-directive option to 'etags'
* lib-src/etags.c (print_help): Un-undocument the --no-line-directive
option.  (Bug#22306)

* doc/man/etags.1: Document the --no-line-directive option.
2016-01-15 10:54:03 +02:00
John Wiegley 1dd4f26ab6 Merge from origin/emacs-25
ef33bc7 Spelling and grammar fixes
9c3dbab Fix copyright years by hand
0e96320 Update copyright year to 2016
2016-01-11 22:48:07 -08:00
Glenn Morris c6d3c60f28 Build tweaks related to tags files.
* lib-src/Makefile.in (tagsfiles): New variable.
(TAGS): Also depend on the source files.  Use our own etags program.
* lisp/Makefile.in (ETAGS): Add EXEEXT.
(lisptagsfiles1, lisptagsfiles2, lisptagsfiles3, lisptagsfiles4):
Remove.
(tagsfiles): New, replacing lisptagsfiles1 etc.
Remove irrelevant source files here rather than in the TAGS rule.
(${ETAGS}): New rule.
(TAGS): Also depend on the etags executable.
* lwlib/Makefile.in (EXEEXT): New, set by configure.
(ETAGS): Add EXEEXT.
(${ETAGS}): New rule.
(ctagsfiles): Use "wildcard".
(TAGS): Also depend on the etags executable.
* nt/Makefile.in (ETAGS, tagsfiles): New variables.
(${ETAGS}): New rule.
(TAGS): Fix dependencies.
* oldXMenu/Makefile.in (EXEEXT): New, set by configure.
(ETAGS): New variable, replacing $TAGS.  Use our own etags program.
Remove "-t" argument.
(${ETAGS}): New rule.
(tagsfiles): New variable.
(TAGS): New rule, with proper dependencies.
* src/Makefile.in (ETAGS): Add EXEEXT.  Add a build rule.
(ctagsfiles1, ctagsfiles2): Use "wildcard".
(ctagsfiles3): Remove.
(TAGS): Depend on etags.
(../lisp/TAGS, $(lwlibdir)/TAGS): Let the rules in the relevant
directories decide if updates are needed.
2016-01-06 18:25:47 -05:00
Paul Eggert 9c3dbabee3 Fix copyright years by hand
These are dates that admin/update-copyright did not update, or
updated incorrectly.
2016-01-01 01:38:07 -08:00
Paul Eggert 0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
Paul Eggert 7d7e742fe3 Remove SunOS 4.x cruft
Support for SunOS 4.x was removed in Emacs 23 but some cruft was left behind.
* lib-src/pop.c [sun]: Remove no-longer-needed include.
* lwlib/xlwmenu.c (SUNSO41): Remove.
2015-12-18 17:11:23 -08:00
Eli Zaretskii 3e08f784d1 Improve Lua support in etags
* lib-src/etags.c (Lua_functions): Skip spaces before looking for
"function".

* etc/NEWS: Mention improved Lua support by 'etags'.

* test/etags/lua-src/test.lua (test): Add tests for indented
function definitions.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the modified Lua tests.
2015-12-11 12:07:26 +02:00
Eli Zaretskii cabe904438 Improve and document Ruby support in 'etags'
* lib-src/etags.c (Ruby_suffixes): Add ".ruby".
(Ruby_functions): Support "module" and overloaded operators.
(Ruby_help): Mention "module".

* test/etags/ruby-src/test.rb:
* test/etags/ruby-src/test1.ruby: New files.
* test/etags/Makefile (RBSRC): New tests.
(SRCS): Add ${RBSRC}.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the new Ruby tests.

* doc/man/etags.1: Mention Ruby support.
* etc/NEWS: Mention Ruby support.
2015-12-11 11:17:31 +02:00
Xi Lu 95b6e13c13 Initial support for Ruby in 'etags'
* lib-src/etags.c <Ruby_suffixes>: New variable.
(lang_names): Add an entry for Ruby.
(Ruby_functions): New function.  (Bug#22116)
2015-12-11 10:52:08 +02:00
Eli Zaretskii 690ccf0f0d Fix Lua tags when a function name includes '.' or ':'
* lib-src/etags.c (Lua_functions): Add a tag for the last element
of a function name after a dot or a colon.  (Bug#21934)
2015-11-28 12:29:18 +02:00
Paul Eggert cd428600c2 Spelling fixes 2015-10-21 20:26:49 -07:00
Paul Eggert 38f99a02b8 Unmacroize ebrowse.c and etags.c a bit
* lib-src/ebrowse.c (READ_CHUNK_SIZE): Now an enum constant.
(streq, filename_eq, set_flag, has_flag): Now inline functions.
(set_flag): First arg is now an address, not an lvalue.
All callers changed.
(filename_eq, set_flag, has_flag):
Rename from FILENAME_EQ, SET_FLAG, HAS_FLAG.
All callers changed.
* lib-src/etags.c (streq, strcaseeq, strneq, strncaseeq):
Now inline functions.  Remove asserts that are unnecessary these
days (and in some cases were too-generous anyway).
2015-10-12 15:33:53 -07:00
Paul Eggert 29dfca2355 Use ‘echo’ safely with ‘\’ or leading ‘-’
POSIX says that ‘echo FOO’ produces implementation-defined output
if FOO contains leading ‘-’, or ‘\’ anywhere, so don’t assume GNU
behavior in that case.
* Makefile.in (removenullpaths): Remove.
(epaths-force): Rewrite to avoid the need for ‘echo’.
(install-etc): Be clearer about escaping the shell metacharacters
‘\’ and ‘$’.
* Makefile.in (install-arch-indep, install-etcdoc):
* admin/charsets/mapconv, admin/merge-gnulib, admin/merge-pkg-config:
* admin/quick-install-emacs, build-aux/gitlog-to-emacslog:
* configure.ac, lib-src/rcs2log, make-dist:
* src/Makefile.in (lisp.mk):
Don’t assume ‘echo’ outputs ‘\’ and leading ‘-’ unscathed.
For example, use ‘printf '%s\n' "$foo"’ rather than ‘echo "$foo"’
if $foo can contain arbitrary characters.
* lisp/Makefile.in (TAGS): Use ‘ls’, not ‘echo’, to avoid ‘\’ issues.
* doc/lispref/two-volume.make (vol1.pdf):
* test/etags/make-src/Makefile (web ftp publish):
Use ‘printf’ rather than ‘echo -e’.
2015-10-10 18:11:27 -07:00
Paul Eggert e56096dbb9 Minor quoting fixes in scripts and doc
Prefer straight quotes in random script files, as they are not converted.
Prefer grave quotes in a couple of places in the manual that were missed
earlier, as these quotes are converted.
2015-09-16 16:07:15 -07:00
Paul Eggert 8865587c55 Add -Wswitch to --enable-gcc-warnings
Make --enable-gcc-warnings a bit pickier, by also using -Wswitch.
* configure.ac (WERROR_CFLAGS): Don’t add -Wno-switch.
* lib-src/etags.c (main, consider_token, C_entries):
* src/coding.c (encode_invocation_designation):
* src/data.c (Ftype_of):
* src/eval.c (Fdefvaralias, default_toplevel_binding)
(Fbacktrace__locals, mark_specpdl):
* src/lisp.h (record_xmalloc):
* src/syntax.c (scan_lists, scan_sexps_forward):
* src/window.c (window_relative_x_coord):
* src/xdisp.c (push_it, pop_it):
* src/xterm.c (xg_scroll_callback, x_check_fullscreen):
Error out or do nothing (as appropriate) if a switch statement
with an enum value does not cover all of the enum.
* src/dispextern.h (struct iterator_stack_entry.u.comp):
Remove unused member discovered by using -Wswitch.
* src/lisp.h (record_xmalloc): Add a ‘+ 0’ to pacify -Wswitch.
* src/vm-limit.c (check_memory_limits):
Simplify warning-diagnostic computation by using a table.
2015-09-16 15:07:23 -07:00
Paul Eggert 82198ed57e etags ‘fatal’ function is now printf-like
* lib-src/etags.c (fatal): Now printf-like.  All callers changed.
Also, now static; not clear why it needed to be extern.
(verror): New function, with most of the old contents of ‘error’.
(fatal, error): Use it.
2015-09-16 14:39:54 -07:00
Paul Eggert 818f06eaa7 Prefer straight quoting in some text files
Mostly this just changes ` to ' in static text.  Some exceptions:
* INSTALL.REPO: Use curved quotes, as the diagnostic in question
typically does that now.
* admin/quick-install-emacs (TRY, top level):
Use straight quoting in diagnostics.
* src/README: Fix working-directory confusion.
2015-09-11 11:05:12 -07:00
Paul Eggert 54ea37308a Refix movemail GCC pacification
Problem reported by Ken Brown in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00406.html
* lib-src/movemail.c (main): Fix previous change.
2015-09-09 15:45:44 -07:00
Paul Eggert b6c8cb57fc Port movemail to RHEL 6 with --enable-gcc-warnings
* lib-src/movemail.c (main): Declare local only if needed.
2015-09-09 03:36:25 -07:00
Paul Eggert 2934c21f2d Use straight quotes in lib-src diagnostics
These auxiliary programs can’t use Emacs’s text-quoting-style,
and it’s too much trouble to redo that mechanism by hand.
So just use straight quotes for now.
* lib-src/ebrowse.c (main):
* lib-src/emacsclient.c (decode_options, main):
* lib-src/etags.c (Ada_help, default_C_help, Cplusplus_help)
(Forth_help, HTML_help, Lisp_help, Makefile_help, Objc_help)
(Perl_help, PHP_help, Python_help, Scheme_help, TeX_help, auto_help)
(none_help, print_language_names, print_help, add_regex)
(suggest_asking_for_help):
* lib-src/make-docfile.c (write_c_args, scan_c_stream):
Use straight quotes in diagnostics.
2015-08-27 02:37:35 -07:00
Glenn Morris 208cfda3aa * admin/admin.el (set-version, set-copyright): Remove deleted files.
; * src/emacs,c, lib-src/ntlib.c: Comment updates.
2015-08-15 10:40:06 -07:00
Eli Zaretskii 8db2b2a7d3 Remove files used by the old MS-Windows specific build procedure
* nt/configure.bat: Remove everything except the blurb about the
new build procedure.

* make-dist: Remove references to makefile.w32-in in various
directories, and to files in nt/ that were deleted.

* etc/NEWS: Mention the fact that the files were dropped.
2015-08-15 10:56:51 +03:00
Evgeny Fraimovitch c6a626ebac Don't abort emacsclientw when -a was specified
* lib-src/emacsclient.c (set_tcp_socket) [WINDOWSNT]: Don't error
out if we are in emacsclientw and -a was specified.

Copyright-paperwork-exempt: yes
2015-08-02 17:48:42 +03:00
Paul Eggert 319eeeb0fb Get ‘./configure; make -C src emacs’ to work
Without this fix, lib/fcntl.h isn't built in time (Bug#20894).
* lib-src/Makefile.in (../lib/libgnu.a):
* src/Makefile.in ($(lib)/libgnu.a): Build all, not libgnu.a.
2015-06-24 23:35:02 -07:00
Paul Eggert 1efdf7feb3 Make TAGS files more portable to MS-Windows
* etc/NEWS: Document this.
* lib-src/etags.c (readline_internal) [DOS_NT]:
Don't treat CRs differently from GNUish hosts.
* lisp/progmodes/etags.el (etags-goto-tag-location):
Adjust STARTPOS to account for the skipped CRs in dos-style files.
2015-05-25 13:22:36 -07:00
Eli Zaretskii ac59d53898 Fix a typo in last commit
* lib-src/etags.c (C_entries): Fix a typo.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/CTAGS.good: Update due to the change in etags.c.
2015-05-25 18:08:09 +03:00
Eli Zaretskii 9c66c5a0ca Fix tagging of class members in C-like OO languages
* lib-src/etags.c (longopts): Add new option --class-qualify and
its shorthand -Q.
(print_help): Add help text for --class-qualify.
(main): Add handling of -Q.
(consider_token, C_entries) <omethodparm>: Append argument types
to Objective C methods only if --class-qualify was specified.
Qualify C++, Objective C, and Java class members with their class
names only if --class-qualify was specified.
(C_entries): If --class-qualify was not specified, remove the
namespace and class qualifiers from tag names of C++ methods.
This allows to use etags.el as xref back-end without the
tag-symbol-match-p method, which greatly increases the number of
potentially false positives.  (Bug#20629)

* doc/man/etags.1: Update to document the new --class-qualify
option.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/CTAGS.good: Update due to changes in etags.c.
2015-05-25 18:02:21 +03:00
Eli Zaretskii adc846ad48 Fix last change in etags.c that broke tagging compresed files
* lib-src/etags.c (process_file_name) [MSDOS || DOS_NT]: Fix
quoting of decompression shell command for MS-Windows/MS-DOS.
2015-05-25 17:24:33 +03:00
Paul Eggert 675c90a3b4 Simpilify etags TEX mode scanning
* lib-src/etags.c (TEX_mode, TEX_esc, TEX_opgrp, TEX_clgrp):
Remove static vars.
(TeX_commands): Deduce escapes here instead.
(TEX_LESC, TEX_SESC, TEX_mode): Remove; all uses removed.
This removes the need for a reset_input call.
2015-05-24 14:20:10 -07:00
Paul Eggert 379d77dfa3 Improve etags I/O error reporting
* lib-src/etags.c:
Don't include sys/types.h and sys/stat.h; no longer needed.
(infilename): New static var.
(process_file_name): Don't call 'stat'.  Instead, just open the
file for reading and report any errors.  Don't bother making
a copy of the file argument; it's not needed.  Be more careful to
use the failing errno when reporting an error.
Quote the real name better (though no perfectly)
when passing it to the shell.
(reset_input): New function, which reports I/O errors.
All uses of 'rewind' changed to use this function.
(perhaps_more_input): New function, which also checks for
I/O errors.  All uses of 'feof' changed to use this function.
(analyze_regex): Report an error if fclose fails.
(readline_internal): Report an error if getc fails.
(etags_mktmp): Return an error if close fails.
2015-05-24 14:20:09 -07:00
Paul Eggert 3441b0cc61 etags.c: avoid side effects in 'if'
* lib-src/etags.c (process_file_name, Perl_functions)
(TEX_decode_env): Hoist side effects into previous statement.
2015-05-24 14:20:09 -07:00
Eli Zaretskii b98a2ef747 Fix last change in etags.c, which failed the test suite
* lib-src/etags.c (intoken): Add '$' to the set, as it was there
before the last change.
2015-05-24 10:19:36 +03:00
Paul Eggert fb11a5e117 Cleanup etags.c to use locale-independent code
Although this doesn't alter behavior (as etags doesn't use
setlocale), the new version is more clearly locale-independent and
the executable is a bit smaller on my platform.
* lib-src/etags.c: Include <limits.h>, for UCHAR_MAX.
Include <c-ctype.h> instead of <ctype.h>.
(CHARS, CHAR, init, _wht, _nin, _itk, _btk, _etk, white, nonam, endtk)
(begtk, midtk):
Remove; no longer needed.
(iswhite, ISALNUM, ISALPHA, ISDIGIT, ISLOWER, lowcase): Remove.
All callers changed to use c_isspace, c_isalnum, c_isalpha, c_isdigit,
c_islower, c_tolower, respectively.
(notinname, begtoken, intoken, endtoken): Rewrite as functions
instead of macros, and initialize the tables at compile-time
rather than at run-time.
2015-05-23 15:19:02 -07:00
Eli Zaretskii 1f83c3e524 Fix etags reading of compressed files
* lib-src/etags.c (O_CLOEXEC) [WINDOWSNT]: Define.
Include fcntl.h, for O_CLOEXEC.
(process_file_name): Don't use 'popen', whose streams cannot be
rewound.  Instead, uncompress the file to a temporary file,
created by 'etags_mktmp', and read from that as usual.
(etags_mktmp): New function.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5: Update to be consistent with latest
changes in etags.c regarding reading compressed files.
2015-05-23 11:35:45 +03:00
Stefan Monnier ea92591983 Change defgeneric so it doesn't completely redefine the function
* lisp/emacs-lisp/cl-generic.el (cl-generic-define): Don't throw away
previously defined methods.
(cl-generic-define-method): Let-bind purify-flag instead of using `fset'.
(cl--generic-prefill-dispatchers): Only define during compilation.
(cl-method-qualifiers): Remove redundant alias.
(help-fns-short-filename): Silence byte-compiler.
* test/automated/cl-generic-tests.el: Adjust to new defgeneric semantics.
2015-05-21 23:46:10 -04:00
Eli Zaretskii e1890e3e82 Fix slash collapsing in etags on MS-Windows
* lib-src/etags.c (canonicalize_filename) [DOS_NT]: Separate the
MS-Windows code from the Posix code, and support collapsing both
forward- and back-slashes on MS-Windows.  Fixes a regression found
by the test suite.
2015-05-20 18:18:33 +03:00
Glenn Morris 741b224a84 ; * lib-src/etags.c: Comment.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00342.html
2015-05-15 21:04:28 -04:00
Eli Zaretskii c03c195a27 Fix tagging of symbols in C enumerations
* lib-src/etags.c (consider_token): Don't tag symbols in
expressions that assign values to enum constants.  See
http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00291.html
for details.
(C_entries): Reset fvdef to fvnone after processing a preprocessor
conditional and after a comma outside of parentheses.
2015-05-12 19:35:54 +03:00
Paul Eggert 52ba851db1 Port --enable-gcc-warnings to GCC 5.1 x86-64
* lib-src/ebrowse.c (dump_sym):
* lib-src/hexl.c (main):
* src/ccl.c (ccl_driver):
* src/character.c (string_escape_byte8):
* src/dbusbind.c (xd_retrieve_arg, xd_add_watch):
* src/gnutls.c (Fgnutls_boot):
* src/gtkutil.c (xg_check_special_colors):
* src/image.c (x_build_heuristic_mask):
* src/print.c (safe_debug_print, print_object):
* src/term.c (produce_glyphless_glyph):
* src/xdisp.c (get_next_display_element)
(produce_glyphless_glyph):
* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
Don't use a signed format to print an unsigned integer, or vice
versa.  GCC 5.1's new -Wformat-signedness option warns about this.
* src/image.c (png_load_body, jpeg_load_body):
Silence a bogus setjump diagnostic from GCC 5.1 (GCC bug 54561).
2015-04-24 22:41:56 -07:00
Paul Eggert 9d7afc0ccc Remove configure's --with-mmdf option
* configure.ac (MAIL_USE_MMDF): Remove.
* etc/NEWS: Document this.
* lib-src/movemail.c: Assume MAIL_USE_MMDF is not defined.
Fixes: bug#20308
2015-04-12 14:56:32 -07:00
Paul Eggert dd1404cca3 Rename ChangeLogs for gitlog-to-changelog
This patch was implemented via the following shell commands:
find * -name ChangeLog |
sed 's,.*,git mv & &.1,
s, lisp/ChangeLog\.1$, lisp/ChangeLog.17,
s, lisp/erc/ChangeLog\.1$, lisp/erc/ChangeLog.09,
s, lisp/gnus/ChangeLog\.1$, lisp/gnus/ChangeLog.3,
s, lisp/mh-e/ChangeLog\.1$, lisp/mh-e/ChangeLog.2,
s, src/ChangeLog\.1$, src/ChangeLog.13,' |
sh
git commit -am"[this commit message]"
2015-04-07 00:00:06 -07:00
Paul Eggert 84c7c6fd2b Port etags to -DDEBUG
* etags.c (xnew, xrnew) [DEBUG]: Don't include chkmalloc.h, which
is not part of Emacs and is typically not installed.
Instead, just invoke xmalloc and xrealloc as usual.
Problem reported by Nicolas Richard in:
http://bugs.gnu.org/20191#20
(xrnew): Avoid no-longer-needed cast to 'char *'.
(xrealloc): First arg is now void *, not char *.
2015-03-27 11:14:33 -07:00
Paul Eggert e1acc3c7ef Random minor fixes for movemail
* movemail.c: Include <stdbool.h> and <signal.h>.
(waitpid) [WINDOWSNT]: New macro.
(wait) [WINDOWSNT]: Remove.
(main, popmail, pop_retr, mbx_write, mbx_delimit_begin)
(mbx_delimit_end): Use bool for boolean.
(main): Simplify #if usage a bit.
(main): Don't assume EOF == -1.  Prefer 'return' to 'exit'.  Don't
possibly unlink lockname twice, as that's a race condition.  Set
SIGCHLD to SIG_DFL to work around SysV misfeature.  Check for fork
failure.  Use waitpid, not wait, to avoid a race condition in the
unlikely case where we start up with a child.
(NOTOK, OK): Remove, in favor of plain boolean.
(popmail, pop_retr): Don't get confused about errno, e.g., ferror
need not set errno.
(popmail): Use fclose (mbf), not close (fileno (mbf)), to also
detect any stream-related errors (e.g., memory exhaustion).
(pop_retr): Report pop errors separately, since caller now does
errno reporting.
(mbx_write, mbx_delimit_begin, mbx_delimit_end): Check < 0, not ==
EOF, as it's a bit faster and (in theory) pickier.
2015-03-06 15:41:45 -08:00
Mark Laws 805fe50708 Support daemon mode on MS-Windows (bug#19688)
src/emacs.c <w32_daemon_event> [WINDOWSNT]: New global var.
 (main) [WINDOWSNT]: Initialize it to NULL.  Create the event to
 signal clients we are ready for connections.
 (Fdaemon_initialized): Use DAEMON_RUNNING.
 [WINDOWSNT]: MS-Windows specific code to signal clients we are
 ready for connections.
 src/lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
 MS-Windows conditions for running in daemon mode.
 src/minibuf.c (read_minibuf): Use DAEMON_RUNNING.
 src/keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
 src/dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
 even in daemon mode.

 nt/inc/ms-w32.h (W32_DAEMON_EVENT): New macro.

 lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Don't reject empty
 arguments for --alternate-editor.
 (print_help_and_exit) [WINDOWSNT]: Don't refrain from advertising
 empty arguments for --alternate-editor.
 (start_daemon_and_retry_set_socket) [WINDOWSNT]: MS-Windows
 specific code to start Emacs in daemon mode and wait for it to be
 ready for client connections.

 lisp/server.el (server-process-filter): Force GUI frames on
 MS-Windows in daemon mode, even if a TTY frame was requested.
 lisp/frameset.el (frameset-keep-original-display-p): Don't assume
 windows-nt cannot be in daemon mode.
 lisp/frame.el (window-system-for-display): Don't assume windows-nt
 cannot be in daemon mode.
2015-02-27 12:43:30 +02:00
Paul Eggert ed7005c0e9 Fix previous change's attribution 2015-02-23 10:17:21 -08:00
Paul Eggert 6b62d26589 Use ${EXEEXT} more uniformly in makefiles
When porting Emacs to run on NaCl, we need to make sure that we always
call it with the proper extension (.nexe in this case) during the build.
* leim/Makefile.in, lib-src/Makefile.in, lisp/Makefile.in (EMACS):
Append ${EXEEXT}.
(tiny change)
2015-02-23 10:10:24 -08:00
Paul Eggert 14b4e657e2 Spelling fixes
* lisp/cedet/semantic/doc.el (semantic-documentation-comment-preceding-tag):
Rename from semantic-documentation-comment-preceeding-tag.  All
uses changed.  Leave an obsolete alias behind.
* src/lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS):
Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS.  All uses changed.
2015-02-21 20:01:05 -08:00
Paul Eggert 3bbf517072 Simplify binary I/O configuration
* lib-src/etags.c: Include <sysstdio.h> rather than <stdio.h>.
(process_file_name, analyze_regex): Use FOPEN_BINARY rather than
hard-coded "b".
* src/lread.c (Fload): Prefer FOPEN_TEXT and FOPEN_BINARY to
#ifdef DOS_NT.
* src/sysstdio.h: Add copyright notice.  Include <fcntl.h>.
(FOPEN_BINARY, FOPEN_TEXT): New macros.
* src/xfaces.c (Fx_load_color_file): Use FOPEN_TEXT, since POSIX
doesn't guarantee that "t" will work.
2015-02-19 19:21:32 -08:00
Eli Zaretskii d10c3edaf2 Fix generation of TAGS from compressed files (Bug#19735)
lib-src/etags.c (process_file_name) [!DOS_NT]: Use "r", not "rb" in the
 call to 'popen'.
2015-02-19 18:13:31 +02:00
Paul Eggert 65563fd771 Better support for future plugins
See the thread containing:
http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00720.html
* lib-src/make-docfile.c (write_globals): Generate code that #defines
Qxxx macros other than Qnil only if DEFINE_NONNIL_Q_SYMBOL_MACROS.
Qnil is safe to define even in plugins, since it must be zero for
other reasons.
* src/lisp.h (DEFINE_LISP_SYMBOL): New macro, replacing and simplifying
DEFINE_LISP_SYMBOL_BEGIN / DEFINE_LISP_SYMBOL_END.  All uses changed.
(DEFINE_NONNIL_Q_SYMBOL_MACROS): New macro, defaulting to true.
2015-02-12 18:21:32 -08:00
Paul Eggert 02cbd38ae4 Fix a couple of AM_V_GEN bugs
* admin/unidata/Makefile.in (unifiles):
Use AM_V_at instead of AM_V_GEN, since this doesn't generate a file.
* lib-src/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1)
(AM_V_at, am__v_at_, am__v_at_0, am__v_at_1):
New macros, copied from ../src/Makefile.in.
2015-01-23 16:08:57 -08:00
Paul Eggert 74ab488ff2 Check exit statuses in lib-src/Makefile
* Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall)
(mostlyclean, clean, distclean, extraclean):
Check exit statuses more carefully.  Reindent to fit in 80 chars.
(bootstrap-clean maintainer-clean): Remove unnecessary 'true'.
2015-01-22 00:40:16 -08:00
Ulrich Müller 7f4e7dd378 Don't fail if chown or chgrp for 'update-game-score' is unsuccessful.
* lib-src/Makefile.in ($(DESTDIR)${archlibdir}): Don't fail if the
chown or chgrp command is unsuccessful; the 'update-game-score'
program has a fallback for this at runtime.
2015-01-22 08:24:42 +01:00
Ulrich Müller 20f6648552 Allow update-game-score to run sgid instead of suid.
* configure.ac (gamegroup): New AC_SUBST.
(--with-gameuser): Allow to specify a group instead of a user.
In the default case, check at configure time if a 'games' user
exists.
* lib-src/update-game-score.c: Allow the program to run sgid
instead of suid, in order to match common practice for most games.
(main): Check if we are running sgid.  Pass appropriate file
permission bits to 'write_scores'.
(write_scores): New 'mode' argument, instead of hardcoding 0644.
(get_prefix): Update error message.
* lib-src/Makefile.in (gamegroup): New variable, set by configure.
($(DESTDIR)${archlibdir}): Handle both suid or sgid when
installing the 'update-game-score' program.
* lisp/play/gamegrid.el (gamegrid-add-score-with-update-game-score):
Allow the 'update-game-score' helper program to run suid or sgid.
2015-01-21 21:33:17 +01:00
Eli Zaretskii 5d244fec3e Support Make verbosity levels in w32 targets previously left out
nt/Makefile.in (AM_V_CC, am__v_CC_, am__v_CC_0, am__v_CC_1)
 (AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0, am__v_CCLD_1, AM_V_RC)
 (am__v_RC_, am__v_RC_0, am__v_RC_1): New macros.
 (addpm${EXEEXT}, ddeclient${EXEEXT}, cmdproxy${EXEEXT})
 (runemacs${EXEEXT}): Use $(AM_V_CCLD).
 (emacs.res, ../src/emacs.res): Use $(AM_V_RC).

 lib-src/Makefile.in (AM_V_RC, am__v_RC_, am__v_RC_0, am__v_RC_1): New
 macros.
 (emacsclient.res): Use $(AM_V_RC).
2015-01-16 11:33:08 +02:00
Paul Eggert 0adc75af18 Give up on -Wsuggest-attribute=const
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.
2015-01-15 20:37:44 -08:00
Paul Eggert 785adfcc8d Don't say Fnext_read_file_uses_dialog_p is const
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.
2015-01-13 15:23:03 -08:00
Dmitry Antipov ad9c4a4091 Support const and noreturn DEFUN attributes.
* 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.
2015-01-13 06:39:45 +03:00
Paul Eggert 6a37ecee08 Port to 32-bit --with-wide-int
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.
2015-01-10 13:42:35 -08:00
Paul Eggert 288e1fd737 Port to 32-bit Sun C 5.12 sparc
* 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.
2015-01-10 13:42:34 -08:00
Paul Eggert bc78ff2603 Use 0 for Qnil
Fixes Bug#15880.
If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
that NILP (x) is equivalent to testing whether x is 0 at the
machine level.  The overall effects of this and the previous patch
shrink the size of the text segment by 2.3% and speeds up
compilation of all the .elc files by about 0.5% on my platform,
which is Fedora 20 x86-64.
* lib-src/make-docfile.c (compare_globals):
* src/lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
(make_lisp_symbol) [USE_LSB_TAG]:
Symbols now tag the difference from lispsym, not the pointer.
(lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
(Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
(XSYMBOL): New forward decl.
(XUNTAGBASE): New function.
(XUNTAG): Use it.
2015-01-05 10:15:04 -08:00
Paul Eggert 58f2d6ef32 Compute C decls for DEFSYMs automatically
Fixes Bug#15880.
This patch also makes Q constants (e.g., Qnil) constant addresses
from the C point of view.
* make-docfile.c: Revamp to generate table of symbols, too.
Include <stdbool.h>.
(xstrdup): New function.
(main): Don't process the same file twice.
(SYMBOL): New constant in enum global_type.
(struct symbol): Turn 'value' member into a union, either v.value
for int or v.svalue for string.  All uses changed.
(add_global): New arg svalue, which overrides value, so that globals
can have a string value.
(close_emacs_global): New arg num_symbols; all uses changed.
Output lispsym decl.
(write_globals): Output symbol globals too.  Output more
ATTRIBUTE_CONST, now that Qnil etc. are C constants.
Output defsym_name table.
(scan_c_file): Move most of guts into ...
(scan_c_stream): ... new function.  Scan for DEFSYMs and
record symbols found.  Don't read past EOF if file doesn't
end in newline.
* alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle:
* casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
* composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
* doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
* frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
* image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
* macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
* nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
* search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
* window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
* xselect.c, xsettings.c, xterm.c:
Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
These names are now defined automatically by make-docfile.
* alloc.c (init_symbol): New function.
(Fmake_symbol): Use it.
(c_symbol_p): New function.
(valid_lisp_object_p, purecopy): Use it.
* alloc.c (marked_pinned_symbols):
Use make_lisp_symbol instead of make_lisp_ptr.
(garbage_collect_1): Mark lispsym symbols.
(CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
(mark_object): Use it.
(sweep_symbols): Sweep lispsym symbols.
(symbol_uses_obj): New function.
(which_symbols): Use it.  Work for lispsym symbols, too.
(init_alloc_once): Initialize Vpurify_flag here; no need to wait,
since Qt's address is already known now.
(syms_of_alloc): Add lispsym count to symbols_consed.
* buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
when testing whether storage is all bits zero.
* dispextern (struct image_type):
* font.c (font_property_table):
* frame.c (struct frame_parm_table, frame_parms):
* keyboard.c (scroll_bar_parts, struct event_head):
* xdisp.c (struct props):
Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
Lisp_Object *, since Qfoo is no longer an object whose address can be
taken.  All uses changed.
* eval.c (run_hook): New function.  Most uses of Frun_hooks changed to
use it, so that they no longer need to take the address of a Lisp sym.
(syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
* frame.c (syms_of_frame): Add defsyms for the frame_parms table.
* keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
DEFSYM Qdeactivate_mark before the corresponding var.
* keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
instead of interning their symbols; this avoids duplicates.
(LISP_INITIALLY, TAG_PTR)
(DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
New macros.
(LISP_INITIALLY_ZERO): Use it.
(enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
(EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
Move decls up, to avoid forward uses.  Include globals.h earlier, too.
(make_lisp_symbol): New function.
(XSETSYMBOL): Use it.
(DEFSYM): Now just a placeholder for make-docfile.
* lread.c (DEFINE_SYMBOLS): Define, for globals.h.
(intern_sym): New function, with body taken from old intern_driver.
(intern_driver): Use it.  Last arg is now Lisp integer, not ptrdiff_t.
All uses changed.
(define_symbol): New function.
(init_obarray): Define the C symbols taken from lispsym.
Use plain DEFSYM for Qt and Qnil.
* syntax.c (init_syntax_once): No need to worry about
Qchar_table_extra_slots.
2015-01-05 10:14:58 -08:00
Paul Eggert bf90e9ac7c 'temacs -nw' should not call missing functions
Without this patch, "temacs -nw" fails with the diagnostic
"emacs: Symbol's function definition is void: frame-windows-min-size"
and messes up the tty's state.
* lib-src/make-docfile.c (write_globals):
Declare Fframe_windows_min_size with ATTRIBUTE_CONST, too.  Sort.
* src/frame.c (Fframe_windows_min_size): New placeholder function.
(syms_of_frame): Define it.
* src/window.c (Fwindow__sanitize_window_sizes): New placeholder.
(syms_of_window): Define it.
2015-01-04 13:21:03 -08:00
Glenn Morris e82fc62bd4 # ChangeLog fixes 2015-01-04 00:22:29 -08:00
Paul Eggert 0d85a0c05e Less 'make' chatter for lib-src
* Makefile.in (blessmail): Less 'make' chatter here.
2015-01-03 18:54:34 -08:00
Paul Eggert 52a4e87c63 Fix copyright years by hand
These are dates that admin/update-copyright did not update, or
updated incorrectly.  Also, back out the copyright-date change to
doc/misc/texinfo.tex, as upstream hasn't updated that date yet.
2015-01-01 14:27:34 -08:00
Paul Eggert 7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00
Eli Zaretskii 0db7db3090 Fix compilation of lib-src executables on MS-Windows.
lib-src/Makefile.in (etags_libs, ebrowse${EXEEXT}, profile${EXEEXT})
 (make-docfile${EXEEXT}, movemail${EXEEXT})
 (update-game-score${EXEEXT}): Put $(NTLIB) before $(LOADLIBES),
 since GCC sometimes calls stpcpy when it sees strcpy, under
 optimization switches.  Reported by Dani Moncayo <dmoncayo@gmail.com>.
2014-12-27 21:46:03 +02:00
Paul Eggert 1e6879dbdb Prefer stpcpy to strcat
* admin/merge-gnulib (GNULIB_MODULES): Add stpcpy.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/stpcpy.c, m4/stpcpy.m4: New files, from gnulib.
* lib-src/ebrowse.c (sym_scope_1, operator_name, open_file):
* lib-src/emacsclient.c (get_server_config, set_local_socket)
(start_daemon_and_retry_set_socket):
* lib-src/etags.c (main, C_entries, relative_filename):
* lib-src/pop.c (sendline):
* lib-src/update-game-score.c (main):
* lwlib/xlwmenu.c (resource_widget_value):
* src/callproc.c (child_setup):
* src/dbusbind.c (xd_signature_cat):
* src/doc.c (get_doc_string, Fsnarf_documentation):
* src/editfns.c (Fuser_full_name):
* src/frame.c (xrdb_get_resource):
* src/gtkutil.c (xg_get_file_with_chooser):
* src/tparam.c (tparam1):
* src/xfns.c (xic_create_fontsetname):
* src/xrdb.c (gethomedir, get_user_db, get_environ_db):
* src/xsmfns.c (smc_save_yourself_CB):
Rewrite to avoid the need for strcat, typically by using stpcpy
and/or lispstpcpy.  strcat tends to be part of O(N**2) algorithms.
* src/doc.c (sibling_etc):
* src/xrdb.c (xdefaults):
Now a top-level static constant.
2014-12-25 15:44:23 -08:00
Glenn Morris 52aebd664e ChangeLog fixes 2014-12-24 14:50:50 -08:00
Paul Eggert 3de474e4ac Spelling fixes
All uses changed.
* lib-src/etags.c (analyze_regex): Rename from analyse_regex.
* lisp/cedet/semantic/lex-spp.el:
(semantic-lex-spp-analyzer-do-replace):
Rename from semantic-lex-spp-anlyzer-do-replace.
* lisp/emacs-lisp/cconv.el (cconv--analyze-use):
Rename from cconv--analyse-use.
(cconv--analyze-function): Rename from cconv--analyse-function.
(cconv-analyze-form): Rename from cconv-analyse-form.
* src/regex.c (analyze_first): Rename from analyze_first.
2014-12-13 23:41:33 -08:00
Glenn Morris 49daed6051 Remove lib-src/grep-changelog
Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00145.html

* lib-src/grep-changelog: Remove file.

* lib-src/Makefile.in (INSTALLABLE_SCRIPTS): Remove.
(all, install, uninstall): Remove INSTALLABLE_SCRIPTS.

* doc/man/grep-changelog.1: Remove file.

* make-dist: No more lib-src/grep-changelog.

* INSTALL: No longer mention grep-changelog.

* admin/quick-install-emacs (PUBLIC_LIBSRC_SCRIPTS): Remove, and all uses.

* admin/authors.el (authors-valid-file-names): Add grep-changelog.

* etc/NEWS: Mention this.
2014-12-13 18:38:21 -08:00
Stefan Monnier b76bea4c26 Various minor details accumulated over time
* lisp/info.el (Info-mode-map): Remove left-over binding.
* lisp/net/tramp.el (tramp-handle-make-symbolic-link): Mark unused arg.
* lisp/obsolete/gulp.el (gulp-create-m-p-alist): Remove unused var `mnt-tm'.
* lisp/progmodes/gud.el (gud-gdb-completions): Remove unused var `start'.
* lisp/url/url-http.el (url-http-activate-callback): Make debug more verbose.
* src/process.c: Whitespace and line-break nitpicks.
2014-12-08 15:02:26 -05:00
Paul Eggert 0cce3623b1 Merge branch 'emacs-24'. 2014-11-28 23:07:16 -08:00
Glenn Morris 5a0e58af1e * lib-src/Makefile.in (emacsclient.res): Fix yesterday's thinko. 2014-11-23 11:33:56 -08:00
Glenn Morris 84e2f13cd5 Further reduce number of versioned files storing Emacs version number.
* configure.ac (comma_version, comma_space_version) [mingw32]:
New output variables.
(nt/emacs.rc, nt/emacsclient.rc) [mingw32]: New output files.

* make-dist: Update nt/ for *.rc -> *.rc.in changes.

* nt/emacs.rc.in, nt/emacsclient.rc.in: Rename from nt/emacs.rc, emacsclient.rc.
Let configure generate the real files, and set the version numbers.

* lib-src/Makefile.in (emacsclient.res): Update deps for nt/emacsclient.rc
now being in the build directory, not the source directory.

* nt/Makefile.in (distclean): Delete *.rc.
(emacs.res): Update deps for nt/emacsclient.rc now being in the
build directory, not the source directory.

* admin/admin.el (set-version): No more need to update nt/*.rc.

* admin/authors.el (authors-renamed-files-alist): Add .rc.in files.
2014-11-22 14:07:48 -08:00
Glenn Morris cc252fc141 Add some .ico dependencies to Makefile .res rules
* lib-src/Makefile.in (emacsclient.res): Add dependency on icons/emacs.ico.

* nt/Makefile.in (emacs.res): Add dependency on icons/hand.cur.
2014-11-22 13:32:34 -08:00
Paul Eggert 342bc0e04b .gitignore cleanup.
* .gitignore: Merge contents of subsidiary files and organize the
result so as to avoid duplication.  Remove no-longer needed entries.
* admin/charsets/.gitignore, admin/unidata/.gitignore:
* doc/lispintro/.gitignore, etc/.gitignore, leim/.gitignore:
* leim/ja-dic/.gitignore, lib-src/.gitignore, lisp/.gitignore:
* lisp/calc/.gitignore, lisp/calendar/.gitignore:
* lisp/cedet/.gitignore, lisp/emulation/.gitignore:
* lisp/erc/.gitignore, lisp/eshell/.gitignore, lisp/gnus/.gitignore:
* lisp/international/.gitignore, lisp/language/.gitignore:
* lisp/leim/.gitignore, lisp/leim/quail/.gitignore:
* lisp/mail/.gitignore, lisp/mh-e/.gitignore, lisp/net/.gitignore:
* lisp/nxml/.gitignore, lisp/obsolete/.gitignore:
* lisp/play/.gitignore, lisp/progmodes/.gitignore:
* lisp/term/.gitignore, lisp/textmodes/.gitignore:
* lisp/url/.gitignore, nt/.gitignore, src/.gitignore:
Remove; no longer needed.
2014-11-17 17:58:28 -08:00
Stefan Monnier eed18bf1fd Merge from emacs-24 2014-10-20 21:17:06 -04:00
Glenn Morris 8a85c254de Merge from emacs-24; up to 2014-07-28T06:28:15Z!dmantipov@yandex.ru 2014-10-20 20:59:41 +01:00
Glenn Morris 83bad90efe Add 24.4 release ChangeLog entries 2014-10-20 20:21:15 +01:00
Paul Eggert 7d760fd8f4 movemail: don't dump core if the current time is outlandish
* movemail.c (popmail): Check for mbx_delimit_begin failure.
(mbx_delimit_begin): Fail if the current time is so outlandish
that localtime would fail or asctime would have undefined
behavior.  Use strftime to avoid asctime undefined behavior.
2014-09-23 12:21:54 -07:00
Paul Eggert 177030baaa Fix typo in previous change's ChangeLog. 2014-09-01 02:54:12 -07:00
Paul Eggert bc12381e60 --enable-silent-warnings now suppresses more chatter.
* INSTALL, etc/NEWS: Document this.
* lib-src/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
(am__v_CCLD_1): New macros, taken from Automake.
(regex.o, etags${EXEEXT}, ctags${EXEEXT}, ebrowse${EXEEXT})
(profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
(pop.o, emacsclient${EXEEXT}, emacsclientw${EXEEXT})
(emacsclientw${EXEEXT}, ntlib.o, hexl${EXEEXT})
(update-game-score${EXEEXT}): Use them.
* lwlib/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1): New macros, taken from Automake.
(.c.o): Use them.
* oldXMenu/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1): New macros, taken from Automake.
(.c.o): Use them.
* src/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
(am__v_CCLD_1): New macros, taken from Automake.
(.c.o, .m.o, temacs$(EXEEXT)): Use them.
2014-09-01 02:49:51 -07:00
Paul Eggert 56f9f0ab54 * etags.c (emacs_strchr, emacs_strrchr): Remove.
All uses replaced by strchr and strrchr, which are on all
target platforms now.
2014-08-31 17:06:11 -07:00
Paul Eggert 7e6d13fea4 Use "b" flag more consistently; avoid "t".
* make-docfile.c (READ_TEXT): Remove; all uses replaced by "r".
(READ_BINARY): Remove; all uses replaced by "rb".

Fixes: debbugs:18006
2014-07-15 12:28:25 -07:00
Paul Eggert ba1ed52f0c Use binary-io module, O_BINARY, and "b" flag.
* admin/merge-gnulib (GNULIB_MODULES): Add binary-io.  It was already
present implicitly; this just makes the dependence explicit.
* lib-src/etags.c, lib-src/hexl.c, lib-src/make-docfile.c:
Include binary-io.h instead of fcntl.h and/or io.h.
(main): Use set_binary_mode or SET_BINARY
in place of handcrafted code.
* lib-src/etags.c (main) [DOS_NT]:
* lib-src/movemail.c (main) [WINDOWSNT]:
Don't mess with _fmode.
* lib-src/etags.c (main, process_file_name, analyse_regex):
Use fopen/popen's "b" flag instead.
* lib-src/movemail.c (main, popmail): Use open/lk_open/mkostemp's O_BINARY
instead.
* src/callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
* src/emacs.c [MSDOS]:
* src/emacs.c (main) [DOS_NT]: Don't mess with _fmode.
(main) [MSDOS]: Use SET_BINARY instead of setmode.
* src/minibuf.c: Include binary-io.h instead of fcntl.h.
(read_minibuf_noninteractive):
Use set_binary_mode instead of handcrafted code.
Don't call emacs_set_tty if emacs_get_tty failed.
* src/sysdep.c, src/systty.h (emacs_get_tty): Return int, not void.
* src/sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
* src/w32.c (pipe2): Adjust eassert to include O_BINARY.

Fixes: debbugs:18006
2014-07-14 12:23:18 -07:00
Paul Eggert a705278de7 * make-docfile.c: Simplify a bit, to simplify further refactoring.
(outfile): Remove static var.  All uses changed to use stdout,
since it's always stdout anyway.  While we're at it, prefer
putchar/puts/fputs to printf when there are no format strings.
(main): Use freopen rather than fopen, so that stdout is reused.
Move O_BINARY stuff after the freopen, so it affects the
reopened file.
(write_c_args): Omit first arg, since it's always stdout now.
All uses changed.
2014-07-13 17:45:19 -07:00
Glenn Morris b39c4d7b33 Merge from emacs-24; up to 2014-06-22T05:00:14Z!dmantipov@yandex.ru 2014-07-12 10:53:29 -07:00
Paul Eggert fb02552638 * etags.c (Lisp_functions): Also record cl-defun etc.
Fixes: debbugs:17965
2014-07-12 09:26:54 -07:00
Glenn Morris a210e783c4 lib-src/Makefile trivial simplifications
* lib-src/Makefile.in (blessmail): Depend on lisp/mail/blessmail.el.
Use $<, $@.
(regex.o, etags${EXEEXT}, ctags${EXEEXT}, ebrowse${EXEEXT})
(profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
(pop.o, emacsclient${EXEEXT}, emacsclientw${EXEEXT}, ntlib.o)
(hexl${EXEEXT}, update-game-score${EXEEXT}, emacsclient.res): Use $<.
(ctags${EXEEXT}): Add $srcdir to dependency rather than using VPATH.
2014-06-25 23:18:53 -07:00
Paul Eggert 73bfe891e2 Omit redundant extern decls.
Most of this patch is from Dmitry Antipov, in:
http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
* configure.ac (WERROR_CFLAGS): Add -Wredundant-decls.
* lib-src/emacsclient.c (getenv): Remove decl.
* lib-src/make-docfile.c (write_globals): Add ATTRIBUTE_CONST for
Fbyteorder, Ftool_bar_height, Fmax_char, Fidentity.
* lwlib/lwlib-Xm.c (lw_motif_widget_p, xm_update_one_value)
(xm_create_dialog, xm_destroy_instance, xm_popup_menu)
(xm_set_keyboard_focus, xm_set_main_areas): Remove decls.
* src/commands.h (update_mode_lines):
* src/frame.h (Qbackground_color, Qforeground_color)
(x_set_menu_bar_lines):
* src/ftfont.c (ftfont_font_format):
* src/intervals.h (Qkeymap, Qfont):
* src/keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
* src/lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
(Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
(Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
(Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
(Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
(Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
(Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
(char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
(Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
(Qtool_bar, Qheader_line):
* src/macros.c (Fexecute_kbd_macro):
* src/xdisp.c (Ftool_bar_height, Ftool_bar_height):
* src/xterm.c (x_delete_terminal, XSetIMValues):
* src/xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
(x_implicitly_set_name, popup_activated)
(widget_store_internal_border):
Remove redundant decls.
* src/frame.c [USE_X_TOOLKIT]: Include widget.h.
* src/keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
Remove _Noreturn, as make-docfile now does that for us.
* src/lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
(Qregion_extract_function): New decl.
* src/window.c, src/xfns.c: Include menu.h.
2014-06-17 09:09:19 -07:00
Glenn Morris 8c39c6685e Makefile comments 2014-06-15 15:42:31 -07:00
Glenn Morris b24ffa815c Explicitly set LDFLAGS in some sub-Makefiles
* lib-src/Makefile.in (LDFLAGS): Explicitly set via configure.

* nt/Makefile.in (LDFLAGS): Explicitly set via configure.
2014-06-15 10:45:38 -07:00
Eli Zaretskii 9fae211dbf Fix MS-Windows build broken by latest Makefile.in changes.
nt/Makefile.in (CPPFLAGS): Define.

 lib-src/Makefile.in (CPPFLAGS): Define.
2014-06-15 20:36:04 +03:00
Glenn Morris 0d9f81376b Use make -C' rather than cd && make'
* Makefile.in: Use `make -C' rather than `cd && make' throughout.

* lib-src/Makefile.in (../lib/libgnu.a): Use `make -C' rather than `cd && make'.

* lisp/Makefile.in (leim, semantic): Use `make -C' rather than `cd && make'.

* lwlib/Makefile.in ($(globals_h)): Use `make -C' rather than `cd && make'.

* src/Makefile.in: Use `make -C' rather than `cd && make' throughout.
2014-06-14 17:34:22 -07:00
Glenn Morris 0e6929ecab Parallelize clean rules using GNU make features
* Makefile.in: (submake_template): New definition.
(mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs):
New variables.
(mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean)
(extraclean): Define using each subdirectory as a prequisite.

* lib/Makefile.am (bootstrap-clean):
* doc/emacs/Makefile.in (bootstrap-clean):
* doc/lispintro/Makefile.in (bootstrap-clean):
* doc/lispref/Makefile.in (bootstrap-clean):
* doc/misc/Makefile.in (bootstrap-clean):
* lib-src/Makefile.in (bootstrap-clean):
* lwlib/Makefile.in (bootstrap-clean):
* nextstep/Makefile.in (bootstrap-clean):
* nt/Makefile.in (bootstrap-clean):
* oldXMenu/Makefile.in (bootstrap-clean):
New rules, for symmetry/simplicity.

* lwlib/Makefile.in (mostlyclean, clean, distclean, maintainer-clean):
* oldXMenu/Makefile.in (mostlyclean, clean, distclean, maintainer-clean, tags):
Declare as PHONY.
2014-06-14 17:17:21 -07:00
Glenn Morris f9d80c5110 With GNU make, MFLAGS is not needed
* Makefile.in (CC, CFLAGS, LDFLAGS, CPPFLAGS, abs_top_srcdir):
Remove, no longer used.
(lib, lib-src, lisp, nt, src, blessmail, install-arch-dep)
(install-nt, install-strip, uninstall, uninstall-nt)
(mostlyclean, clean, distclean, bootstrap-clean)
(maintainer-clean, extraclean, TAGS, tags, check, $(DOCS)):
($(INSTALL_DOC), $(UNINSTALL_DOC), info, bootstrap, check-declare):
GNU make automatically passes command-line arguments to sub-makes.

* admin/unidata/Makefile.in (${DSTDIR}/charprop.el):
GNU make automatically passes command-line arguments to sub-makes.

* lib-src/Makefile.in (../lib/libgnu.a):
GNU make automatically passes command-line arguments to sub-makes.

* lisp/Makefile.in ($(lisp)/cus-load.el, $(lisp)/finder-inf.el)
(autoloads, $(lisp)/subdirs.el, compile-main, leim, semantic, compile)
(compile-always): GNU make automatically passes
command-line arguments to sub-makes.

* lwlib/Makefile.in ($(globals_h)):
GNU make automatically passes command-line arguments to sub-makes.

* src/Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
($(lispsource)/international/charprop.el)
($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
GNU make automatically passes command-line arguments to sub-makes.

* test/automated/Makefile.in (compile-main):
GNU make automatically passes command-line arguments to sub-makes.
2014-06-13 19:05:00 -04:00
Eli Zaretskii 9aecbeb308 Minor fixes for MS-Windows MinGW64 build.
src/w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.

 lib-src/ntlib.h (lseek): Don't redirect to _lseek.
2014-05-26 19:55:28 +03:00
Glenn Morris 015936fba1 Merge from emacs-24; up to 2014-05-26T10:21:18Z!rgm@gnu.org 2014-05-25 19:28:09 -07:00
Paul Eggert d352738b8b Fix rcs2log problems with CVS.
Problem reported by Glenn Morris in
<http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00277.html>.
Plus, fix some security and filename quoting problems.
* rcs2log (logdir): Prefer mktemp if available.
(logdir, llogdir): Work even if TMPDIR begins with '-' or has spaces.
(output_authors, main awk script): Parse more-recent CVS output format.
2014-05-20 00:59:28 -07:00
Paul Eggert 60fc70a8e0 Remove dependencies on getdelim and getline.
Also, remove update-game-scores's limits on game scores and
simplify its file-locking code.
* configure.ac (getdelim, getline): Remove.
* lib-src/update-game-score.c (struct score_entry): Unify the username and
data members to a single user_data member, since they don't need to be
changed independently and getdelim and getline aren't helpful.
Make the score member char *, not intmax_t, so that scores are not
limited to intmax_t.  All uses changed.
(lose_syserr): A zero errno stands for invalid data in score file.
(normalize_integer): New function.
(main): Use it.  Check for invalid scores.  Omit redundant stat check.
(read_score): First arg is now a string, not a FILE *.  All uses
changed.  Do not use getdelim or getline; that's way simpler.
(read_scores): Read the whole file, and let read_score handle each
line.
(score_compare): Compare strings representing integers, not integers.
(write_scores) [DOS_NT]: Eliminate unnecessary chmod.
(lock_file): Simplify locking code, eliminating goto.
Check for unlink failure.
2014-05-18 21:56:03 -07:00
Paul Eggert 5eda3a7516 Port ctags+etags build to Sun C 5.12.
* .bzrignore: Remove lib-src/ctags.c.
* lib-src/Makefile.in (etags_args): Remove, replacing with ...
(etags_cflags, etags_libs): New macros.  All uses changed.
(ctags${EXEEXT}): Don't compile etags.c, as compiling etags.c in
parallel (once for ctags, once for etags) breaks parallel makes
with compilers that use the source file name to name temporaries,
such as Sun C 5.12.  Instead, compile ctags.c.
* lib-src/ctags.c: New file.
2014-05-18 11:57:04 -07:00
Glenn Morris fb3f83f5fd Merge from emacs-24; up to 2014-05-08T03:34:20Z!rgm@gnu.org 2014-05-07 20:41:21 -07:00
Samuel Bronson 8e102bcc97 * src/keyboard.c (Frecursive_edit): Ensure inc&dec of command_loop_level
are matched.

Fixes: debbugs:17413
2014-05-06 12:16:57 -04:00
Paul Eggert 3e9fa60a5c Merge from emacs-24; up to 2014-05-04T21:18:30Z!eggert@cs.ucla.edu 2014-05-04 12:37:56 -07:00
Paul Eggert d355cad6b7 Handle systems without WCONTINUED consistently.
* lib-src/emacsclient.c (WCONTINUED): Move to ../src/syswait.h.
* src/process.c (handle_child_signal): Remove WCONTINUED ifdef,
because WCONTINUED is always defined now.
* src/syswait.h (WCONTINUED): Move here from ../lib-src/emacsclient.c.

Fixes: debbugs:15110 debbugs:17339
2014-05-03 13:13:10 -07:00
Juanma Barranquero 09b911adf4 Merge from emacs-24; up to 2014-05-01T10:21:17Z!rgm@gnu.org 2014-04-30 21:54:52 +02:00
Glenn Morris 7ac903abc8 * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): Avoid non-portable "`\" nesting
Fixes: debbugs:17339
2014-04-29 07:54:58 -07:00
Paul Eggert 290d7ac277 Merge from emacs-24; up to 2014-04-16T15:28:26Z!monnier@iro.umontreal.ca 2014-04-16 12:43:46 -07:00
Eli Zaretskii bf6b4923f7 Fix the MSDOS build.
src/unexcoff.c [MSDOS]: Include libc/atexit.h.
 (copy_text_and_data): Zero out the atexit chain pointer before
 dumping Emacs.
 src/termhooks.h (encode_terminal_code): Update prototype.
 src/term.c (encode_terminal_code) [DOS_NT]: Make it externally
 visible for all DOS_NT ports, not just WINDOWSNT.
 (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
 src/sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
 unless it is defined.
 (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
 src/process.c (close_on_exec, accept4, process_socket): Move into
 the "ifdef subprocesses" part.
 (catch_child_signal): Condition by "ifdef subprocesses".
 (syms_of_process) <Qinternal_default_process_sentinel>
 <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
 src/msdos.h: Add prototypes for new functions.
 (EINPROGRESS): Define.
 (O_CLOEXEC): Define to zero.
 src/msdos.c (check_window_system): Remove unnecessary an
 incompatible duplicate function.
 (sys_opendir, readlinkat, faccessat, fstatat, unsetenv): New
 functions in support of new functionality.
 src/menu.c (single_menu_item): Add visual indication  of submenu
 also for menus on MSDOS frames.
 (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
 src/lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
 when async subprocesses aren't supported.
 src/font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
 src/emacs.c (close_output_streams): Zero out errno before calling
 close_stream.
 src/dired.c [MSDOS]: Include msdos.h.
 src/conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
 (DATA_START) [MSDOS]: Define.
 (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
 src/callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
 Ifdef away for MSDOS.
 (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
 (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
 for MSDOS.
 (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
 Use temporary file template that is compatible with mkostemp.
 Move vfork-related portions under #ifndef MSDOS.
 (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.

 lisp/term/pc-win.el (x-list-fonts, x-get-selection-value): Provide
 doc strings, as required by snarf-documentation.

 msdos/sedlisp.inp:
 msdos/sedlibmk.inp:
 msdos/sedleim.inp:
 msdos/sed3v2.inp:
 msdos/sed2v2.inp:
 msdos/sed1v2.inp: Update Sed scripts for Emacs 24.4.
 msdos/inttypes.h: Add PRIdMAX.
 msdos/INSTALL: Update for Emacs 24.4.
 msdos/sedadmin.inp: New file.
2014-04-16 16:27:28 +03:00
Glenn Morris 10211d43fa Reduce duplication in lib-src etags/ctags rules
* lib-src/Makefile.in (etags_deps, etags_args): New, to reduce duplication.
(etags${EXEEXT}, ctags${EXEEXT}): Use etags_deps, etags_args.
2014-03-22 16:08:41 -07:00
Glenn Morris df199e5601 Use $@ more in lib-src/Makefile.in
* lib-src/Makefile.in (etags${EXEEXT}, ebrowse${EXEEXT}, ctags${EXEEXT})
(profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
(emacsclient${EXEEXT}, emacsclientw${EXEEXT}, hexl${EXEEXT})
(update-game-score${EXEEXT}, emacsclient.res): Use $@.
2014-03-22 16:06:29 -07:00
Glenn Morris 01b0f2f4b1 * lib-src/Makefile.in (../lib/libgnu.a): Explicitly pass MFLAGS. 2014-03-22 16:02:13 -07:00
Glenn Morris 7cd431112c Remove lib-src/test-distrib.c and related
The class of problems that this was designed to detect, namely .elc
files getting corrupted by being passed around by email via uuencode
or somesuch, has not been a relevant concern for many years.

* lib-src/test-distrib.c, lib-src/testfile: Remove.

* lib-src/Makefile.in (DONT_INSTALL): Remove test-distrib.
(test-distrib${EXEEXT}): Remove rule.

* make-dist: Do not distribute lib-src/testfile.

* admin/quick-install-emacs (AVOID): Remove testfile and test-distrib.

* INSTALL, etc/PROBLEMS, admin/notes/unicode:
Remove references to test-distrib and testfile.
2014-03-22 15:52:47 -07:00
Juanma Barranquero f11352e68b lib-src/emacsclient.c (main): #ifdef out previous change on Windows. 2014-03-10 01:09:30 +01:00
Paul Eggert d050de754c Fix emacsclient terminal corruption when in background.
* emacsclient.c (handle_sigcont): Check for tcgetpgrp failure.
Cancel the continue only if tty.  Send SIGTTIN to the process
group, not SIGSTOP to self, as this is what the glibc manual
recommends.
(main): If tty, and if started in the background, send SIGTTIN
to the process group.

Fixes: debbugs:16892
2014-03-09 15:38:15 -07:00
Juanma Barranquero 35e951cd4b */ChangeLog: Trivial fixes. 2014-03-03 05:57:26 +01:00
Paul Eggert 591debed68 Fix emacsclient's handling of SIGCONT.
* emacsclient.c (handle_sigcont): Cancel the continue only if tty.

Fixes: debbugs:16883
2014-02-25 11:06:53 -08:00
Juanma Barranquero c295fc18e3 Fix typos in Changelogs. 2014-02-13 03:19:48 +01:00
Paul Eggert 6c9cbdf04f Document 2014-01-22T19:02:41Z!eggert@cs.ucla.edu better. 2014-01-23 09:59:46 -08:00
Eli Zaretskii 7a49c9d615 Fix MS-Windows build in lib-src broken by last commit.
lib-src/update-game-score.c (write_scores) [WINDOWSNT]: Use chmod
 instead of fchmod.
2014-01-22 21:38:31 +02:00
Paul Eggert dc217d0180 Fix miscellaneous update-game-score bugs.
* configure.ac (difftime): Remove.
* lib/update-game-score.c (difftime) [!HAVE_DIFFTIME]: Remove.
(read_score) [HAVE_GETDELIM]: Don't access uninitialized storage.
(read_scores, write_scores): Check for fclose failure.
(write_scores): Use fchmod, not chmod, to avoid a race.
(lock_file): Fix test for out-of-date lock file; it was reversed.
Use ordinary subtraction rather than difftime; since we're already
assuming POSIX we don't need to worry about the possibility of
time_t being a magic cookie.
2014-01-22 11:02:41 -08:00
Glenn Morris 7bfc1caa62 Unduplicate the lib-src/ and etc/ ChangeLogs
* lisp/emacs-lisp/authors.el (authors-valid-file-names): Related additions.
2014-01-21 21:44:44 -05:00
Glenn Morris 38942b9cf5 ChangeLog fixes 2014-01-21 00:49:46 -08:00
Paul Eggert d70efef4a8 update-game-score fixes for -m and integer overflow
* update-game-score.c: Include inttypes.h, stdbool.h.
(min): New macro, if not already defined.
(MAX_SCORES, main): Limit the maximum number of scores only from
limits imposed by the underyling platform, instead of the
arbitrary value 200.
(struct score_entry, main, read_score, write_score):
Scores are now intmax_t, not long.
(get_user_id): Reject user names containing spaces or newlines,
as they would mess up the score file.
Allow uids that don't fit in 'long'.
Increase the size of the buffer, to avoid overrun in weird cases.
(get_prefix, main): Use bool for boolean.
(main): Rewrite expr to avoid possibility of signed integer
overflow.  Don't allow newlines in data, as this would mess up
the score file.  Check for memory allocation failure when adding
the new score, or when unlockint the file.  Implement -m.
(read_score): Check for integer overflow when reading a score.
(read_score) [!HAVE_GETDELIM]: Check for integer overflow when
data gets very long.  Check only for space to delimit names,
since that's what's done in the HAVE_GETDELIM case.
(read_scores): New parameter ALLOC.  Change counts to ptrdiff_t.
All uses changed.  Use push_score to add individual scores;
that's simpler than repeating its contents.
(score_compare_reverse): Simplify.
(push_score): New parameter SIZE.  Change counts to ptrdiff_t.
All uses changed.  Check for integer overflow of size calculation.
(sort_scores, write_scores): Change counts to ptrdiff_t.
(unlock_file): Preserve errno on success, so that storage
exhaustion is diagnosed correctly.

Fixes: debbugs:16428
2014-01-19 00:50:53 -08:00
Glenn Morris d967cd184c ChangeLog fixes 2014-01-16 00:34:43 -08:00
Paul Eggert c91c771dbe Spelling fixes. 2014-01-15 22:24:06 -08:00
Paul Eggert da5ecfa9b9 Spelling fixes.
* lib-src/Makefile.in (regex.o): Remove reference to no-longer-used macros
CONFIG_BROKETS and INHIBIT_STRING_HEADER.  "BROKETS" was a
misspelling anyway....
* src/nsterm.h (updateCollectionBehavior): Rename from
updateCollectionBehaviour.  All uses changed.
2014-01-04 18:56:08 -08:00
Paul Eggert 6bc383b1a4 Fix copyright years by hand.
These are dates that admin/update-copyright did not update,
or updated incorrectly.
2014-01-01 00:31:29 -08:00
Paul Eggert ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Paul Eggert 96c0686368 Use bool for boolean, focusing on headers.
* configure.ac (PTY_OPEN, GC_MARK_SECONDARY_STACK):
Use bool for boolean.
* lib-src/emacsclient.c, lib-src/etags.c, lib-src/hexl.c (FALSE, TRUE):
Remove.  All uses replaced with uncapitalized version.
* lib-src/emacsclient.c (message):
* lib-src/etags.c (make_tag, pfnote, consider_token, make_C_tag, lang_names):
* lib-src/hexl.c (un_flag, iso_flag, endian):
* lib-src/pop.c (pop_debug, pop_open, pop_multi_first, pop_multi_next)
(pop_trash):
Use bool for boolean.
* lib-src/etags.c (bool): Remove.
* lib-src/etags.c (globals, members, declarations, no_line_directive)
(no_duplicates): Use 'int' for boolean values that getopt requires
to be 'int'.  Formerly, these were 'bool' and 'bool' was 'int',
but we can no longer rely on this implementation.
* lib-src/pop.h (struct _popserver): Use bool_bf for boolean bit-fields.
* lwlib/xlwmenuP.h (XlwMenu_part): Use bool_bf for boolean bit-fields.
* src/atimer.h, src/lisp.h, src/syssignal.h, src/syswait.h, src/unexelf.c:
No need to include <stdbool.h>, since conf_post.h does it now.
* src/buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
(BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
(SET_PER_BUFFER_VALUE_P):
* src/ccl.c, src/ccl.h (setup_ccl_program):
* src/ccl.h (CHECK_CCL_PROGRAM):
* src/character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
(CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
(PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
(FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
(FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
(FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
(DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
* src/charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
(CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
(CHARSET_FAST_MAP_SET):
* src/coding.c (decode_coding_ccl, encode_coding_ccl):
* src/coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
(CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
(JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
(ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
(decode_coding_c_string):
* src/composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
* src/conf_post.h (has_attribute):
* src/dispextern.h (trace_redisplay_p):
(INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
(SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
(SET_GLYPH_FROM_CHAR_GLYPH):
(WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
(FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
(PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
(cursor_in_mouse_face_p):
* src/dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
(blank_row, prepare_desired_row)
(build_frame_matrix_from_leaf_window, make_current)
(mirror_make_current, mirrored_line_dance, mirror_line_dance)
(update_window, scrolling_window, update_frame_line):
* src/disptab.h (GLYPH_FOLLOW_ALIASES):
* src/editfns.c (Fformat):
* src/font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
(FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
(FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
(FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
(FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
(CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
(FONT_DEFERRED_LOG):
* src/frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P):
(FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
(FRAME_MOUSE_UPDATE):
* src/fringe.c (Fdefine_fringe_bitmap):
* src/image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
(x_create_bitmap_from_xpm_data, xpm_load_image):
* src/intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
(set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
(MERGE_INTERVAL_CACHE):
* src/keymap.h (KEYMAPP):
* src/lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
(STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
(CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
(CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
(DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
(DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
(RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
(SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
* src/syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
(SETUP_BUFFER_SYNTAX_TABLE):
* src/systime.h (timespec_valid_p):
* src/term.c (save_and_enable_current_matrix):
* src/window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
* src/xdisp.c (in_display_vector_p, display_tool_bar_line)
(redisplay_internal, try_window_reusing_current_matrix)
(sync_frame_with_window_matrix_rows, try_window_id)
(display_menu_bar, display_tty_menu_item, display_mode_line)
(coords_in_mouse_face_p, cursor_in_mouse_face_p):
* src/xmenu.c (xmenu_show):
* src/xterm.c (use_xim, x_term_init):
* src/xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
(struct x_bitmap_record):
Use bool for booleans.
* src/ccl.c (struct buffer_text):
* src/ccl.h (struct ccl_program):
* src/charset.h (struct charset):
* src/cm.h (struct cm):
* src/coding.h (struct iso_2022_spec, struct coding_system):
* src/dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
(struct glyph_string, struct face, struct face_cache)
(struct bidi_string_data, struct bidi_it)
(struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
(struct image):
* src/editfns.c (Fformat):
* src/frame.h (struct frame):
* src/fringe.c (struct fringe_bitmap):
* src/intervals.h (struct interval):
* src/keyboard.h (struct kboard):
* src/lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
(struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
(struct Lisp_Buffer_Local_Value, union specbinding):
* src/macfont.m (struct macfont_info):
* src/process.h (struct Lisp_Process):
* src/termchar.h (struct tty_display_info):
* src/window.h (struct window):
* src/xterm.h (struct x_output):
Use bool_bf for boolean bit-fields.
* src/ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
All callers changed.
* src/ccl.h (struct ccl_program): Remove unused members private_state,
src_multibyte, dst_multibyte, cr_consumed, suppress_error,
eight_bit_control.
(struct ccl_spec): Remove unused members cr_carryover,
eight_bit_carryover.
* src/conf_post.h: Include <stdbool.h>.
(bool_bf): New type.
* src/dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
* src/interval.h (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE)
Surround statement macro with proper 'do { ... } while (false)' brackets.
(SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
(PRODUCE_GLYPHS): Simplify use of boolean.
* src/fileio.c (Fcopy_file):
If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
* src/lisp.h (UNGCPRO): Return void, not int.
(FOR_EACH_TAIL): Use void expression, not int expression.
* src/region-cache.c: Reindent.
* src/region-cache.h: Copy comments from region-cache.c, to fix
incorrect remarks about booleans.
2013-12-14 13:36:44 -08:00
Paul Eggert d672ac3c61 Prefer tail calls.
* lib-src/ebrowse.c (xstrdup):
* lib-src/etags.c (savenstr):
* lwlib/lwlib.c (safe_strdup):
* src/xfns.c (xic_create_fontsetname):
* src/xrdb.c (gethomedir): Prefer tail calls.
* lib-src/etags.c (concat): Omit unnecessary assignment.
2013-11-13 17:52:18 -08:00
Glenn Morris 357a508109 Avoid non-portable " ... \"...\" ... " nesting
* configure.ac:
* Makefile.in (install-arch-indep, install-etcdoc, install-info):
* lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
* nt/Makefile.in ($(DESTDIR)${archlibdir}):
Avoid non-portable "`\" nesting.
2013-10-24 19:04:33 -04:00
Glenn Morris 11e5e2eba1 Fix whitespace in previous Makefile.in changes 2013-10-23 21:05:54 -07:00
Glenn Morris eb9a36619e Attempt at a fix for mingw CPPFLAGS
* configure.ac (CPPFLAGS) [mingw32]: Use abs_top_srcdir.

* Makefile.in (abs_top_srcdir):
* lib-src/Makefile.in (abs_top_srcdir):
* lwlib/Makefile.in (abs_top_srcdir):
* nt/Makefile.in (abs_top_srcdir):
* oldXMenu/Makefile.in (abs_top_srcdir):
* src/Makefile.in (abs_top_srcdir):
New, set by configure.
2013-10-23 19:15:16 -07:00
Glenn Morris 48f73cfbf3 Progress towards allowing installation in directories with whitespace
* Makefile.in (COPYDESTS, write_subdir, install-arch-dep)
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc, uninstall): Quote entities that might contain whitespace.

* build-aux/update-subdirs: Handle whitespace in argument.
Check cd return value.

* doc/emacs/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispintro/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispref/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/misc/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install)
(uninstall): Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall):
Quote entities that might contain whitespace.
2013-10-23 00:20:57 -07:00
Glenn Morris b8e3b0a9ec Make building in directories with whitespace possible
Make has trouble with targets containing whitespace, 
http://savannah.gnu.org/bugs/?712, so the general approach is
to use relative paths where possible.  It's generally only Emacs
itself that needs absolute paths, eg in src/epaths.h.

* configure.ac (srcdir): Don't make it absolute - abs_srcdir exists.

* Makefile.in (abs_srcdir): New, set by configure.
(buildlisppath): Use abs_srcdir.
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc): Quote entities that might contain whitespace.

* admin/unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
Quote entities that might contain whitespace.

* leim/Makefile.in (abs_srcdir): New, set by configure.
(buildlisppath): Use abs_srcdir.
(RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el)
($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare):
Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
Quote entities that might contain whitespace.

* lisp/Makefile.in (abs_srcdir, abs_lisp): New, set by configure.
(emacs, compile, compile-always):
Quote entities that might contain whitespace.
(custom-deps, finder-data, autoloads): Use abs_lisp.
($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el)
($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el)
($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name.

* nextstep/Makefile.in (${ns_check_file} ${ns_appdir}):
Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}):
Quote entities that might contain whitespace.

* src/Makefile.in (RUN_TEMACS): Make relative (again).
($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
(bootstrap-emacs$(EXEEXT)):
Quote entities that might contain whitespace.

* test/automated/Makefile.in (abs_top_srcdir, top_builddir):
New, set by configure.
(top_srcdir): Remove.
(abs_test, abs_lispsrc): New.
(lisp): No longer absolute.
(emacs, lisp-compile, compile, compile-always):
Quote entities that might contain whitespace.

Fixes: debbugs:15675
2013-10-22 23:22:54 -07:00
Glenn Morris 4b5a548d59 * lib-src/make-docfile.c (search_lisp_doc_at_eol): Use int rather than char
with getc.

Fixes: debbugs:15481
2013-10-09 21:29:30 -04:00
Paul Eggert 00382e8b98 A simpler, centralized INLINE.
* lib-src/profile.c (INLINE): New macro.
(SYSTIME_INLINE): Remove.
* src/conf_post.h (INLINE): Define only if not already defined.
This allows us to use a single INLINE, defined by one file
per executable.
* src/emacs.c (INLINE): Define it.
Also, include category.h, charset.h, composite.h, dispextern.h,
syntax.h, systime.h, so that their INLINE definitions are expanded
properly for Emacs.
* src/blockinput.h, src/keyboard.c (BLOCKINPUT_INLINE):
* src/buffer.h, src/buffer.c (BUFFER_INLINE):
* src/category.h, src/category.c (CATEGORY_INLINE):
* src/character.h, src/character.c (CHARACTER_INLINE):
* src/charset.h, src/charset.c (CHARSET_INLINE):
* src/composite.h, src/composite.c (COMPOSITE_INLINE):
* src/dispextern.h, src/dispnew.c (DISPEXTERN_INLINE):
* src/frame.h, src/frame.c (FRAME_INLINE):
* src/intervals.h, src/intervals.c (INTERVALS_INLINE):
* src/keyboard.h, src/keyboard.c (KEYBOARD_INLINE):
* src/lisp.h, src/alloc.c (LISP_INLINE):
* src/process.h, src/process.c (PROCESS_INLINE):
* src/syntax.h, src/syntax.c (SYNTAX_INLINE):
* src/systime.h, src/sysdep.c (SYSTIME_INLINE):
* src/termhooks.h, src/terminal.h (TERMHOOKS_INLINE):
* src/window.h, src/window.c (WINDOW_INLINE):
Remove.  All uses replaced with INLINE.
2013-09-20 08:34:36 -07:00
Paul Eggert 50b13cdedb * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
for portability to hosts where /bin/sh has problems.
2013-08-27 23:01:52 -07:00
Paul Eggert 43aac990c3 Simplify EMACS_TIME-related code.
This portability layer is no longer needed, since Emacs has been
using struct timespec as a portability layer for some time.
Merge from gnulib, incorporating:
2013-08-27 timespec: new convenience constants and function
* src/atimer.h, src/buffer.h, src/dispextern.h, src/xgselect.h:
Include <time.h> rather than "systime.h"; that's all that's needed now.
* src/dispnew.c: Include <timespec.h> rather than "systime.h";
that's all that's needed now.
* src/systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
(EMACS_TIME_RESOLUTION): Remove.  All uses changed to
TIMESPEC_RESOLUTION.
(LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
LOG10_TIMESPEC_RESOLUTION.
(EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
(EMACS_NSECS): Remove.  All uses changed to tv_nsec.
(make_emacs_time): Remove.  All used changed to make_timespec.
(invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
(current_timespec): Rename from current_emacs_time.  All uses changed.
(add_emacs_time): Remove.  All uses changed to timespec_add.
(sub_emacs_time): Remove.  All uses change dot timespec_sub.
(EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
(timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
(EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
(EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
(current_timespec): Rename from current_emacs_time.  All uses changed.
(EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
changed to timespec_cmp.
* src/xgselect.c: Include <timespec.h>, since our .h files don't.
2013-08-27 11:47:55 -07:00
Eli Zaretskii d4166523bc Provide a Windows manifest for update-game-score.exe.
lib-src/update-game-score.exe.manifest: New file.
 lib-src/Makefile.in (UPDATE_MANIFEST): New variable.
 (SCRIPTS): Add $(UPDATE_MANIFEST).

 configure.ac: Define and substitute UPDATE_MANIFEST.
2013-08-10 10:43:41 +03:00
Stefan Monnier dc6c0edad7 Revert introduction of isearch-filter-predicates.
Rely on add-function instead.
* lisp/loadup.el: Preload nadvice.
* lisp/isearch.el (isearch-filter-predicates): Rename it back to
isearch-filter-predicate.
(isearch-message-prefix): Use advice-function-mapc and advice
properties to get the isearch-message-prefix.
(isearch-search, isearch-lazy-highlight-search): Revert to funcall
instead of run-hook-with-args-until-failure.
(isearch-filter-visible): Not obsolete any more.
* lisp/replace.el (perform-replace): Revert to funcall
instead of run-hook-with-args-until-failure.
* lisp/wdired.el (wdired-change-to-wdired-mode): Use add-function.
* lisp/dired-aux.el (dired-isearch-filenames-mode): Rename from
dired-isearch-filenames-toggle; make it into a proper minor mode.
Use add/remove-function.
(dired-isearch-filenames-setup, dired-isearch-filenames-end):
Call the minor-mode rather than add/remove-hook.
(dired-isearch-filter-filenames):
Remove isearch-message-prefix property.
* lisp/info.el (Info--search-loop): New function, extracted from Info-search.
Funcall isearch-filter-predicate instead of
run-hook-with-args-until-failure isearch-filter-predicates.
(Info-search): Use it.
(Info-mode): Use isearch-filter-predicate instead of
isearch-filter-predicates.
* src/lisp.mk (lisp): Add nadvice.elc.
* lib-src/makefile.w32-in (lisp2): Add nadvice.elc.

Fixes: debbugs:14714
2013-08-05 14:05:46 -04:00
Eli Zaretskii 98a428c15a Fix bugs in update-game-score, on MS-Windows and elsewhere.
lib-src/update-game-score.c (read_score): Try reading a character before
 probing the stream for EOF.  Initialize score->score to zero,
 before reading and accumulating the score.
 (read_scores): Fix logic that determines which value to return.
 Close the input stream when finished reading the scores (avoids
 failures in overwriting the file with a new one on MS-Windows,
 since a file that is open cannot be deleted).
 lib-src/ntlib.h (rename): Don't undefine.
 lib-src/ntlib.c (sys_rename): New function, needed for
 update-game-score.
2013-08-05 20:09:28 +03:00
Eli Zaretskii e443729d65 MS-Windows followup to last commit.
lib-src/ntlib.h: Include fcntl.h.
 (mkostemp): Declare prototype.
 (mktemp): Don't redefine.
 lib-src/ntlib.c (mkostemp): New function.

Fixes: debbugs:15015
2013-08-04 20:52:25 +03:00
Paul Eggert e0fdb69430 Fix some minor races in hosts lacking mkostemp.
Gnulib's emulation of mkostemp doesn't have races that Emacs's does.
* configure.ac (mkostemp): Remove check for this function;
gnulib does the check now.
(mkstemp): Remove check for this no-longer-used function.
* lib/mkostemp.c, lib/secure_getenv.c, lib/tempname.c, lib/tempname.h:
* m4/mkostemp.m4, m4/secure_getenv.m4, m4/tempname.m4:
New files, copied from Gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Add mkostemp.
* lib-src/movemail.c (main):
* lib-src/update-game-score.c (write_scores):
Use mkostemp (which now works on all platforms, due to changes
in the portability layer) rather than mktemp (which has a race)
or mkstemp (which we no longer bother with).
* src/callproc.c (create_temp_file):
* src/filelock.c (create_lock_file):
Assume mkostemp, since it's now provided by Gnulib.

Fixes: debbugs:15015
2013-08-04 09:56:56 -07:00
Glenn Morris bbece175c9 Use a @configure_input@ comment at the start of generated Makefiles 2013-07-23 18:57:17 -04:00
Paul Eggert 29abe551a0 Port to C89.
* lib-src/ebrowse.c (USAGE): Remove macro with too-long string literal ...
(usage_message): ... and replace it with this new static constant
containing multiple literals.  All uses changed.
* lib-src/emacsclient.c (print_help_and_exit):
Rewrite to avoid string literals longer than the C89 limits.
(start_daemon_and_retry_set_socket):
Rewrite to avoid non-constant array initializer.
* lib-src/make-docfile.c (enum global_type): Omit trailing comma.
* src/bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
(B__dummy__): New dummy symbol, to pacify C89.
* src/dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
they can't grok varargs macros.
* src/dispnew.c (add_window_display_history)
(add_frame_display_history):
* src/print.c (print_object):
* src/xdisp.c (debug_method_add):
Use %p printf format only for void pointers.
* src/emacs.c (usage_message): New constant, replacing ...
(USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
(main): Adjust to usage reorg.
* src/fns.c (syms_of_fns):
* src/profiler.c (syms_of_profiler):
Don't use non-constant struct initializers.
* src/gnutls.h (gnutls_initstage_t):
* src/lisp.h (enum Lisp_Fwd_Type):
* src/lread.c (lisp_file_lexically_bound_p):
* src/xsettings.c (anonymous enum):
Remove trailing comma.
* src/xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
* src/lisp.h (ENUM_BF): Use unsigned if pedantic.
(DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
(DEFUN): Use it.
* src/regex.c (const_re_char): New type, to pacify strict C89.
All uses of 'const re_char' replaced to use it.
* src/regex.h (_Restrict_): Rename from __restrict, to avoid clash
with glibc when strict C89.  This change is imported from gnulib.
All uses changed.
(_Restrict_arr_): Rename from __restrict_arr, similarly.
* src/sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
Omit GNU_LINUX implementation, since it requires long long.
* src/xterm.c (x_draw_underwave):
Do not assume the traditional order of struct's members.
(x_term_init): Rewrite to avoid the need for non-constant structure
initializers.
2013-07-10 16:23:57 -07:00
Juanma Barranquero 5165d44a78 ChangeLog fixes. 2013-07-08 01:05:52 +02:00
Paul Eggert 57f8c49045 Remove some unused macros from 'configure'.
* configure.ac (HAVE_SOUNDCARD_H, HAVE_LINUX_VERSION_H, HAVE_SPEED_T)
(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY)
(HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION, HAVE_UTIMES)
(HAVE_LIBHESIOD, HAVE_LIBRESOLV, HAVE_LIBCOM_ERR, HAVE_LIBCRYPTO)
(HAVE_LIBK5CRYPTO, HAVE_LIBKRB5, HAVE_LIBDES425, HAVE_LIBDES)
(HAVE_LIBKRB4, HAVE_LIBKRB, HAVE_DES_H, HAVE_KERBEROSIV_DES_H)
(HAVE_DEV_PTMX, DEVICE_SEP, USG5):
Remove these macros, as they are not used.
(sys_siglist): Remove macro; src/sysdep.c now does this.
* src/sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
Define to __sys_siglist.
2013-07-02 09:56:29 -07:00
Paul Eggert 37afa042f9 Fix ChangeLog dates. 2013-07-01 17:35:28 -07:00
Paul Eggert 164b1ba3f3 Prefer plain 'static' to 'static inline'.
I missed these instances of 'static inline' in an earlier sweep.
* ebrowse.c (putstr):
* etags.c (hash):
* make-docfile.c (put_char): No longer inline.
* etags.c (hash): Prefer int to unsigned when either will do.

Fixes: debbugs:12541
2013-07-01 17:33:04 -07:00
Paul Eggert b33a2a6feb * lib-src/ebrowse.c: Include <stddef.h>, needed on some platforms. 2013-06-21 13:27:13 -07:00
Paul Eggert fbe9e0b9fb Use C99-style flexible array members if available.
This avoids some subtle aliasing issues, which typically
aren't a problem with GCC but may be a problem elsewhere.
* lib-src/ebrowse.c (struct member, struct alias, struct sym):
Use FLEXIBLE_ARRAY_MEMBER.
(add_sym, add_member, make_namespace, register_namespace_alias):
Use offsetof (struct, flex_array_member), not sizeof (struct), as
that ports better to pre-C99 non-GCC.
* src/alloc.c (sdata): New typedef, replacing the old struct sdata.
It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
In either case, it uses a flexible array member rather than
the old struct hack.  All uses changed.
(SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
Adjust to sdata reorganization.
* src/alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
Use offsetof (struct, flex_array_member), not sizeof (struct), as
that ports better to pre-C99 non-GCC.
* src/chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
as the latter has changed.
* src/conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
and port better to pre-C99 GCC.
* src/image.c (struct xpm_cached_color):
* src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
(struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
Use FLEXIBLE_ARRAY_MEMBER.
* src/lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
Move decl to top level so it gets checked against implementation.
(CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
* src/w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
2013-06-21 13:11:44 -07:00
Juanma Barranquero 4f40506961 Fix typos in ChangeLogs. 2013-06-19 22:10:57 +02:00
Eli Zaretskii 38b787fa72 Remove *.res files in mostlyclean, to avoid problems with out-of-tree builds.
src/Makefile.in (mostlyclean): Remove *.res files.

 lib-src/Makefile.in (mostlyclean): Remove *.res files.

 nt/Makefile.in (emacs.res): Include srcdir when preprocessing
 resources, for out-of-tree builds.
 (mostlyclean): Remove *.res files.
2013-05-29 19:48:42 +03:00
Paul Eggert 31ff141c22 Port --enable-gcc-warnings to clang.
* configure.ac (nw): Remove obsolescent warnings.
These aren't needed for clang, or for gcc for that matter.
(emacs_cv_clang): New var, which tests for clang.
Omit warnings that clang is too picky about.
(GLIB_DISABLE_DEPRECATION_WARNINGS): Define this;
needed for Ubuntu 13.04 + clang + --enable-gcc-warnings.
* lib-src/etags.c: Omit unnecessary forward decls.
(print_version, print_help): Declare _Noreturn.
* lib-src/pop.c (socket_connection) [HAVE_GETADDRINFO]: Simplify.
* src/bytecode.c (exec_byte_code):
* src/regex.c:
Redo diagnostic pragmas to pacify clang, too.
* src/dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
* src/editfns.c (Fencode_time):
* src/fileio.c (file_accessible_directory_p):
* src/font.c (font_unparse_xlfd):
Use '&"string"[index]' instead of '"string" + (index)'.
* src/undo.c (user_error): Remove; unused.
2013-05-17 22:32:17 -07:00
Eli Zaretskii df065a0b9a Support building Emacs on MS-Windows using the Posix configury.
lib/Makefile.am: If building for MS-Windows, include
 nt/gnulib.mk instead of lib/gnulib.mk.
 configure.ac: Adapt to MSYS build on MS-Windows.
 Makefile.in (NTDIR): New variable, for the MSYS build on
 MS-Windows.
 (SUBDIR): Add $(NTDIR).
 (.PHONY): Add epaths-force-w32.
 (msys_to_w32): New variable.
 (epaths-force-w32, install-nt, uninstall-nt): New targets.
 (lib-src src): Add $(NTLIB) to prerequisites.
 (lib lib-src lisp leim nt): Add 'nt'.
 (config.status): Use $(CFG).
 (.PHONY): Add install-$(NTDIR) and uninstall-$(NTDIR).
 (install, install-arch-dep): Add install-$(NTDIR).
 (uninstall): Depend on uninstall-$(NTDIR).
 (mostlyclean, clean, distclean, bootstrap-clean): Add 'nt'.
 * GNUmakefile (CFG): New variable, uses mingw-cfg.site as
 CONFIG_SITE for the MSYS build on MS-Windows.
 (Makefile): Use $(CFG).
 .bzrignore: Ignore *.res, *.tmp, and *.map.  Remove
 src/emacs.res.

 etc/NEWS: Advertise the MSYS build on MS-Windows.

 leim/Makefile.in (leim-list.el, check-declare): Use reveal-filename.

 lib-src/update-game-score.c [WINDOWSNT]: Include "ntlib.h".
 lib-src/ntlib.h (sleep): Update prototype.
 (geteuid): Add prototype.
 lib-src/ntlib.c (sleep): Now returns an unsigned value.
 (getgid): New function.
 lib-src/Makefile.in (CLIENTW, LIB_WSOCK32, LIBS_ECLIENT, NTLIB)
 (CLIENTRES, WINDRES, NTINC, NTDEPS): New variables.
 (INSTALLABLES): Add $(CLIENTW).
 (LIBS_MOVE): Use $(LIB_WSOCK32).
 ($(DESTDIR)${archlibdir}): Use $(EXEEXT) on update-game-score.
 (test-distrib${EXEEXT}): Use $(EXEEXT) on test-distrib.
 (etags${EXEEXT}, ebrowse${EXEEXT}, ctags${EXEEXT})
 (profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
 (emacsclient${EXEEXT}, hexl${EXEEXT}, update-game-score${EXEEXT}):
 Add $(NTLIB) to prerequisites.  Use $(EXEEXT).
 (pop.o): Add pop.h to prerequisites.
 (emacsclientw${EXEEXT}, ntlib.o): New targets.
 (emacsclient.res): New target.

 lisp/subr.el (reveal-filename): New function.
 lisp/loadup.el: Compute Emacs executable versions on MS-Windows,
 where executables have the .exe extension.  Add a hard link
 emacs-XX.YY.ZZ.exe on MS-Windows.
 lisp/Makefile.in (XARGS_LIMIT): New variable.
 (custom-deps, finder-data, autoloads)
 ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el)
 ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el)
 ($(CAL_DIR)/hol-loaddefs.el): Use reveal-filename.
 (compile-main): Limit xargs according to $(XARGS_LIMIT).

 nt/msysconfig.sh: New file.
 nt/mingw-cfg.site: New file.
 nt/makefile.w32-in (LOCAL_FLAGS): Add -DOLD_PATHS=1.
 nt/inc/unistd.h: Include pwd.h and sys/types.h.
 nt/inc/sys/time.h (_TIMEVAL_DEFINED, timerisset, timercmp)
 (timerclear): Define.
 (gettimeofday): Adjust signature to be Posix compatible, by using
 the 'restrict' keyword.
 nt/inc/sys/stat.h (UTIME_NOW, UTIME_OMIT): Define.
 (struct _stat, struct _stati64): Define.
 nt/inc/sys/socket.h (timeval): Define only for MSVC.
 (FD_SET, FD_CLR, FD_ISSET, fd_set): Redefine only if
 EMACS_CONFIG_H is defined.
 (timeval): Undefine only for MSVC.
 nt/inc/ms-w32.h (HAVE___BUILTIN_UNWIND_INIT, restrict)
 (HAVE_WINDOW_SYSTEM, HAVE_MENUS, EMACS_CONFIGURATION)
 (EMACS_CONFIG_OPTIONS, HAVE_LONG_LONG_INT)
 (HAVE_UNSIGNED_LONG_LONG_INT): Define only if not already defined.
 (fileno): Move definition after including stdio.h.
 (sigset_t): Guard typedef by _W64.
 nt/gnulib.mk: New file.
 nt/epaths.nt: New file.
 nt/addpm.c [!OLD_PATHS]: Include src/epaths.h, instead of having a
 copy of the file names there.
 <env_vars> [!OLD_PATHS]: Use macros from epaths.h instead of
 literal strings.
 nt/Makefile.in: New file.
 nt/INSTALL.MSYS: New file.
 nt/INSTALL: Mention INSTALL.MSYS.

 src/w32.c: Include epaths.h.
 (init_environment): Use cmdproxy.exe without leading directories.
 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
 case.
 (gettimeofday): Adjust signature and return value to Posix
 expectations.
 src/unexw32.c (open_output_file): Delete the existing emacs.exe
 before creating it, to break the hard link to the versioned
 executable.
 src/Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
 (FIRSTFILE_OBJ): New variables.
 (W32_RES): Rename to EMACSRES.  All users changed.
 (base_obj): Use $(CM_OBJ).
 (ALLOBJS): Use $(FIRSTFILE_OBJ).
 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
 $(W32_RES_LINK) before $(LIBES).
 (emacs.res): Depend on $(EMACS_MANIFEST).  Put emacs.rc in nt.
2013-05-16 15:48:54 +03:00
Eli Zaretskii a9519e2685 Merge from trunk. 2013-05-16 12:58:56 +03:00
Stefan Monnier 6e911150d0 Use just DOC instead of DOC-nn.mm.
* lisp/loadup.el: Just use unversioned DOC.
* Makefile.in (install-doc): DOC file is not version specific any more.
* .bzrignore: Don't ignore DOC-* any more.
* admin/quick-install-emacs: Don't prune DOC-* files a any more.
* doc/lispref/loading.texi (Autoload):
* doc/lispref/help.texi (Documentation Basics, Accessing Documentation)
(Accessing Documentation, Accessing Documentation): DOC-* is now DOC.
* etc/.gitignore: Don't ignore DOC-* any more.
* lib-src/makefile.w32-in ($(DOC)): Use DOC rather than DOC-X.
* msdos/sed1x.inp: Don't rewrite DOC any more.
* nt/makefile.w32-in (clean, top-distclean): DOC-X doesn't exist any more.
* src/Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
* src/makefile.w32-in (DOC): Use just "DOC".
2013-05-15 16:12:53 -04:00
Eli Zaretskii d14365f941 Merge from trunk, configury not fixed yet. 2013-05-15 19:15:07 +03:00
Paul Eggert 8c13f3d628 * make-docfile.c (search_lisp_doc_at_eol) [DEBUG]: Fix typo,
by removing references to no-longer-existing locals.
2013-05-05 20:32:19 -07:00
Eli Zaretskii 6454498502 Avoid building blessmail and use hard links when installing emacs.exe. 2013-04-14 19:36:49 +03:00
Eli Zaretskii 2b57bbc042 Fix a typo in NTINC value in lib-src/Makefile.in. 2013-04-06 17:03:08 +03:00
Eli Zaretskii d6db9fd60a Fixed src/epaths.h generation and lib-src dependencies and libraries. 2013-04-06 16:25:17 +03:00
Eli Zaretskii eb1dd42a72 Merge from trunk. 2013-04-05 16:10:57 +03:00
Glenn Morris 47d038b3af ChangeLog fixes
2013-03-16 was not the date Emacs 24.3 was released, it was not even
the date on which I merged all changes from that release into trunk.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00990.html
2013-04-03 20:46:25 -07:00
Eli Zaretskii cbbb6bfd46 Fixed a typo in emacsclientw.exe's name. 2013-04-01 18:04:13 +03:00
Eli Zaretskii 030a1c5ea6 Fixed nt/Makefile.in and top-level Makefile.in.
Programs in nt/ and lib-src/ compile and link.
Warnings and errors in src/.
2013-04-01 17:35:26 +03:00
Eli Zaretskii f540ee868c Fixed -gdwarf-2 switch and added emacsclientw.exe to lib-src/Makefile.in. 2013-04-01 16:51:33 +03:00
Eli Zaretskii 095bf25383 Added nt/Makefile.in and appropriate tweaks to configure.ac.
Added emacsclient.res support to lib-src/.
Fixed temacs and dumping commands in src/Makefile.in.
Miscellaneous fixes all over the place.

Not tried to build yet.
2013-04-01 16:18:20 +03:00
Paul Eggert b9edfa5c63 Spelling fixes. 2013-04-01 00:58:04 -07:00
Eli Zaretskii a74b0e1bdf Added nt/gnulib.mk and removed kludges from ms-w32.h and ntlib.h. 2013-03-31 17:04:49 +03:00
Eli Zaretskii 7c4026b6ad Finished with lib-src compilation, except emacsclientw and emacsclient.res.
Next -- compilation in nt/, and then problems in src/.
2013-03-30 20:00:51 +03:00
Eli Zaretskii b88b62dec9 Fix more incompatibilities between MinGW.org and MinGW64 headers
Reported by ׃scar Fuentes in
  http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00699.html
and in
  http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00707.html.

 nt/inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS) [_W64]: Define to 1.
 For MinGW64, include sys/types.h and time.h.
 nt/inc/sys/time.h (struct timeval) [!_W64]: Guard definition with _W64.
 (struct timezone) [!_TIMEZONE_DEFINED]: Guard definition with
 _TIMEZONE_DEFINED.
 nt/addpm.c (_WIN32_IE) [_W64]: For MinGW64, don't define to 0x400.
 nt/inc/sys/stat.h: Remove _CRTIMP from prototypes of fstat, stat,
 lstat, and fstatat.

 lib-src/ntlib.c (struct timespec) [!_TIMEZONE_DEFINED]: Define the
 struct only if _TIMEZONE_DEFINED is not defined.

 src/w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
 src/w32.c (REPARSE_DATA_BUFFER): Guard with
 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
2013-03-26 10:21:27 +02:00
cg d7158313e2 Fix MSVC compilation problem in lib-src.
lib-src/makefile.w32-in (LIB_SRC): Move before first use.
2013-03-23 17:30:38 +02:00
Stefan Monnier 78be8b6465 Merge from emacs-24 2013-03-16 18:08:22 -04:00
Paul Eggert 47d7532e09 File synchronization fixes.
* admin/CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove.
* admin/merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync.
* configure.ac (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
(fsync): Remove check; now done by gnulib.
* lib/fdatasync.c, lib/fsync.c, m4/fdatasync.m4, m4/fsync.m4:
New files, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib-src/Makefile.in (LIB_FDATASYNC): New macro.
(emacsclient${EXEEXT}): Use it.
* lib-src/emacsclient.c (main): Use fdatasync, not fsync, since we don't
care about metadata.  Keep trying if interrupted.
* lib-src/movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since
fsync is available everywhere (or there is a substitute).  Don't
report an error if fsync returns EINVAL.
* nt/inc/ms-w32.h (fdatasync): New macro, suggested by Eli Zaretskii.
* src/Makefile.in (LIB_FDATASYNC): New macro.
(LIBES): Use it.
* src/conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
* src/fileio.c (Fwrite_region, write_region_inhibit_fsync):
Don't worry about HAVE_FSYNC, since a substitute fsync is
available if the system lacks one.
(Fwrite_regin): Retry fsync if interrupted.

Fixes: debbugs:13944
2013-03-13 11:42:22 -07:00
Paul Eggert d9df6f40e3 Static checking by Sun C 5.12.
* lib-src/etags.c (analyse_regex): Omit unreachable code.
* src/alloc.c (buffer_memory_full) [REL_ALLOC]:
* src/bytecode.c (exec_byte_code):
* src/dispnew.c (init_display):
* src/eval.c (error):
* src/fileio.c (Fsubstitute_in_file_name):
* src/keyboard.c (Fevent_convert_list):
* src/keymap.c (Fsingle_key_description):
* src/term.c (maybe_fatal, fatal):
* src/xfns.c (Fx_display_backing_store, Fx_display_visual_class):
* src/xsmfns.c (Fhandle_save_session):
Omit unreachable code.
* src/keymap.c (map_keymap_char_table_item): Cast void * to
a function pointer type; the C Standard requires this.
2013-03-13 00:27:34 -07:00
Paul Eggert 9e3edd30c3 * movemail.c: Don't grant more read permissions than necessary.
The old 0333 dates back to before we called setuid,
so it was needed back then to ensure user-readability,
but 0377 should suffice now.
2013-03-12 18:05:40 -07:00
Paul Eggert f58afc72bd * movemail.c (main): Call umask on all systems.
This is OK since Emacs already assumes umask elsewhere.
2013-03-12 17:54:47 -07:00
Paul Eggert b2e37dad68 * pop.c: Fix ERRMAX typo (Bug#13925).
(socket_connection) [!HAVE_KRB5_ERROR_TEXT && HAVE_KRB5_ERROR_E_TEXT]:
Use ERROR_MAX, not ERRMAX.
2013-03-12 15:00:07 -07:00
Glenn Morris 24958590a0 Add 24.3 release to ChangeLogs 2013-03-10 19:35:23 -07:00
Paul Eggert c38e0c974e Prefer UTF-8 when the encoding shouldn't matter and changes are small. 2013-03-05 09:13:01 -08:00
Paul Eggert e70e5000f0 * movemail.c (getenv): Remove decl (unused since 1994). 2013-02-08 15:28:29 -08:00
Paul Eggert 1a353a145d * make-docfile.c (write_globals): Make it a bit clearer.
This pacifies GCC 4.7.2 when Emacs is configured with
--enable-link-time-optimization and --enable-gcc-warnings.

Fixes: debbugs:13448
2013-01-15 13:26:01 -08:00
Glenn Morris 0a8bf3afca Merge from emacs-24; up to 2012-12-06T07:33:20Z!rgm@gnu.org 2013-01-02 18:37:57 -08:00
Glenn Morris f0ddbf7b7f Add 2013 to more copyright years 2013-01-02 17:35:49 -08:00
Paul Eggert 0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Juanma Barranquero a19e68ea91 lib-src/makefile.w32-in (lisp1): Add macroexp.elc (bug#13320). 2013-01-01 09:58:46 +01:00
Juanma Barranquero 0eeb69fe15 (lib-src,src,lib)/makefile.w32-in: Update dependencies. 2012-12-11 03:06:53 +01:00
Eli Zaretskii 2b8c906403 Final cleanups and updated ChangeLog entries. 2012-12-10 15:25:17 +02:00
Eli Zaretskii 3907e630a7 Merge from trunk + rename the event. Not tested yet. 2012-12-10 14:08:02 +02:00
Kevin Ryde 1cbaa705e7 * lib-src/etags.c (Lisp_functions): Skip (defvar foo) declarations
unless the --declarations flag is enabled.
(Lisp_help): Update.
(skip_name): New function.

* doc/emacs/maintaining.texi (Tag Syntax): Mention (defvar foo) handling.

* doc/man/etags.1: Mention effect of --declarations in Lisp.

Fixes: debbugs:5600
2012-12-02 09:47:56 +08:00
Kevin Ryde 00054d2199 * lib-src/etags.c (Perl_functions): Support "use constant".
* doc/emacs/maintaining.texi (Tag Syntax): Mention Perl's "use constant".

Fixes: debbugs:5055
2012-12-01 09:22:28 +08:00
Paul Eggert 22626a856b Assume POSIX 1003.1-1988 or later for errno.h.
* lib-src/movemail.c (main): Assume EAGAIN and EBUSY.
* src/dired.c (directory_files_internal, file_name_completion):
Assume EAGAIN and EINTR are defined.
* src/fileio.c (Fcopy_file): Assume EISDIR is defined.
* src/gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
* src/gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
* src/lread.c (readbyte_from_file): Assume EINTR is defined.
* src/process.c (wait_reading_process_output, send_process) [subprocesses]:
Assume EIO and EAGAIN are defined.
* src/unexcoff.c (write_segment): Assume EFAULT is defined.

Fixes: debbugs:12968
2012-11-26 21:17:07 -08:00
Paul Eggert e6bac8768b movemail: treat EACCES etc. failures as permanent
* movemail.c (main): Treat any link failure other than EEXIST as a
permanent failure, not just EPERM.  EACCES, for example.
2012-11-23 00:28:06 -08:00
Paul Eggert 9239d97052 Assume POSIX 1003.1-1988 or later for unistd.h.
* admin/CPP-DEFINES (BROKEN_GETWD, HAVE_GETCWD, HAVE_GETWD, HAVE_SIZE_T)
(HAVE_UNISTD_H): Remove.
* configure.ac: Do not check for getcwd or getwd.
* lib-src/emacsclient.c (getcwd): Remove decl.
(get_current_dir_name): Assume getcwd exists.
* lib-src/etags.c (HAVE_GETCWD): Remove.
(getcwd): Remove decl.
(NO_LONG_OPTIONS): Remove this.  All uses removed.
Emacs always has GNU getopt.
(etags_getcwd): Assume getcwd exists.
* lib-src/movemail.c (F_OK, X_OK, W_OK, R_OK): Remove.
* nt/config.nt (HAVE_GETCWD): Remove.
* src/alloc.c: Assume unistd.h exists.
* src/fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
* src/sysdep.c (get_current_dir_name): Assume getcwd exists.
(getwd) [USG]: Remove; no longer needed.
(sys_subshell) [DOS_NT]: Use getcwd, not getwd.
* src/w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
* src/w32.h (getcwd): Remove decl.

Fixes: debbugs:12945
2012-11-21 13:06:52 -08:00
Paul Eggert a7db35b378 * emacsclient.c (handle_sigcont, handle_sigtstp): Use raise (sig)
rather than kill (getpid (), sig), as it's simpler and safer.
2012-11-20 00:31:19 -08:00
Juanma Barranquero a75ce9d3fd lib-src/makefile.w32-in, src/makefile.w32-in: Update dependencies.
* lib-src/makefile.w32-in (SYSWAIT_H): New macro.
($(BLD)/movemail.$(O)): Update dependencies.

* src/makefile.w32-in (SYSWAIT_H): New macro.
($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
($(BLD)/sysdep.$(O)): Update dependencies.
2012-11-18 00:16:24 +01:00
Paul Eggert 49cdacdad3 Assume POSIX 1003.1-1988 or later for fcntl.h.
* admin/CPP-DEFINES (O_RDONLY, O_RDWR, HAVE_FCNTL_H): Remove.
* admin/merge-gnulib (GNULIB_MODULES): Add fcntl-h.
* configure.ac: Do not check for fcntl.h.
* lib/gnulib.mk: Regenerate.
* lib-src/movemail.c, lib-src/update-game-score.c: Assume <fcntl.h> exists.
* nt/inc/sys/socket.h (O_NONBLOCK): Rename from O_NDELAY, since the
POSIX name for this flag is O_NONBLOCK.  All uses changed.
* nt/inc/unistd.h (O_RDWR, O_NOCTTY): New macros.  Like AT_FDCWD etc.
these really should be moved to a replacement <fcntl.h> if and
when that gets implemented.  In the meantime, include <fcntl.h>
to make sure we don't override its definitions.
* src/callproc.c (relocate_fd): Assume F_DUPFD.
* src/emacs.c, src/term.c (O_RDWR): Remove.
* src/keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
O_NDELAY, since O_NONBLOCK is the standard name for this flag.
* src/nsterm.m: Assume <fcntl.h> exists.
* src/process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
(create_pty, Fmake_network_process, server_accept_connection)
(wait_reading_process_output, init_process_emacs):
Assume O_NONBLOCK.
(wait_reading_process_output): Put in a special case for WINDOWSNT
to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
It's not clear this is needed, but it's a more-conservative change.
(create_process): Assume FD_CLOEXEC.
(create_process, create_pty): Assume O_NOCTTY.
* src/sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
(reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
Omit if not DOS_NT, since F_GETFL is not defined there.
(serial_open): Assume O_NONBLOCK and O_NOCTTY.
* src/term.c: Include <fcntl.h>, for flags like O_NOCTTY.
(O_NOCTTY): Remove.
(init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
lack it, since gnulib guarantees this.
* src/w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.

Fixes: debbugs:12881
2012-11-17 14:12:47 -08:00
Eli Zaretskii 5ade42a511 Merge from trunk after 24.3 was moved to emacs-24 branch. 2012-11-02 11:00:44 +02:00
Glenn Morris b75897ba63 * Makefile.in (uninstall): No INSTALLABLES live in archlibdir. 2012-10-26 00:40:51 -07:00
Glenn Morris eeced60b6c Program name transformations should not be applied to $EXEEXT.
* Makefile.in (EMACS, EMACSFULL):
* lib-src/Makefile.in (install, uninstall):
Transformations should not be applied to $EXEEXT.
2012-10-26 00:39:47 -07:00
Eli Zaretskii 4c77e620ec Update lib-src/makefile.w32-in to follow 2012-10-21T01:19:46Z!rgm@gnu.org.
lib-src/makefile.w32-in (lisp2): Add cp51932.el and eucjp-ms.el, to
 follow src/lisp.mk.
2012-10-23 19:09:55 +02:00
Glenn Morris ee7a418df3 Recognize that cp51932.el and eucjp-ms.el are loaded during dumping
* src/lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.

* lib-src/make-docfile.c (scan_lisp_file): Add cp51932.el and eucjp-ms.el.
2012-10-20 18:19:46 -07:00
Eli Zaretskii 6d03e7beda Merge from trunk. 2012-10-20 18:17:25 +02:00
Eli Zaretskii 83c85d8e2e Fix last changes in make-docfile.c.
lib-src/make-docfile.c (IS_SLASH, DEF_ELISP_FILE): New macros.
 (scan_lisp_file): Only pass a .el file if its basename matches a
 known file in its entirety.  Use IS_SLASH and DEF_ELISP_FILE.
2012-10-20 17:26:10 +02:00
Eli Zaretskii 71aa63da78 Fix a typo in lib-src/ChangeLog. 2012-10-20 16:56:09 +02:00
Andreas Schwab cab4f71ebd * make-docfile.c (scan_lisp_file): Add bounds checking. 2012-10-20 15:28:42 +02:00
Eli Zaretskii 87c6b4e6bd Merge from trunk. 2012-10-20 13:49:12 +02:00
Eli Zaretskii 2068905bb7 Fix bug #12395 with doc strings silently omitted from DOC on MS-Windows.
lib-src/make-docfile.c (scan_lisp_file): Barf if called with a .el file
 other than one of a small list of supported un-compiled files.
 lib-src/makefile.w32-in (lisp1, lisp2): Name .elc files wherever they
 exist.

 lisp/loadup.el: Update comment about uncompiled Lisp files.
2012-10-20 12:01:19 +02:00
Eli Zaretskii 9a85d8539c Merge from trunk. 2012-10-17 23:15:03 +02:00
Eli Zaretskii 27067208fd Avoid compiler warnings in lib-src/ntlib.c
src/ntlib.c: Include <mbstring.h>, to avoid compiler warning about
 _mbspbrk.
2012-10-17 23:13:20 +02:00
Eli Zaretskii 7014794467 Merge from trunk after cygw32 commit, and resolve conflicts. 2012-10-08 15:06:31 +02:00
Eli Zaretskii c54ebba4e0 Update w32 dependencies in the wake of cygw32 changes.
src/makefile.w32-in (FONT_H): Add $(FRAME_H).
 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
 (GLOBAL_SOURCES): Add cygw32.c.

 lib-src/makefile.w32-in (obj): Add cygw32.o.
2012-10-08 14:21:04 +02:00
Daniel Colascione e08348a0e6 Changelog entries for cygw32 2012-10-07 23:58:40 -08:00
Daniel Colascione 36a305a723 Merge from trunk 2012-10-07 14:31:58 -08:00
Eli Zaretskii c5c91b847a Final version that supports only one watch at a time. 2012-10-07 15:41:15 +02:00
Eli Zaretskii 477f1e5044 Initial version of the w32notify code.
Adding and removing a watch seems to work: a new thread is launched
when a watch is added and exits when the watch is removed.
But there are no notifications, so it seems.  At least, the Lisp
callback function passed to w32notify-add-watch is not called.
2012-10-06 20:02:31 +02:00
Fabrice Popineau 3d3bfa2489 Make make-docfile.c consistent with src/keyboard.c.
lib-src/make-docfile.c (write_globals): Special-case
 Fexit_recursive_edit and Fabort_recursive_edit as well, as
 functions that are _Noreturn, to be consistent with
 src/keyboard.c.
2012-10-01 16:22:23 +02:00
Fabrice Popineau 62aba0d497 Support x64 build on MS-Windows with MSVC.
src/w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
 compatibility with x64.
 src/w32term.c (w32_draw_underwave): Don't use GCC extensions for
 defining an XRectangle structure.
 src/w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
 arithmetics for compatibility with x64.
 src/w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
 compatibility with x64.
 src/w32heap.h: Adjust prototypes and declarations.
 src/w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
 DWORD, long, and unsigned long, for compatibility with x64.
 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
 (sbrk): Argument is now of type ptrdiff_t.
 src/w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
 less than 0x0500.
 (w32_msg_pump): Use WPARAM type for 'result'.
 src/w32.c (init_environment, get_emacs_configuration): Support AMD64
 architecture.
 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
 compatibility with x64.
 src/vm-limit.c (lim_data): Now size_t.
 (check_memory_limits): Adjust prototypes of real_morecore and
 __morecore to receive argument of type ptrdiff_t.  Use size_t for
 five_percent and data_size.
 src/unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
 variables, for compatibility with x64.
 (rva_to_section, offset_to_section, relocate_offset)
 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
 for compatibility with x64.
 src/sysdep.c (STDERR_FILENO): Define if not already defined.
 src/ralloc.c (real_morecore): Argument type is now ptrdiff_t.
 (__morecore): Argument type is now ptrdiff_t.
 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
 (relinquish): Use ptrdiff_t type for 'excess'.
 (r_alloc_sbrk): Argument type is now ptrdiff_t.
 src/makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
 instead of a literal number.
 src/gmalloc.c [WINDOWSNT]: Include w32heap.h.
 (min): Define only if not already defined.
 src/frame.c (x_report_frame_params): Use EMACS_UINT for the return
 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
 hosts.
 src/image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
 'bitmaps' is a pointer.
 src/dispextern.h (x_bitmap_pixmap): Adjust prototype.
 src/alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.

 nt/makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST).
 nt/inc/sys/socket.h: Don't map Winsock error codes to standard ones
 that are already defined.
 nt/inc/ms-w32.h (EMACS_INT, EMACS_UINT, EMACS_INT_MAX, PRIuMAX)
 (pI, _INTPTR) [_MSC_VER]: Fix definitions for MSVC.
 [_MSC_VER]: Add pragmas to suppress some MSVC warnings.
 nt/preprep.c (pfnCheckSumMappedFile, rva_to_section)
 (offset_to_section, relocate_offset, OFFSET_TO_RVA)
 (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
 (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
 (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use
 DWORD_PTR instead of DWORD for compatibility with x64.
 nt/nmake.defs: Support AMD64.
 (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros.
 nt/gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST):
 New macros.
 nt/addsection.c (pfnCheckSumMappedFile, rva_to_section)
 (offset_to_section, relocate_offset, OFFSET_TO_RVA)
 (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
 (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
 (copy_executable_and_add_section, main): Use DWORD_PTR instead of
 DWORD, for compatibility with x64.
 nt/emacs-x64.manifest: New file.
 nt/emacs-x86.manifest: Renamed from emacs.manifest.

 lib-src/ntlib.c (gettimeofday): Copy from src/w32.c.  lib/gettime. 
 needs this function.
2012-09-30 23:36:42 +02:00
Juanma Barranquero 41e9b956af Fix ChangeLog typos. 2012-09-27 00:42:54 +02:00
Juanma Barranquero 6a586b7fe4 Fix some profiler stuff on Windows (follow-up to 1995-03-15T21:55:37Z!kwzh@gnu.org).
* lib-src/makefile.w32-in (obj): Add profiler.o.
* src/makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
2012-09-27 00:04:10 +02:00
Daniel Colascione 2ab329f3b5 Merge from trunk 2012-09-17 04:07:36 -08:00
Daniel Colascione efc3dd3ccc Detect window-system from display name 2012-09-17 03:55:05 -08:00
Daniel Colascione 6b59694eac Add alt_display to emacsclient for w32, ns 2012-09-17 03:55:04 -08:00
Daniel Colascione 5e0944c6f0 Fix emacsclient to work with cygw32 2012-09-17 03:55:03 -08:00
Glenn Morris 78f83752f5 Reduce the number of versioned files storing the short copyright string
* configure.ac (copyright): New output variable.
(COPYRIGHT): New AC_DEFINE.

* admin/admin.el (set-copyright): No more need to set copyrights for
nextstep, or .c files.  Add configure.ac and config.nt.

* lib-src/ebrowse.c (version):
* lib-src/etags.c (print_version): Use COPYRIGHT.

* nextstep/templates/Info-gnustep.plist.in:
* nextstep/templates/InfoPlist.strings.in:
* nextstep/templates/Info.plist.in: Let configure set copyright.

* nt/config.nt (COPYRIGHT): New.

* src/emacs.c: Use COPYRIGHT.
2012-09-16 17:56:08 -07:00
Paul Eggert ae1d87e24e Prefer assignment to memcpy when either will do.
* lib-src/pop.c (socket_connection) [HAVE_GETADDRINFO]:
* src/bidi.c (bidi_push_it, bidi_pop_it):
* src/fns.c (copy_hash_table):
* src/image.c (define_image_type):
* src/keyboard.c (kbd_buffer_store_event_hold):
* src/process.c (Fprocess_send_eof):
* src/xfaces.c (x_create_gc) [HAVE_NS]:
* src/xgselect.c (xg_select):
Use assignment, not memcpy, as either will do here, and assignment is
more likely to catch type errors.
2012-09-11 15:59:50 -07:00
Andreas Schwab 5bf647499a Fixes: debbugs:12306
* etags.c (consider_token): Always zero-terminate token buffer.
2012-08-31 18:53:48 +02:00
Paul Eggert bad03192c4 Clarify recent ChangeLog entry. 2012-08-19 21:04:58 -07:00
Paul Eggert b69a6d2284 Rely on <unistd.h> to declare 'environ',
as gnulib does this if the system doesn't.
* lib-src/emacsclient.c (environ): Remove decl.
* src/callproc.c, src/editfns.c, src/process.c (environ) [!USE_CRT_DLL]:
* src/emacs.c (environ) [DOUG_LEA_MALLOC]:
* src/vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
* src/vm-limit.c: Include <unistd.h>, for 'environ'.
2012-08-19 14:00:09 -07:00
Juanma Barranquero 9851e4a5b4 * lib-src/makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
* src/makefile.w32-in (C_CTYPE_H): New macro.
(LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
2012-08-17 03:53:29 +02:00
Paul Eggert 8453bb5523 * etags.c (Pascal_functions): Fix parenthesization typo. 2012-08-15 01:57:14 -07:00
Paul Eggert f5d9e83a70 Use bool for Emacs Lisp booleans.
This is more natural, and on my platform (GCC 4.7.1 x86-64) it
makes Emacs's text size .03% smaller and presumably a bit faster.
* admin/merge-gnulib (GNULIB_MODULES): Add stdbool.  This documents a
new direct dependency; stdbool was already being used indirectly
via other gnulib modules.
* lib-src/make-docfile.c (enum global_type): Sort values roughly in
decreasing alignment, except put functions last.
(compare_globals): Use this new property of enum global_type.
(write_globals): Use bool, not int, for booleans.
* src/lisp.h: Include <stdbool.h>.
(struct Lisp_Boolfwd, defvar_bool):
* src/lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
* src/regex.c [!emacs]: Include <stdbool.h>.
(false, true): Remove; <stdbool.h> does this for us now.
2012-08-14 10:45:25 -07:00
Glenn Morris 25e65510a3 Move IF_LINT from lisp.h to conf_post.h
* src/conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
* src/lisp.h (IF_LINT, lint_assume): Move to conf_post.h.

* lib-src/make-docfile.c (IF_LINT):
* lib-src/emacsclient.c (IF_LINT): Remove (in config.h now).
2012-08-10 14:23:45 -04:00
Glenn Morris 0aa8781fc0 Comments 2012-08-10 00:07:07 -07:00
Glenn Morris 9748df5d77 Remove some make-docfile.c undes that are no longer needed
* lib-src/make-docfile.c (main):
(fopen) [!WINDOWSNT]:
(chdir) [!DOS_NT]: No more need to undef.
2012-08-09 20:16:33 -04:00
Glenn Morris 9374581a24 Move DIRECTORY_SEP from lisp.h to config.h
* configure.ac (DIRECTORY_SEP): Move here from src/lisp.h.

* src/lisp.h (DIRECTORY_SEP): Let configure set it.

* nt/config.nt (DIRECTORY_SEP): Move here from src/lisp.h.

* lib-src/movemail.c (DIRECTORY_SEP, IS_DIRECTORY_SEP):
* lib-src/make-docfile.c (DIRECTORY_SEP, IS_DIRECTORY_SEP):
* lib-src/emacsclient.c (DIRECTORY_SEP, IS_DIRECTORY_SEP, IS_DEVICE_SEP):
Remove (they are in config.h now).
2012-08-09 20:02:10 -04:00
Glenn Morris 59a428eb3f Comments 2012-08-09 19:59:38 -04:00
Glenn Morris 3565663879 * lib-src/ebrowse.c (PATH_LIST_SEPARATOR): Remove
Replace with SEPCHAR from config.h.
2012-08-09 19:53:07 -04:00
Glenn Morris 7eaa9e447d Refill comment 2012-08-08 09:03:04 -07:00
Glenn Morris b33dcadbc2 Comments 2012-08-08 09:01:28 -07:00
Juanma Barranquero 3fbc4b542c * nt/config.nt: Sync with autogen/config.in.
(DOS_NT, MSDOS): New macros.
(WRETCODE, wait3): Remove.

* nt/inc/ms-w32.h (DOS_NT): Remove; defined in config.nt.

* lib-src/makefile.w32-in (LOCAL_FLAGS): Remove WINDOWSNT and DOS_NT,
they are always defined in config.h.
2012-08-03 14:16:40 +02:00
Eli Zaretskii 6dad71783c Support symlinks on latest versions of MS-Windows.
src/w32.c: Include winioctl.h and aclapi.h.
 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
 (revert_to_self): Forward declarations of static functions.
 <static BOOL g_b_init_get_security_info>:
 <g_b_init_create_symbolic_link>: New static flags.
 (globals_of_w32): Initialize them to zero.
 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
 (map_w32_filename): Improve commentary.  Simplify switch.
 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
 headers (most versions of MinGW w32api don't).
 (get_security_info, create_symbolic_link)
 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
 New functions.
 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
 in the argument file name.
 (sys_access): Call unc_volume_file_attributes only if
 GetFileAttributes fails with network-related error codes.
 (sys_rename): Diagnose renaming of a symlink when the user doesn't
 have the required privileges.
 (get_file_security_desc_by_name): Renamed from
 get_file_security_desc.
 (stat_worker): New function, with most of the guts of 'stat', and
 with addition of handling of symlinks and support for 'lstat'.  If
 possible, get file's attributes and security information by
 handle, not by name.  Produce S_IFLNK bit for symlinks, when
 called from 'lstat'.
 (stat, lstat): New functions, call 'stat_worker'.
 (symlink, readlink, careadlinkat): Rewritten to create and resolve
 symlinks when the underlying filesystem supports them.

 lib/src/ntlib.c (lstat): New function, calls 'stat'.

 nt/inc/sys/stat.h (S_IFLNK): Define.
 (S_ISLNK): A non-trivial definition.
 (lstat): Prototype instead of a macro that redirects to 'stat'.

 lisp/files.el (file-truename): Don't skip symlink-chasing part on
 windows-nt.  Incorporate the resolution of 8+3 short aliases on
 Windows into the loop that recursively chases symlinks.  Compare
 directory and its parent case-insensitively on MS-Windows and
 MS-DOS.

 etc/NEWS: Announce the symlink support on MS-Windows.
2012-08-03 13:23:30 +03:00
Paul Eggert f162bcc31c Use C99-style 'extern inline' if available.
* lib-src/profile.c (SYSTIME_INLINE): Define.
* nt/config.nt: Sync with autogen/config.in.
(_GL_INLINE, _GL_EXTERN_INLINE, _GL_INLINE_HEADER_BEGIN)
(_GL_INLINE_HEADER_END): New macros.
* src/buffer.h (BUFFER_INLINE):
* src/category.h (CATEGORY_INLINE):
* src/character.h (CHARACTER_INLINE):
* src/charset.h (CHARSET_INLINE):
* src/composite.h (COMPOSITE_INLINE):
* src/dispextern.h (DISPEXTERN_INLINE):
* src/lisp.h (LISP_INLINE):
* src/systime.h (SYSTIME_INLINE):
New macro, replacing 'static inline' in this header.
* src/buffer.h, src/category.h, src/character.h, src/charset.h:
* src/composite.h, src/dispextern.h, lisp.h, systime.h:
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
* src/alloc.c (LISP_INLINE):
* src/buffer.c (BUFFER_INLINE):
* src/category.c (CATEGORY_INLINE):
* src/character.c (CHARACTER_INLINE):
* src/charset.c (CHARSET_INLINE):
* src/composite.c (COMPOSITE_INLINE):
* src/dispnew.c (DISPEXTERN_INLINE):
* src/sysdep.c (SYSTIME_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
* src/conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
(INLINE_HEADER_END): New macros.
* src/lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
since it's used in non-static inline functions now.
2012-08-02 00:31:34 -07:00
Glenn Morris 837b365b2a Move NT-specific include file to the NT include directory
* nt/inc/ms-w32.h: Move here from ../src/s.
* nt/config.nt (config_opsysfile): Change to <ms-w32.h>.

* s/ms-w32.h: Move to ../nt/inc.
* src/makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
Update for new ms-w32.h location.

* lib-src/makefile.w32-in (MS_W32_H): Update for new ms-w32.h location.

* lib/makefile.w32-in (MS_W32_H): Update for new ms-w32.h location.

* lisp/emacs-lisp/authors.el (authors-renamed-files-alist): Add ms-w32.h.
2012-08-01 23:19:48 -07:00