X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/22ed928d06f1bad227fd0a08e5fc3e6243ad820f..893fcd38e9ef6bcb50dd9e9ed1de7caf194f8a83:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index b550549811..89c640bd8c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,19970 +1,8140 @@ -2013-11-18 Andreas Schwab +2013-12-11 Ken Brown - * process.c (get_process): Check that OBJ is a live buffer. - (Bug#15923) + * dispextern.h (erase_phys_cursor): + * keyboard.h (make_ctrl_char): Declare prototypes if HAVE_NTGUI. -2013-07-15 Glenn Morris +2013-12-11 Dmitry Antipov - * image.c (Fimage_flush): Fix doc typo. - -2013-03-11 Glenn Morris - - * Version 24.3 released. - -2013-03-05 Paul Eggert - - Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881). - * sysdep.c (list_system_processes) - [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]: - Make it a stub in this case; otherwise the build might fail, - and this code hasn't been tested on such hosts anyway. - Problem reported by Nelson H. F. Beebe in - - and analyzed by Jérémie Courrèges-Anglas in - . - -2013-03-02 Andreas Schwab - - * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734) - -2013-02-27 Eli Zaretskii - - * w32.c (sys_open): Don't reset the flags for FD in fd_info[]. - (Bug#13546). - -2013-02-24 Andreas Schwab - - * xdisp.c (set_message): Only check for debug-on-message if STRING - is a string. (Bug#13797) - -2013-02-24 Paul Eggert - - Fix regression introduced by July 10 filelock.c patch. - * filelock.c (fill_in_lock_file_name): Fix crash caused by the - 2012-07-10 patch to this file. Reported by Eli Zaretskii in - - and diagnosed by Andreas Schwab in - . - -2013-02-18 Eli Zaretskii - - * w32proc.c (new_child): Avoid leaking handles if the subprocess - resources were not orderly released. - -2013-02-17 Eli Zaretskii - - * w32proc.c (new_child): Remove the loop that attempted to salvage - slots of dead processes. - (new_child, delete_child, find_child_pid): Don't insist on - procinfo.hProcess be NULL for a process slot to be considered - inactive, or be non-NULL to be considered active. - (reader_thread): Don't set the FILE_AT_EOF flag of a file - descriptor if the corresponding child was deleted and its - char_avail handle is NULL. - (reap_subprocess): Don't reset the FILE_AT_EOF flag. (Bug#13546) - (sys_select): Don't pass a NULL process handle to - WaitForMultipleObjects. (Bug#13735) - - * xdisp.c (x_draw_vertical_border): For a window that is neither - the leftmost nor the rightmost, redraw both the left and the right - vertical borders. (Bug#13723) - -2013-02-15 Eli Zaretskii - - * w32proc.c (new_child): Free up to 2 slots of dead processes at a - time. Improve diagnostics in DebPrint. - (reader_thread): If cp->char_avail is NULL, set the FILE_AT_EOF - flag, so that sys_select could have a chance of noticing that this - process is dead, and call a SIGCHLD handler for it. Improve - diagnostics in DebPrint. - (reap_subprocess): Reset the FILE_AT_EOF flag set by - reader_thread. - (sys_select): Watch a process whose procinfo.hProcess is non-NULL - even if its char_avail is NULL. Allows to reap subprocesses that - were forcibly deleted by delete-process. (Bug#13546) - - * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname) - (sys_gethostbyname, sys_getservbyname, sys_getpeername) - (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname) - (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure, - make sure errno is set to an appropriate value. (Bug#13546) - (socket_to_fd): Add assertion against indexing fd_info[] with a - value that is out of bounds. - (sys_accept): If fd is negative, do not set up the child_process - structure for reading. - -2013-02-14 Paul Eggert - - Backport GCPRO fix from trunk (Bug#13650). - The bug was reported for AIX before today's changes. - I reproduced the problem on Fedora 17 x86-64 when setting - GC_MARK_STACK by hand, and I presume it occurs with default - configurations on HP-UX and Unixware. - Trunk fix on 2013-01-14 by Dmitry Antipov : - Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. - * eval.c (eval_sub): Protect `form' from being GCed before its - car and cdr becomes protected with the backtrace entry. - - Fix AIX port (Bug#13650). - * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]: - Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set, - was #undeffed earlier, so it cannot be used as a macro here. - Use the constant and not the macro. - * unexaix.c: Revert 2013-02-11 and 2013-02-12 changes to this - file. They're almost surely OK but we're just before a release so - we should avoid changes unless they're clearly needed. Instead, - make the following minor change: - (ADDR_CORRECT): New macro. - -2013-02-13 Eli Zaretskii - - * w32proc.c (new_child): If no vacant slots are found in - child_procs[], make another pass looking for slots whose process - has exited or died. (Bug#13546) - - * w32.c (sys_pipe): When failing due to file descriptors above - MAXDESC, set errno to EMFILE. - (_sys_read_ahead): Update cp->status when failing to read serial - communications input, so that the status doesn't stay at - STATUS_READ_IN_PROGRESS. (Bug#13546) - -2013-02-13 Glenn Morris - - * keyboard.c (input-decode-map, key-translation-map): Doc fixes. - -2013-02-12 Paul Eggert - - Improve AIX port some more (Bug#13650). - With this, it should be as good as it was in 23.3, though it's - still pretty bad: the dumped emacs does not run. See Mark Fleishman in - http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html - * unexaix.c (start_of_text): Remove. - (_data, _text): Declare as char[], not int, as AIX manual suggests. - (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr) - (orig_load_scnptr, orig_data_scnptr): - Now off_t, not long, since they are file offsets. - (make_hdr): Use _data, not start_of_data (). - This is the key part of the fix. - (make_hdr, unrelocate_symbols): Use off_t for file offsets. - (unrelocate_symbols): Cast pointers to intptr_t, not to ulong. - - * pre-crt0.c (data_start): Initialize to 1. - This ports to compilers that optimize the external declaration - 'int x = 0;' as if it were 'int x;' to shrink the executable. - -2013-02-11 Paul Eggert - - Improve AIX port (Bug#13650). - This doesn't fix the bug, but it makes progress: Emacs builds now. - * unexaix.c: Include inttypes.h, stdarg.h. - (report_error, report_error_1): Mark as _Noreturn. - (report_error): Don't report the wrong errno. - (report_error_1): Now varargs. All callers changed. - (make_hdr): Use uintptr_t, not unsigned, when converting pointers - to unsigned. Don't use ADDR_CORRECT, as it no longer exists. - (write_ptr): Use %p to print address rather than %lx and a cast - to unsigned long. Grow buffer a bit, to be safer. - -2013-02-11 Eli Zaretskii - - * bidi.c (bidi_resolve_neutral): After finding the next - non-neutral character, accept NEUTRAL_ON type as well, because - directional control characters, such as LRE and RLE, have their - type converted to that by bidi_resolve_weak. This avoids aborts - when LRE/RLE follows a run of neutrals. - (bidi_move_to_visually_next): Assert that return value of - bidi_peek_at_next_level is non-negative. Negative values will - cause an infloop. - -2013-02-05 Daniel Colascione - - * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that - daemon mode works on cygw32 when Emacs is installed and not just - during development. - -2013-02-01 Eli Zaretskii - - * callproc.c (Fcall_process): Make sure program name in PATH and - new_argv[0] is encoded, if needed. Otherwise, un-encoded string - is passed to exec/spawnve, which fails unless the file-name - encoding is UTF-8. - - * w32proc.c (sys_spawnve): Make sure escape_char is initialized, - even if w32-quote-process-args is nil. - -2013-01-27 Eli Zaretskii - - * w32.c (sys_open): Zero out the flags for the new file descriptor. - (sys_close): Zero out the flags for the file descriptor before - closing it. (Bug#13546) - -2013-01-26 Eli Zaretskii - - * w32.c (parse_root, get_volume_info, readdir, read_unc_volume) - (logon_network_drive, stat_worker, symlink, chase_symlinks): Use - CharNextExA and CharPrevExA to iterate over file names encoded in - DBCS. (Bug#13553) - -2013-01-25 Eli Zaretskii - - * w32.c (w32_get_long_filename, init_environment, readlink): - Support file names encoded in DBCS codepages. - (readlink): Use the current file-name-coding-system, not the ANSI - codepage, to decode and handle targets of symlinks. - -2013-01-23 Eli Zaretskii - - * w32.c (max_filename_mbslen): New function. - (normalize_filename, readdir): Use it to detect locales where ANSI - encoding of file names uses a double-byte character set (DBCS). - If a DBCS encoding is used, advance by characters using - CharNextExA, instead of incrementing a 'char *' pointer. Use - _mbslwr instead of _strlwr. (Bug#13515) - -2013-01-22 Eli Zaretskii - - * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial - request of memory reservation to 1.7GB. (Bug#13065) - -2013-01-20 Andreas Schwab - - * coding.c (detect_coding_iso_2022): Move back mis-reordered code - at check_extra_latin label. (Bug#13505) - -2013-01-17 Glenn Morris - - * fns.c (Frandom): Doc fix. - -2013-01-13 Jan Djärv - - * nsfont.m (LCD_SMOOTHING_MARGIN): New define. - (nsfont_draw): Remove disabling of LCD smoothing. - (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix - Bug#11484 with LCD smoothing on. - -2013-01-11 Rainer Orth (tiny change) - - * gtkutil.c (xg_initialize): Backport from trunk. - Add ifdef HAVE_FREETYPE around x_last_font_name (Bug#13403). - -2013-01-11 Paul Eggert - - Backport typo fix from trunk, for AIX (Bug#13408). - * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'. - This follows up on the 2012-09-29 patch that removed indirection - for the 'function' field. Reported by Sergey Vinokurov in - . - - Fix SIGDANGER handlers, for AIX (Bug#13408). - * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]: - Move handlers here from emacs.c; they were out of place. - -2013-01-05 Eli Zaretskii - - * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead - of a non-portable "t" to print ptrdiff_t values. Allow up to 9 - digits for buffer positions, before misalignment starts. Display - "0" for integer "object" field. - (dump_glyph_row): Adapt the header line to changes in dump_glyph. - Display the newline glyph more unambiguously. - -2013-01-04 YAMAMOTO Mitsuharu - - * nsterm.m (ns_draw_underwave): - * w32term.c (w32_draw_underwave): - * xterm.c (x_draw_underwave): Make underwave look more triangular - and also degrade gracefully for small fonts. (Bug#13000) - - * nsterm.m (ns_draw_text_decoration): - * w32term.c (x_draw_glyph_string): - * xterm.c (x_draw_glyph_string): Don't use previous underline - thickness and position if previous underline type is underwave. - -2012-12-31 Glenn Morris - - * keymap.c (Fkey_description): Doc fix. (Bug#13323) - -2012-12-29 Andreas Schwab - - * src/Makefile.in (TEMACS_LDFLAGS2): Remove. - (LIBS_GNUSTEP): Define. - (LIBES): Add $(LIBS_GNUSTEP). - (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2). - -2012-12-27 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Don't confuse a truncation or - continuation glyph on a TTY with an indication of an empty line. - (Bug#13277) - -2012-12-27 Glenn Morris - - * cygw32.c (Fcygwin_convert_file_name_to_windows) - (Fcygwin_convert_file_name_from_windows): Doc fixes. - -2012-12-24 Eli Zaretskii - - * fileio.c (file_name_as_directory, directory_file_name): Accept - an additional argument MULTIBYTE to indicate whether the input C - came from a multibyte or a unibyte Lisp string; all callers - adjusted. Don't assume the input string is always multibyte. - (Bug#13262) - (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly: - don't ENCODE_FILE them, and return a unibyte string if the input - was unibyte. - (Fexpand_file_name): Don't mix unibyte with multibyte strings, and - don't assume the input strings will always be multibyte. If the - input strings are multibyte, decode strings obtained from C - library functions. - -2012-12-22 Martin Rudalics - - * window.c (Fselect_window): Reword doc-string (Bug#13248). - -2012-12-21 Eli Zaretskii - - * fileio.c (Finsert_file_contents): Doc fix. - - * w32proc.c (new_child, delete_child, find_child_pid): For a - subprocess, consider its slot being in use as long as its process - handle (procinfo.hProcess) is not NULL. This avoids reusing the - slot when a new process is started immediately after killing - another one, without waiting enough time for the first process to - be reaped and resources allocated for it be orderly freed. - (Bug#13086) - Suggested by Fabrice Popineau . - -2012-12-21 Chong Yidong - - * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231). - -2012-12-15 Chong Yidong - - * fns.c (Fcompare_strings): Doc fix (Bug#13081). - -2012-12-14 Eli Zaretskii - - * w32.c (get_name_and_id): Always pass NULL as the first argument - of lookup_account_sid. Avoids crashes with UNC file names that - refer to DFS domains, not to specific machine names. (Bug#12621) - Remove now unused argument FNAME; all callers changed. - (get_file_owner_and_group): Remove now unused argument FNAME; all - callers changed. - -2012-12-11 Eli Zaretskii - - * search.c (search_buffer): Check the inverse translations of each - character in pattern when the buffer being searched is unibyte. - (Bug#13084) - -2012-12-10 Paul Eggert - - * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent - files, fixing a regression from 24.2. - (Fverify_visited_file_modtime): Don't read uninitialized st.st_size. - -2012-12-08 Jan Djärv - - * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103). - -2012-12-08 Fabrice Popineau - - * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to - DWORD_PTR, for compatibility with 64-bit builds. - - * w32.c (_PROCESS_MEMORY_COUNTERS_EX): - (GetProcessWorkingSetSize_Proc, get_process_working_set_size) - (system_process_attributes): Use SIZE_T rather than DWORD, for - compatibility with 64-bit builds. - -2012-12-08 Christopher Schmidt - - * lread.c (Vload_source_file_function): Doc fix (Bug#11647). - -2012-12-07 Eli Zaretskii - - * indent.c (Fvertical_motion): If a display string will be - displayed on the left or the right margin, don't consider it as a - factor in cursor positioning. (Bug#13108) - -2012-12-07 Martin Rudalics - - * editfns.c (Fcompare_buffer_substrings): Reword doc-string. - -2012-12-05 Eli Zaretskii - - * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp - fails, signal an error instead of continuing with an empty - string. (Bug#13079) - Encode expanded temp file pattern before passing it to mkstemp or - mktemp. - -2012-12-04 Eli Zaretskii - - * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]: - Encode the file name before passing it to dostounix_filename, in - case it will downcase it (under w32-downcase-file-names). - (Bug#12933) - -2012-12-01 Chong Yidong - - * fileio.c (Vauto_save_list_file_name): Doc fix. - -2012-11-30 Fabrice Popineau - - * w32fns.c: Remove prototype of atof. - (syspage_mask): Declared DWORD_PTR, for compatibility with 64-bit - builds. - (file_dialog_callback): Declared UINT_PTR. - - * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility - with 64-bit builds. - - * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED) - (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already - defined. - -2012-11-27 Glenn Morris - - * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding. - -2012-11-26 Eli Zaretskii - - * fontset.c (Finternal_char_font): Return nil on non-GUI frames. - (Bug#11964) - -2012-11-24 Paul Eggert - - Revert recent change for Bug#8855. - As reported by Harald Hanche-Olsen in - - the change introduces a further bug, of creating lots of zombie - processes in some cases. Further work is needed to come up with a - better fix for Bug#8855. - -2012-11-24 Eli Zaretskii - - * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse - highlighting on the frame was cleared. Prevents assertion - violations when repeatedly clicking on the "Top" link of the - "bread-crumbs" in Info buffers. - -2012-11-23 Paul Eggert - Eli Zaretskii - - Fix a race condition with glib (Bug#8855). - The symptom is a diagnostic "GLib-WARNING **: In call to - g_spawn_sync(), exit status of a child process was requested but - SIGCHLD action was set to SIG_IGN and ECHILD was received by - waitpid(), so exit status can't be returned." The diagnostic - is partly wrong, as the SIGCHLD action is not set to SIG_IGN. - The real bug is a race condition between Emacs and glib: Emacs - does a waitpid (-1, ...) and reaps glib's subprocess by mistake, - so that glib can't find it. Work around the bug by invoking - waitpid only on subprocesses that Emacs itself creates. - - This is a backport from the trunk, consisting of: - - * w32proc.c (create_child): Don't clip the PID of the child - process to fit into an Emacs integer, as this is no longer a - restriction. - (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by - reaping only the process specified by PID argument, if that is - positive. Use PID instead of dead_child to know which process to - reap. Wait for the child to die only if WNOHANG is not in - OPTIONS. - (sys_select): Don't set dead_child. - - * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion, - as it is no longer needed. - - * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions, - no longer needed. - (create_process, record_child_status_change): Don't use special - value -1 in pid field, as the caller now must know the pid rather - than having the callee infer it. The inference was sometimes - incorrect anyway, due to another race. - (create_process): Set new 'alive' member if child is created. - (process_status_retrieved): New function. - (record_child_status_change): Use it. - Accept negative 1st argument, which means to wait for the - processes that Emacs already knows about. Move special-case code - for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of - processes that have already been waited for, by testing and - clearing new 'alive' member. Remove the setting of - record_at_most_one_child for the !WNOHANG case. - (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change - now does this internally. - (handle_child_signal): Let record_child_status_change do all - the work, since we do not want to reap all exited child processes, - only the child processes that Emacs itself created. - * process.h (Lisp_Process): New boolean member 'alive'. - -2012-11-23 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not - between bpos_covered and bpos_max. This fixes cursor display when - several display strings follow each other. - - * .gdbinit (pgx): If the glyph's object is a string, display the - pointer to string data, rather than the value of the string object - itself (which barfs under CHECK_LISP_OBJECT_TYPE). - -2012-11-21 Eli Zaretskii - - * indent.c (Fvertical_motion): If the starting position is covered - by a display string, return to one position before that, to avoid - overshooting it inside move_it_to. (Bug#12930) - -2012-11-20 Daniel Colascione - - * w32fns.c (Fx_file_dialog): - (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to - cygwin_convert_file_name*. - - * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32): - Rename cygwin_convert_path* to cygwin_convert_file_name*. - -2012-11-20 Ken Brown - - * emacs.c (main): Set the G_SLICE environment variable for all - Cygwin builds, not just GTK builds. See - https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html. - -2012-11-19 Eli Zaretskii - - * xdisp.c (start_hourglass) [HAVE_NTGUI]: Don't mix declaration of - w32_note_current_window with code. (Backport from trunk.) - - * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED) - (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]: - Define for the MSVC compiler. - - * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing - semi-colon. - -2012-11-18 Eli Zaretskii - - * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory) - (Fexpand_file_name) [DOS_NT]: Pass encoded file name to - dostounix_filename. Prevents crashes down the road, because - dostounix_filename assumes it gets a unibyte string. Reported by - Michel de Ruiter , see - http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html - -2012-11-17 Eli Zaretskii - - * w32select.c: Include w32common.h before w32term.h, so that - windows.h gets included before w32term.h uses some of its - features, see below. - - * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]: New - typedefs. - (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]: New - prototypes. - (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878) - -2012-11-17 Jan Djärv - - * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834). - (ns_select): Return at once if events are held (Bug#12834). - -2012-11-16 enami tsugutomo - - * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64. - Needed following 2012-10-20 change. (Bug#12902) - -2012-11-16 Glenn Morris - - * editfns.c (Fmessage): Mention message-log-max. (Bug#12849) - -2012-11-15 Stefan Monnier - - * eval.c (Finteractive_p): Revert lexbind-merge mishap. - -2012-11-14 Eli Zaretskii - - * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread - use the same value of thread handle. - (start_timer_thread): If the timer thread exited (due to error), - clean up by closing the two handles it used. Duplicate the caller - thread's handle here, so it gets duplicated only once, when - launching the timer thread. Set priority of the timer thread, not - the caller thread. - (getitimer): Don't duplicate the caller thread's handle here. - (Bug#12832) - -2012-11-13 Jan Djärv - - * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is - called (Bug#12834). - -2012-11-12 Eli Zaretskii - - * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument - passed to pint2str and pint2hrstr to be at most the size of the - frame's decode_mode_spec_buffer. This avoids crashes with very - large values of FIELD_WIDTH argument to decode_mode_spec. - (Bug#12867) - -2012-11-07 Martin Rudalics - - * window.c (Fsplit_window_internal): Set combination limit of - new parent window to t iff Vwindow_combination_limit is t; - fixing a regression introduced with the change from 2012-09-22. - (Fwindow_combination_limit, Fset_window_combination_limit): - Fix doc-strings. - -2012-11-06 Eli Zaretskii - - * xdisp.c (try_scrolling): Fix correction of aggressive-scroll - amount when the scroll margins are too large. When scrolling - backwards in the buffer, give up if cannot reach point or the - scroll margin within a reasonable number of screen lines. - Fixes point position in window under scroll-up/down-aggressively when - point is positioned many lines beyond the window top/bottom. - (Bug#12811) - -2012-11-05 Eli Zaretskii - - * ralloc.c (relinquish): If real_morecore fails to return memory - to the system, don't crash; instead, leave the last heap - unchanged and return. (Bug#12774) - -2012-11-03 Eli Zaretskii - - * lisp.mk: Adjust comments to the fact that term/internal is now - loaded from loadup.el. - - * msdos.c (msdos_abort): Rename from emacs_abort, and make static. - (msdos_fatal_signal): New function. - (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to - its argument list. - - * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline" - for GCC versions before 4. - (emacs_raise): Define to call msdos_fatal_signal. - - * xdisp.c (init_from_display_pos): Fix initialization of the bidi - iterator when starting in the middle of a display or overlay - string. (Bug#12745) - -2012-11-03 Jan Djärv - - * widget.c (resize_cb): New function. - (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733). - (EmacsFrameResize): Check if all is up to date before changing frame - size. - -2012-11-01 Eli Zaretskii - - * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776) - -2012-10-31 Paul Eggert - - Fix crash when using Emacs as commit editor for git (Bug#12697). - * callproc.c (setpgrp): Remove macro, as we now use setpgid - and it is configured in conf_post.h. - (Fcall_process): Don't invoke both setsid and setpgid; the former - is enough, if it exists. - * callproc.c (Fcall_process, child_setup): - * process.c (create_process): Use setpgid. - * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes - for the real thing. - * dispnew.c (init_display): Initialize the foreground group - if we are running a tty display. - * emacs.c (main): Do not worry about setpgrp; init_display does it now. - * lisp.h (init_foreground_group): New decl. - * sysdep.c (inherited_pgroup): New static var. - (init_foreground_group, tcsetpgrp_without_stopping) - (narrow_foreground_group, widen_foreground_group): New functions. - (init_sys_modes): Narrow foreground group. - (reset_sys_modes): Widen foreground group. - -2012-10-31 Michael Albinus - - * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE. - -2012-10-31 Martin Rudalics - - * minibuf.c (read_minibuf): Restore current buffer since - choose_minibuf_frame calling Fset_frame_selected_window may - change it (Bug#12766). - -2012-10-30 Jan Djärv - - * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733). - -2012-10-30 Kenichi Handa - - * font.c (Ffont_at): If WINDOW is specified and it is not - displaying the current buffer, signal an error. - -2012-10-29 Daniel Colascione - - * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode): - In preparation for fixing bug#12739, move these functions from - here... - - * coding.h, coding.c: ... to here, and compile them only when - WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper - lets us write cygw32-agnostic code for the HAVE_NTGUI case. - -2012-10-28 Eli Zaretskii - - * w32proc.c (TIMER_TICKS_PER_SEC): New macro. - (timer_loop, getitimer, setitimer): Use it instead of - CLOCKS_PER_SEC, which is no longer pertinent, since we don't use - 'clock'. - (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a - literal 10000. - -2012-10-28 Jan Djärv - - * nsterm.m (NO_APPDEFINED_DATA): New define. - (last_appdefined_event_data): New variable - (last_appdefined_event): Remove. - (ns_select): Initialize t from last_appdefined_event_data instead - of [last_appdefined_event data1]. - (sendEvent:): Save [theEvent data1] to last_appdefined_event_data, - remove last_appdefined_event (Bug#12698). - -2012-10-28 Stefan Monnier - - * frame.c (x_set_font): Catch internal error. - -2012-10-27 Eli Zaretskii - - Avoid overflow in w32 implementation of interval timers. - When possible, for ITIMER_PROF count only times the main thread - actually executes. - * w32proc.c : 'expire' and 'reload' are now - 'volatile ULONGLONG' types. All the other data which was - previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'. - (GetThreadTimes_Proc): New typedef. - (w32_get_timer_time): New function, returns a suitable time value - for the timer. - (timer_loop): Enter critical section when accessing ULONGLONG - values of the itimer_data struct, as these accesses are no longer - atomic. Call 'w32_get_timer_time' instead of 'clock'. - Remove unused variable. - (init_timers): Initialize s_pfn_Get_Thread_Times. - (start_timer_thread): Don't assign itimer->caller_thread here. - (getitimer): Assign itimer->caller_thread here. - (setitimer): Always call getitimer to get the value of ticks_now. - (sys_spawnve): Avoid compiler warning about format mismatch. - -2012-10-26 Eli Zaretskii - - * w32fns.c (w32_wnd_proc) : Don't enable tracking of - mouse movement events if the menu bar is active. This avoids - producing a busy "hour-glass" cursor by Windows if the mouse - pointer is positioned over a tooltip shown for some menu item. - -2012-10-25 Paul Eggert - - Don't assume process IDs fit in int. - * emacs.c (shut_down_emacs) [!DOS_NT]: - * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]: - * term.c (dissociate_if_controlling_tty) [!DOS_NT]: - Use pid_t, not int, to store process IDs, as 'int' - is not wide enough on a few platforms (e.g., AIX and IRIX). - -2012-10-23 Kenichi Handa - - The following change is to make face-font-rescale-alist work - correctly for non-ASCII fonts. - - * font.c (font_open_entity): Don't handle Vface_font_rescale_alist. - (font_open_for_lface): Handle Vface_font_rescale_alist. - -2012-10-23 Chong Yidong - - * xfaces.c (Vfont_list_limit): Move unused variable to faces.el. - -2012-10-21 Jan Djärv - - * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement - for screen font. - (nsfont_draw): Turn off LCD-smoothing (Bug#11484). - - * xterm.c (x_focus_changed): Check if daemonp when sending focus in - event (Bug#12681). - -2012-10-21 Glenn Morris - - * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el. - -2012-10-20 Paul Eggert - - Port to OpenBSD 5.1. - * frame.c (Fmouse_position, Fmouse_pixel_position): - * xdisp.c (produce_stretch_glyph): - Declare local vars only when they're needed. - This is clearer and avoids a warning on OpenBSD about unused vars. - * frame.h (FRAME_WINDOW_P): Always evaluate its argument. - This is safer, and avoids OpenBSD warnings about unused vars. - * keyboard.c (record_menu_key): Remove unnecessary decl. - (poll_timer): Define only if POLL_FOR_INPUT is defined. - * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined, - as our definition clashes with OpenBSD's. - * xfaces.c (load_face_colors, check_lface_attrs) - (get_lface_attributes_no_remap, get_lface_attributes) - (lface_fully_specified_p, x_supports_face_attributes_p) - (tty_supports_face_attributes_p, face_fontset, realize_face) - (realize_x_face, realize_tty_face): - Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not - merely Lisp_Object *. This is more informative and avoids - a warning on OpenBSD about accessing beyond an object's size. - -2012-10-20 Chong Yidong - - * lread.c (Fload): Doc fix (Bug#12592). - -2012-10-19 Kazuhiro Ito (tiny change) - - * font.c (Ffont_at): Fix previous change. - -2012-10-19 Eli Zaretskii - - * puresize.h (BASE_PURESIZE): Bump the base value to 1700000. - See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html - for the reasons. - - * alloc.c (NSTATICS): Decrease to 0x800. - -2012-10-19 Stefan Monnier - - * fns.c (Fnreverse): Include the problem element when signalling an - error (bug#12677). - -2012-10-18 Jan Djärv - - * nsterm.m (ns_select): Check writefds before call to - FD_ISSET (Bug#12668). - -2012-10-18 Daniel Colascione - - * alloc.c (NSTATICS): Increase from 0x650 to 0x1000 - (staticpro): If we run out of staticpro slots, die with an - informative error instead of just calling emacs_abort. - -2012-10-18 Martin Rudalics - - Fix two flaws reported by Dmitry Antipov. - * window.c (Ftemp_output_buffer_show): Remove. - (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window. - (syms_of_window): Remove defsubr for Stemp_output_buffer_show. - -2012-10-17 Eli Zaretskii - - * makefile.w32-in ($(BLD)/w32.$(O)): - ($(BLD)/vm-limit.$(O)): - ($(BLD)/term.$(O)): - ($(BLD)/unexw32.$(O)): - ($(BLD)/fileio.$(O)): - ($(BLD)/dispnew.$(O)): Update dependencies. - - * w32term.h (w32_initialize_display_info, initialize_w32_display): - Add prototypes. - - * w32proc.c: Include ctype.h. - - * w32.h (init_environment, check_windows_init_file) - (syms_of_ntproc, syms_of_ntterm, dostounix_filename) - (unixtodos_filename, init_winsock, srandom, random, sys_pipe) - (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd) - (sys_link): Add prototypes. - - * w32.c: Include w32select.h. - (sys_access, e_malloc, sys_select): Add prototypes. - (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval. - - * vm-limit.c [WINDOWSNT]: Include w32heap.h. - - * unexw32.c: Include lisp.h and w32.h. - - * term.c [WINDOWSNT]: Include w32term.h. - - * process.c [WINDOWSNT]: Add prototype of sys_select. - - * fileio.c [WINDOWSNT]: Include w32.h. - - * dispnew.c [WINDOWSNT]: Include w32.h. - - * cygw32.c (Fcygwin_convert_path_to_windows) - (Fcygwin_convert_path_from_windows): Use EQ to compare 2 - Lisp_Object values. (Bug#12661) - - * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer - to Lisp_Object. (Bug#12661) - -2012-10-17 Kenichi Handa - - * xdisp.c (reseat_1): Make the information stored in it->cmp_it - invalidate. - -2012-10-17 Dmitry Antipov - - * buffer.c (Fkill_buffer): When unchaining the marker, - reset its buffer pointer to NULL (Bug#12652). - -2012-10-17 Dmitry Antipov - - Do not verify indirection counters of killed buffers (Bug#12579). - * buffer.h (BUFFER_CHECK_INDIRECTION): New macro. - * buffer.c (compact_buffer, set_buffer_internal_1): Use it. - -2012-10-16 Dmitry Antipov - - * alloc.c (Fmake_byte_code): Fix typo in comment. - * print.c (print_interval): Define as static to match prototype. - * indent.c (disptab_matches_widthtab, recompute_width_table): - Convert to eassert. - -2012-10-16 Dmitry Antipov - - * editfns.c (get_system_name): Remove. - * lisp.h (get_system_name): Remove prototype. - * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes. - (get_environ_db): Use Vsystem_name. Avoid call to strlen. - -2012-10-15 Daniel Colascione - - * dbusbind.c: Add comment explaining reason for previous change. - -2012-10-15 Martin Rudalics - - * window.c (Fwindow_end): Rewrite check whether cached position - can be used (Bug#12600). - (resize_frame_windows, grow_mini_window, shrink_mini_window): - Set windows_or_buffers_changed. - -2012-10-15 Daniel Colascione - - * dbusbind.c: Fix cygw32 build break when compiling with dbus - enabled by undefining the symbol "interface", which the platform - headers define to something incompatible. - -2012-10-14 Daniel Colascione - - * image.c (init_tiff_functions, init_imagemagick_functions) - (init_svg_functions): Fix cygw32 build break by using these - functions only when WINDOWSNT _and_ HAVE_NTGUI. - -2012-10-14 Jan Djärv - - * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422). - -2012-10-13 Jan Djärv - - * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). - -2012-10-13 HANATAKA, Shinya (tiny change) - - * coding.c (detect_coding): Set coding->id before calling - this->detector. - -2012-10-13 Andreas Schwab - - * fileio.c: Formatting fixes. - -2012-10-13 Paul Eggert - - Fix some stat-related races. - * fileio.c (Fwrite_region): Avoid race condition if a file is - removed or renamed by some other process immediately after Emacs - writes it but before Emacs stats it. Do not assume that stat (or - fstat) succeeds. - * image.c (slurp_file): Resolve the file name with fopen + fstat - rather than stat + fopen. - (pbm_read_file) [0]: Remove unused code with stat race. - * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]: - Remove ineffective code with stat race. - -2012-10-12 Stefan Monnier - - * doc.c (get_doc_string): Don't signal an error if the file is missing. - -2012-10-12 Jan Djärv - - * nsterm.m (hold_event_q): New static variable. - (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if - ! q_event_ptr. - (hold_event): New function. - (ns_read_socket): If hold_event_q have events, store them and - return (Bug#12384). - (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr - is zero (Bug#12384). - -2012-10-12 Juanma Barranquero - - * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies. - -2012-10-12 Eli Zaretskii - - * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h. - - * fileio.c (check_existing): New function. - (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it - instead of calling 'stat', when what's needed is to check whether - a file exists. This avoids expensive system calls on MS-Windows. - (Bug#12587) - - * w32.c (init_environment): Call 'check_existing' instead of 'stat'. - - * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to - determine whether a file exists and is not a directory. - - * lisp.h (check_existing): Add prototype. - -2012-10-12 Jan Djärv - - * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. - -2012-10-12 Glenn Morris - - * buffer.c (Fset_buffer): Doc fix. (Bug#12624) - -2012-10-11 Stefan Monnier - - * buffer.c (Fkill_buffer): Null out the overlay list(s) as well. - - * eval.c (Fautoload): Remember previous autoload status in load-history. - -2012-10-11 Paul Eggert - - lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans. - * lread.c (load_each_byte, new_backquote_flag, readchar) - (read_filtered_event, lisp_file_lexically_bound_p) - (safe_to_load_version, Fload, complete_filename_p, openp) - (build_load_history, readevalloop, read_escape, read1) - (string_to_number, read_vector, read_list): - * macros.c (Fstart_kbd_macro): - * marker.c (CONSIDER): - * menu.c (parse_single_submenu, digest_single_submenu) - (find_and_return_menu_selection, Fx_popup_menu): - * minibuf.c (read_minibuf_noninteractive, read_minibuf) - (Ftry_completion): - * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:): - (ns_menu_show): - * xmenu.c (set_frame_menubar, create_and_show_popup_menu) - (xmenu_show, xdialog_show): - Use bool for booleans. - * lread.c (safe_to_load_version): Rename from safe_to_load_p, - as it's not a predicate. All uses changed. Omit unnecessary - buffer termination. - -2012-10-11 Dmitry Antipov - - * editfns.c (save_excursion_save): Use nil if mark points to nowhere. - (save_excursion_restore): Do not restore mark if it was not saved. - -2012-10-11 Paul Eggert - - * marker.c (cached_modiff): EMACS_INT, not int. - - * w32select.c (waiting_for_input): Declare by including "keyboard.h" - instead of having a wrong decl. - * nsmenu.m (waiting_for_input): Remove wrong decl. - -2012-10-10 Paul Eggert - - keyboard.c, keymap.c: Use bool for booleans. - * dispnew.c (sit_for): Distinguish between 3-way display_option - and boolean do_display. - * keyboard.c (single_kboard, this_command_key_count_reset) - (waiting_for_input, echoing, immediate_quit, input_pending) - (interrupt_input, interrupts_deferred, pop_kboard) - (temporarily_switch_to_single_kboard, ignore_mouse_drag_p) - (command_loop_1, adjust_point_for_property) - (safe_run_hooks_error, input_polling_used, read_char): - (help_char_p, readable_events, kbd_buffer_events_waiting) - (kbd_buffer_get_event, timer_check_2, make_lispy_event) - (lucid_event_type_list_p, get_input_pending): - (gobble_input, menu_separator_name_p, menu_bar_item) - (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt) - (read_char_minibuf_menu_prompt, access_keymap_keyremap) - (keyremap_step, test_undefined, read_key_sequence) - (detect_input_pending, detect_input_pending_ignore_squeezables) - (detect_input_pending_run_timers, requeued_events_pending_p) - (quit_throw_to_read_char, Fset_input_interrupt_mode): - * keymap.c (get_keymap, keymap_parent, keymap_memberp) - (access_keymap_1, access_keymap, map_keymap, get_keyelt) - (Fdefine_key, Flookup_key, struct accessible_keymaps_data) - (accessible_keymaps_1, Fkey_description, push_key_description): - (shadow_lookup, struct where_is_internal_data) - (where_is_internal, Fwhere_is_internal, where_is_internal_1) - (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt) - (describe_map, describe_vector): - * menu.c (single_menu_item): - * nsmenu.m (ns_update_menubar): - * process.c (wait_reading_process_output): - * search.c (scan_buffer, scan_newline): - Use bool for boolean. - * keyboard.c (timers_run, swallow_events) - (detect_input_pending_run_timers): - * process.c (wait_reading_process_output): - Use unsigned for counter where wraparound-on-overflow is desired, - since unsigned is guaranteed to have that behavior and signed is not. - (read_char): Use ptrdiff_t for string length. - (get_input_pending): Remove first argument, since it was always - the same pointer-to-int (now pointer-to-boolean) &input_pending, - and behave as if it had that value. Return new value of - input_pending. All callers changed. - * keyboard.h (struct kboard): Use unsigned : 1 for boolean member - immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's - a string length. - * keymap.c (push_key_description): Omit last arg, which was always 1. - All callers changed. - - * regex.c (immediate_quit) [emacs]: Remove duplicate decl. - -2012-10-10 Juanma Barranquero - - * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O)) - ($(BLD)/term.$(O)): Update dependencies. - -2012-10-10 Dmitry Antipov - - * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR. - * lisp.h (enum pvec_type): Adjust comments and omit explicit - initializer for PVEC_NORMAL_VECTOR. - -2012-10-10 Paul Eggert - - Clean out old termopts cruft. - * termopts.h (flow_control, meta_key): Remove unused decls. - * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c: - Don't include termopts.h. - -2012-10-10 Dmitry Antipov - - * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. - -2012-10-10 Paul Eggert - - * commands.h (immediate_quit): Remove duplicate decl. - -2012-10-09 Jan Djärv - - * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles - caching. - (nsfont_open): Remove setting of Vfonts_in_cache. - (syms_of_nsfont): Remove initialization of Vfonts_in_cache. - -2012-10-09 Eli Zaretskii - - * w32fns.c (w32_last_error): Change the return value to DWORD, to - match what GetLastError returns. Explain why the function is - needed. - - * frame.c (delete_frame): Rename local variable 'tooltip_frame' to - 'is_tooltip_frame', to avoid confusion with its global namesake. - -2012-10-08 Daniel Colascione - - * xdisp.c (start_hourglass): Call w32_note_current_window when - HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32 - build that caused Emacs to display the hourglass cursor forever. - - * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS, - which is broken under remote desktop, calculate the number of - colors available for a display based on the display's number of - planes and number of bits per pixel per plane. (bug#10397). - -2012-10-08 Jan Djärv - - * nsfont.m (Vfonts_in_cache): New variable. - (nsfont_open): Use unsignedLongLongValue for cache in case wide ints - are used. Add cached fonts to Vfonts_in_cache. - (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache. - -2012-10-08 Juanma Barranquero - - * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now - in nt/config.nt. - (FONT_H): Define after FRAME_H. - ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)): - Update dependencies. - - * w32term.c: Remove leftover declaration of keyboard_codepage. - -2012-10-08 Eli Zaretskii - - * 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. - ($(BLD)/unexw32.$(O)): - ($(BLD)/w32.$(O)): - ($(BLD)/w32console.$(O)): - ($(BLD)/w32fns.$(O)): - ($(BLD)/w32heap.$(O)): - ($(BLD)/w32menu.$(O)): - ($(BLD)/w32proc.$(O)): Add w32common.h. - - * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now - 'const char *'. - (x_to_w32_color): Don't modify the argument, modify a copy instead. - -2012-10-08 Daniel Colascione - - * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY) - (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close - accidental message numbering hole. Change other messages to - match. - - * w32select.h (HAVE_W32SELECT): Remove. - - * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include - w32common.h instead of w32heap.h. - - * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size) - (get_allocation_unit, get_processor_type, get_w32_major_version) - (get_w32_minor_version, sysinfo_cache, osinfo_cache) - (w32_major_version, w32_minor_version, w32_build_number, OS_9X) - (OS_NT, os_subtype, cache_system_info): Move declarations to - w32common. - - * w32heap.c: Include w32common.h. - (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version) - (w32_minor_version, w32_build_number, w32_subtype): - Remove duplicate definitions. - - * w32fns.c: Include w32common.h; include w32heap.h only in - WINDOWSNT. - - (Fx_file_dialog): Clarify comment on GetOpenFileName structure. - Use `report_file_error' instead of `error' in order to better - inform users of what went wrong. Increase NTGUI_UNICODE file - dialog box file name length to 32k, the maximum allowed by the NT - kernel. - - * w32common.h: New file. - (ROUND_UP, ROUND_DOWN, get_page_size) - (get_allocation_unit, get_processor_type, get_w32_major_version) - (get_w32_minor_version, sysinfo_cache, osinfo_cache) - (w32_major_version, w32_minor_version, w32_build_number, OS_9X) - (OS_NT, os_subtype, cache_system_info): Move here. - - * unexw32.c, unexcw.c: Include w32common.h. - - * emacs.c (main): Use (defined (WINDOWSNT) || defined - HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether - to call syms_of_w32select. - - * cygw32.h: Remove obsolete EXFUN declarations. - - * cygw32.c (Qutf_16_le): Rename to Qutf_16le. - - * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal - of w32inevt.o from SOME_MACHINE_OBJECTS. - -2012-10-08 Daniel Colascione - - * image.c: Permanent fix for JPEG compilation issue --- limit - jpeglib `boolean' redefinition to Cygwin builds. - -2012-10-08 Eli Zaretskii - - * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. - - * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on - Cygwin. - -2012-10-08 Daniel Colascione - - * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c, - w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c, - w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h, - w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h, - keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c, - emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h, - Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the - operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is - now a supported configuration. - - * Makefile.in: consolidate image variables into LIBIMAGE; add - W32_OBJ and W32_LIBS. Compile new files. - - * conf_post.h: - (_DebPrint) declare tracing facility for W32 debugging. We need - to unify tracing later. - - (NTGUI_UNICODE) Define when compiling for Cygwin to allow the - unconditional use of W32 Unicode functions. Cygwin runs only on - 100% Unicode operating systems. - - * cygw32.c: New file. Define Cygwin-specific facilities. - (Fcygwin_convert_path_to_windows) - (Fcygwin_convert_path_from_windows): New user functions for - accessing Cygwin path-munging routines. - - * cygw32.h: New file. - (WCSDATA, to_unicode, from_unicode): Define facilities for storing - UTF-16LE strings temporarily inside non-Lisp-visible string - objects. - - (w32_strerror): Just what it says on the tin. - - * emacs.c: Make the NS fork-then-exec code for daemon-launching - also run for Cygwin; both systems have the same problem with using - GUI facilities in a forked child. Also call syms_of_cygw32, - syms_of_w32select in correct places. - - (DAEMON_MUST_EXEC): new macro defined to signal that a platform - needs fork-then-exec for daemon launching. - - * font.h: Include frame.h. - - * image.c: Use the image library cache machinery only when we're - compiling for native WINDOWSNT; Cygwin can use shared libraries - like any other Unixlike system. - - * keyboard.c: Clarify a comment regarding the input loop. - - * menu.c: When NTGUI_UNICODE is defined, use Unicode menu - functions directly instead of trying to detect at runtime that our - host operating system supports them. We make this change for two - reasons: Cygwin lacks support for the multibyte character - conversion functions used by the legacy menu code, and Cygwin - never needs to rely on non-Unicode APIs. - - * unexw32.c (hinst): Declare extern. - - * w32.c: Change header order; - (w32_strerror): Move to w32fns.c because we need it for - non-WINDOWSNT builds. - - * w32.h: Add #error macro to make sure we don't include w32.h for - Cygwin builds. Remove w32select declarations. - - * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to - w32fns.c. w32console.c is WINDOWSNT-only. - - * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more - NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more - POSIXy alternative. - (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask) - (w32_major_version, w32_minor_version, w32_build_number) - (os_subtype, sound_type): Define here - (w32_defined_color): Make color parameter const for consistency - with other _defined_color functions. - (w32_createwindow): Unconditionally call w32_init_class instead of - doing so only when hprevinst is non-NULL. Plumbing hprevinst - through the code is complex and unnecessary because class - registration is practically free. - (w32_name_of_message): New EMACSDEBUG-only function. - (Fset_message_beep): Move here - (Fx_open_connection): Require that the display name for Windows be - "w32" for consistency, emacsclient disambiguation, and maybe, one - day, multi-window-system support. - (file_dialog_callback): NTGUI_UNICODE changes; encode and decode - Cygwin files for W32 GUI facilities, since these clearly don't - expect Cygwin names. - (_DebPrint): Define. - (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs) - (w32_kbd_patch_key, w32_sys_ring_bell): Move here. - (Ssystem_move_file_to_trash): Define only for native WINDOWSNT. - (w32_last_error): Remove. - - * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds. - - * w32heap.c (syspage_mask): Declare here. - (cache_system_info): Remove. - - * w32inevt.c (faked_key): Define globally, not statically. - (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key) - (w32_console_toggle_lock_key): Move to w32fns.c. - - * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout. - - * w32proc.c (_DebPrint): Move to w32fns.c. - * w32select.c: Include string.h, stdio.h for Cygwin. - * w32select.h: New File. - - * w32term.c: Include io.h for non-CYGWIN builds; needed for - get_osfhandle. - (w32_message_fd): New variable. Under Cygwin, holds the file - descriptor the system used to tell us about pending thread - messages. - - (w32_init_term): Remove incorrect calls to fcntl and init_sigio - that prevented compilation under non-WINDOWSNT systems. - - (w32_initialize): Open /dev/windows and assign it to - w32_message_fd. Provide w32 feature. - - * w32term.h: Include frame.h, atimer.h. Declare various frame functions. - (WM_EMACS_INPUT_READY): add. - (prepend_msg, w32_message_fd): Declare globally. - - * w32xfns.c: - (keyboard_handle): Use only when WINDOWSNT. - (notify_msg_ready): New function. Posts a message to the main - thread's message queue under CYGWIN, which wakes up the main - thread from select(2) by making the /dev/windows file descriptor - ready. Under WINDOWSNT, it sets an event the same way the old - code did. - - (post, prepend_msg): Actually call notify_msg_ready instead of - setting the input event directly. - -2012-10-07 Eli Zaretskii - - * ralloc.c (relinquish): If a heap is ready to be relinquished, - but it still has blocs in it, don't return it to the system, - instead of aborting. (Bug#12402) - -2012-10-07 Jan Djärv - - * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). - - * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of - MAC_OS_X_VERSION_10_6. - (syms_of_nsterm): Remove comment about Panther and above for - ns-antialias-text. - * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. - (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. - (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. - - * nsselect.m (ns_string_from_pasteboard): Remove check for >= - MAC_OS_X_VERSION_10_4. - - * nsmenu.m (fillWithWidgetValue:): Remove code for < - MAC_OS_X_VERSION_10_2. - - * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. - - * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4. - (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4. - - * nsterm.m (ns_in_resize): Remove (Bug#12479). - (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. - (ns_clear_frame, sendEvent, windowDidResize, drawRect:): - Remove ns_in_resize check. - (ns_clear_frame_area): Remove resize handle code. - - * nsfns.m (ns_in_resize): Remove. - (x_set_icon_name, ns_set_name, ns_set_name_as_filename): - Remove ns_in_resize check. - -2012-10-07 Paul Eggert - - Improve sys_siglist detection. - * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's - defined as a macro, as is done in Solaris. - (sys_siglist_entries): New macro. - (save_strsignal): Use it. - * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify - GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection. - -2012-10-06 Jan Djärv - - * nsfns.m (Fx_create_frame): Call x_default_parameter with - fullscreen/Fullscreen. - - * nsterm.h (EmacsView): Rename tbar_height to tibar_height. - tobar_height is new. - - * nsterm.m (x_make_frame_visible): Check for fullscreen. - (ns_fullscreen_hook): Activate old style fullscreen with a timer. - (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen. - (windowDidResize:): Check for correct window if old style fullscreen. - Capitalize word in comment. Remove incorrect comment. - (initFrameFromEmacs:): tbar_height renamed tibar_height. - (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix - error in drawing background. - (toggleFullScreen:): Remove comment. Rearrange calls. - Set toolbar values to zero, save old height in tobar_height. - Restore tool bar height when leaving fullscreen. - (canBecomeMainWindow): New function. - -2012-10-06 Paul Eggert - - * keyboard.c (read_char): Remove unnecessary 'volatile's and label. - -2012-10-05 Eli Zaretskii - - * w32proc.c (stop_timer_thread): Fix declaration of 'err'. - - * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so - that time stamps of directories could also be changed. - Don't request the too broad GENERIC_WRITE, only the more restrictive - FILE_WRITE_ATTRIBUTES access rights. - - * fileio.c (Fset_file_times): Special-case ignoring errors for - directories only on MSDOS, not on MS-Windows. - -2012-10-05 Ikumi Keita (tiny change) - - * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555) - -2012-10-04 Eli Zaretskii - - * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to - see whether CreateFile failed. - -2012-10-04 Paul Eggert - - * profiler.c (handle_profiler_signal): Inhibit pending signals too, - to avoid similar races. - * keyboard.c (pending_signals): Now bool, not int. - - Port timers to OpenBSD, plus check for timer failures. - OpenBSD problem reported by Han Boetes. - * profiler.c (setup_cpu_timer): Check for failure of timer_settime - and/or setitimer. - (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER. - * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms - like OpenBSD, which has timer_settime but does not declare it. - OpenBSD does not define SIGEV_SIGNAL, so use that when deciding - whether to use itimerspec-related primitives. All uses of - HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC. - -2012-10-02 Paul Eggert - - * profiler.c (handle_profiler_signal): Fix a malloc race - that caused Emacs to hang on Fedora 17 when profiling Lisp. - -2012-10-02 Jan Djärv - - * nsterm.m (windowDidEnterFullScreen): Remove fprintf. - -2012-10-02 Eli Zaretskii - - * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be - consistent with the change in return value of 'safe_strsignal'. - -2012-10-02 Paul Eggert - - Prefer plain 'static' to 'static inline' (Bug#12541). - * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category) - (bidi_set_sor_type, bidi_push_embedding_level) - (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it) - (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state) - (bidi_cache_search, bidi_cache_ensure_space) - (bidi_cache_iterator_state, bidi_cache_find) - (bidi_peek_at_next_level, bidi_set_paragraph_end) - (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char) - (bidi_explicit_dir_char, bidi_resolve_neutral_1): - Now 'static', not 'static inline'. - - Count overruns when profiling; change units to ns. - * profiler.c (handle_profiler_signal): Count sampling intervals, not ms. - Give extra weight to samples after overruns, to attempt to count - the time more accurately. - (setup_cpu_timer): Change sampling interval units from ms to ns, since - the underlying primitives nominally do ns. - (Fprofiler_cpu_start): Document the change. Mention that - the sampling intervals are only approximate. - -2012-10-02 Stefan Monnier - - * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP. - - * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special - case for the special 0 coding-system. - - * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening. - (Fmake_overlay): Remove redundant tests. - (fix_start_end_in_overlays): Remove redundant recentering. - -2012-10-02 Juanma Barranquero - - * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)): - Update dependencies. - -2012-10-01 Paul Eggert - - Fix a malloc race condition involving strsignal. - A signal can arrive in the middle of a malloc, and Emacs's signal - handler can invoke strsignal, which can invoke malloc, which is - not portable. This race condition bug makes Emacs hang on GNU/Linux. - Fix it by altering the signal handler so that it does not invoke - strsignal. - * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal. - * process.c (status_message): Use const pointer, in case strsignal - is #defined to safe_strsignal. - * sysdep.c (sys_siglist, init_signals): Always define and - initialize a substitute sys_siglist if the system does not define - one, even if HAVE_STRSIGNAL. - (safe_strsignal): Rename from strsignal. Always define, - using sys_siglist. Return a const pointer. - * syssignal.h (safe_strsignal): New decl. - (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal. - -2012-10-01 Eli Zaretskii - - * w32proc.c (timer_loop): Fix code that waits for timer - expiration, to avoid high CPU usage. - -2012-10-01 Stefan Monnier - - * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table) - (sweep_weak_table): Remove redundant prototypes. - -2012-10-01 Fabrice Popineau - - * emacs.c: Move the inclusion of TERM_HEADER after including - windows.h on WINDOWSNT. This avoids compilation problems with - MSVC. - -2012-10-01 Eli Zaretskii - - * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET) - (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses. - (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *', - as the previous version used 'void *'. - - * ralloc.c (ROUNDUP): Fix last change. - (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type - 'size_t'. - - * w32proc.c : New static flag. - (init_timers): Initialize it to zero, after creating the critical - sections used by the timer threads. - (term_timers): Set to 1 before deleting the critical sections. - (getitimer, setitimer): If disable_itimers is non-zero, return an - error indication without doing anything. Reported by Fabrice - Popineau as part of bug#12544. - (alarm) [HAVE_SETITIMER]: Be more conformant to the expected - return results. - [!HAVE_SETITIMER]: Behave as the previous version that didn't - support timers. - - * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to - term_ntproc after all the other bookkeeping, to get timers working - as long as possible. - -2012-10-01 Paul Eggert - - * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100. - Suggested by Juri Linkov in - . - - Prefer plain 'static' to 'static inline' (Bug#12541). - With static functions, modern compilers inline pretty well by - themselves; advice from programmers often hurts as much as it helps. - On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'), - this change shrinks the text size of the Emacs executable by 1.1% - without affecting CPU significantly in my benchmark. - * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p) - (live_float_p, live_misc_p, live_vector_p, live_buffer_p) - (mark_maybe_object, mark_maybe_pointer, bounded_number): - * buffer.c (bset_abbrev_mode, bset_abbrev_table) - (bset_auto_fill_function, bset_auto_save_file_format) - (bset_auto_save_file_name, bset_backed_up, bset_begv_marker) - (bset_bidi_display_reordering, bset_buffer_file_coding_system) - (bset_cache_long_line_scans, bset_case_fold_search) - (bset_ctl_arrow, bset_cursor_in_non_selected_windows) - (bset_cursor_type, bset_display_table, bset_extra_line_spacing) - (bset_file_format, bset_file_truename, bset_fringe_cursor_alist) - (bset_fringe_indicator_alist, bset_fringes_outside_margins) - (bset_header_line_format, bset_indicate_buffer_boundaries) - (bset_indicate_empty_lines, bset_invisibility_spec) - (bset_left_fringe_width, bset_major_mode, bset_mark) - (bset_minor_modes, bset_mode_line_format, bset_mode_name) - (bset_name, bset_overwrite_mode, bset_pt_marker) - (bset_right_fringe_width, bset_save_length) - (bset_scroll_bar_width, bset_scroll_down_aggressively) - (bset_scroll_up_aggressively, bset_selective_display) - (bset_selective_display_ellipses, bset_vertical_scroll_bar_type) - (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before) - (set_buffer_overlays_after): - * category.c (bset_category_table): - * charset.c (read_hex): - * coding.c (produce_composition, produce_charset) - (handle_composition_annotation, handle_charset_annotation) - (char_encodable_p): - * dispnew.c (swap_glyph_pointers, copy_row_except_pointers) - (assign_row, set_frame_matrix_frame, make_current) - (add_row_entry): - * eval.c (set_specpdl_symbol, set_specpdl_old_value): - * fns.c (maybe_resize_hash_table): - * frame.c (fset_buffer_predicate, fset_minibuffer_window): - * gmalloc.c (register_heapinfo): - * image.c (lookup_image_type): - * intervals.c (set_interval_object, set_interval_left) - (set_interval_right, copy_interval_parent, rotate_right) - (rotate_left, balance_possible_root_interval): - * keyboard.c (kset_echo_string, kset_kbd_queue) - (kset_keyboard_translate_table, kset_last_prefix_arg) - (kset_last_repeatable_command, kset_local_function_key_map) - (kset_overriding_terminal_local_map, kset_real_last_command) - (kset_system_key_syms, clear_event, set_prop): - * lread.c (digit_to_number): - * marker.c (attach_marker, live_buffer, set_marker_internal): - * nsterm.m (ns_compute_glyph_string_overhangs): - * process.c (pset_buffer, pset_command) - (pset_decode_coding_system, pset_decoding_buf) - (pset_encode_coding_system, pset_encoding_buf, pset_filter) - (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel) - (pset_status, pset_tty_name, pset_type, pset_write_queue): - * syntax.c (bset_syntax_table, dec_bytepos): - * terminal.c (tset_param_alist): - * textprop.c (interval_has_some_properties) - (interval_has_some_properties_list): - * window.c (wset_combination_limit, wset_dedicated) - (wset_display_table, wset_hchild, wset_left_fringe_width) - (wset_left_margin_cols, wset_new_normal, wset_new_total) - (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm) - (wset_right_fringe_width, wset_right_margin_cols) - (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild) - (wset_vertical_scroll_bar_type, wset_window_parameters): - * xdisp.c (wset_base_line_number, wset_base_line_pos) - (wset_column_number_displayed, wset_region_showing) - (window_box_edges, run_window_scroll_functions) - (append_glyph_string_lists, prepend_glyph_string_lists) - (append_glyph_string, set_glyph_string_background_width) - (append_glyph, append_composite_glyph) - (take_vertical_position_into_account): - * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors) - (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive) - (lface_hash, lface_same_font_attributes_p, lookup_face): - * xml.c (libxml2_loaded_p): - * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc) - (x_set_glyph_string_clipping, x_clear_glyph_string_rect): - Now 'static', not 'static inline'. - - * bidi.c: Tune. - (bidi_copy_it): Do the whole copy with a single memcpy. - (bidi_char_at_pos): Merge the two STRING_CHAR calls into one. - - Revert the FOLLOW-SYMLINKS change for file-attributes. - Doing it right would require several changes to Tramp, and there's - not enough time to get that tested before the freeze today. - * dired.c (directory_files_internal, Ffile_attributes): - Undo last change. - - * frame.c (x_report_frame_params): Port better to wider ints. - Do not assume that EMACS_UINT is the same width as uprintmax_t, - or that pointers can be printed in 15 decimal digits. - Avoid GCC warnings if EMACS_UINT is wider than a pointer. - -2012-09-30 Fabrice Popineau - - Support x64 build on MS-Windows. - * 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. - (x_get_focus_frame): Add prototype. - - * w32term.c (w32_draw_underwave): Don't use GCC extensions for - defining an XRectangle structure. - - * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer - arithmetics for compatibility with x64. - - * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for - compatibility with x64. - - * w32heap.h: Adjust prototypes and declarations. - - * 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. - - * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being - less than 0x0500. - (w32_msg_pump): Use WPARAM type for 'result'. - - * w32.c (init_environment, get_emacs_configuration): Support AMD64 - architecture. - (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for - compatibility with x64. - - * 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. - - * 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. - - * sysdep.c (STDERR_FILENO): Define if not already defined. - - * 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. - - * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE. - (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE) - instead of a literal number. - - * gmalloc.c [WINDOWSNT]: Include w32heap.h. - (min): Define only if not already defined. - - * 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. - - * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since - 'bitmaps' is a pointer. - - * dispextern.h (x_bitmap_pixmap): Adjust prototype. - - * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__. - -2012-09-30 Paul Eggert - - file-attributes has a new optional arg FOLLOW-SYMLINKS. - * dired.c (directory_files_internal, Ffile_attributes): - New arg follow_symlinks. All uses changed. - -2012-09-30 Stefan Monnier - - * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change. - -2012-09-30 Eli Zaretskii - - Support atimers and CPU profiler via profile.c on MS-Windows. - * w32proc.c (sig_mask, crit_sig): New static variables. - (sys_signal): Support SIGALRM and SIGPROF. - (sigemptyset, sigaddset, sigfillset, sigprocmask) - (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset, - sigfillset, and sigprocmask are no longer no-ops. - (sigismember): New function. - (struct itimer_data): New definition. - (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real) - (crit_prof): New static variables. - (MAX_SINGLE_SLEEP): New definition. - (timer_loop, stop_timer_thread, term_timers, init_timers) - (start_timer_thread, getitimer, setitimer): New functions. - (alarm): No longer a no-op, calls setitimer. - - * w32.c (term_ntproc): Call term_timers. - (init_ntproc): Make sure all signals are unblocked at startup, to - erase any traces of dumping. Call init_timers. - - * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove. - Windows-specific code to display the hourglass mouse pointer is no - longer used. - (w32_wnd_proc): Remove code that handled the WM_TIMER message due - to hourglass timer expiration. - (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY): - Remove, no longer used. - (w32_note_current_window, show_hourglass, hide_hourglass): - New functions, in support of hourglass cursor display similar to other - window systems. - (syms_of_w32fns): Don't initialize hourglass_timer. - - * xdisp.c (start_hourglass, cancel_hourglass): Now used on - WINDOWSNT as well. - (start_hourglass) [WINDOWSNT]: Call w32_note_current_window. - - * w32.h (init_timers, term_timers): Add prototypes. - -2012-09-30 Kenichi Handa - - * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention - to the buffer relocation which may be caused by ccl_driver. - -2012-09-30 Jan Djärv - - * xfns.c (Fx_file_dialog): Update comment. - - * w32fns.c (Fx_file_dialog): Update comment. - - * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P. - Initialize panel name field if OSX >= 10.6. - - * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS. - - * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen. - - * nsterm.m (NEW_STYLE_FS): New define. - (ns_fullscreen_hook, windowWillEnterFullScreen) - (windowDidEnterFullScreen, windowWillExitFullScreen) - (windowDidExitFullScreen, toggleFullScreen, handleFS) - (setFSValue): New functions. - (EmacsFSWindow): New implementation. - (canBecomeKeyWindow): New function for EmacsFSWindow. - (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook. - (dealloc): Release nonfs_window if in fullscreen. - (updateFrameSize:): Call windowDidMove to update top/left. - (windowWillResize:toSize:): Check if frame is still maximized. - (initFrameFromEmacs:): Initialize fs_state, fs_before_fs, - next_maximized, maximized_width, maximized_height and nonfs_window. - Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and - tbar_height. - (windowWillUseStandardFrame:defaultFrame:): Update frame parameter - fullscreen. Set maximized_width/height. Act on next_maximized. - - * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New. - (EmacsView): Add variables for fullscreen. - (handleFS, setFSValue, toggleFullScreen): New in EmacsView. - (EmacsFSWindow): New interface for fullscreen. - -2012-09-30 Juanma Barranquero - - * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. - -2012-09-30 Chong Yidong - - * fns.c (Frandom): Doc fix. - -2012-09-30 Martin Rudalics - - * window.c (Vwindow_combination_limit): New default value. - (Qwindow_size): New symbol replacing Qtemp_buffer_resize. - -2012-09-30 Paul Eggert - - * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING. - Suggested by Eli Zaretskii in - . - -2012-09-30 Eli Zaretskii - - * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if - HAVE_TIMER_SETTIME is defined. - -2012-09-30 Paul Eggert - - Profiler improvements: more-accurate timers, overflow checks. - * profiler.c: Don't include stdio.h, limits.h, sys/time.h, - signal.h, setjmp.h. Include systime.h instead. - (saturated_add): New function. - (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t. - (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow. - (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]: - New static vars. - (enum profiler_cpu_running): New enum. - (profiler_cpu_running): Now of that enum type, not bool. - All uses changed to store the new value. - (handle_profiler_signal): Rename from sigprof_handler_1, - for consistency with other handlers. Do not check whether - cpu_log is a hash-table if garbage collecting, since it - doesn't matter in that case. - (deliver_profiler_signal): Rename from sigprof_handler, - for consistency with other handlers. - (setup_cpu_timer): New function, with much of what used to be in - Fprofiler_cpu_start. Check for out-of-range argument. - Prefer timer_settime if available, and prefer - thread cputime clocks, then process cputime clocks, then - monotonic clocks, to the old realtime clock. Use make_timeval - to round more-correctly when falling back to setitimer. - (Fprofiler_cpu_start): Use it. - (Fprofiler_cpu_stop): Prefer timer_settime if available. - Don't assume that passing NULL as the 2nd argument of setitimer - is the same as passing a pointer to all-zero storage. - Ignore SIGPROF afterwards. - (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM. - * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in - non-fatal signal handlers. Ignore SIGPROF on startup. - * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not - in profiler.c, since sysdep.c now uses it. - - * sysdep.c (handle_fatal_signal): Bump backtrace size to 40. - Suggested by Eli Zaretskii in - . - -2012-09-29 Juanma Barranquero - - * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. - -2012-09-29 Stefan Monnier - - * lisp.h (struct backtrace): Remove indirection for `function' field. - * xdisp.c (redisplay_internal): - * profiler.c (record_backtrace, sigprof_handler_1): - * alloc.c (Fgarbage_collect): - * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace) - (Fbacktrace_frame): Adjust accordingly. - -2012-09-28 Glenn Morris - - * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success) - (Frun_hook_with_args_until_failure): Doc fixes. - -2012-09-28 Eli Zaretskii - - * xdisp.c (syms_of_xdisp) : Rename from - Qautomatic_redisplay and change the symbol name. All users changed. - -2012-09-28 Tomohiro Matsuyama - - * profiler.c (sigprof_handler): Fix race condition. - -2012-09-28 Glenn Morris - - * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528) - -2012-09-27 Paul Eggert - - Check more robustly for timer_settime. - * Makefile.in (LIB_TIMER_TIME): New macro. - (LIBES): Add it. - * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer): - Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to - call timer_settime. - -2012-09-26 Tomohiro Matsuyama - - * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO. - -2012-09-26 Juanma Barranquero - - * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. - -2012-09-26 Paul Eggert - - * character.h (MAYBE_UNIFY_CHAR): Remove. - * charset.c, charset.h (maybe_unify_char): Now static. - * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR. - Since this stuff is now private to charset.c, there's no need for - a public macro and no need to inline by hand. - -2012-09-26 Tomohiro Matsuyama - Stefan Monnier - Juanma Barranquero - - * profiler.c: New file. - * Makefile.in (base_obj): Add profiler.o. - * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c. - ($(BLD)/profiler.$(O)): New target. - * emacs.c (main): Call syms_of_profiler. - * alloc.c (Qautomatic_gc): New constant. - (MALLOC_PROBE): New macro. - (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it. - (total_bytes_of_live_objects): New function. - (Fgarbage_collect): Use it. Record itself in backtrace_list. - Call malloc_probe for the memory profiler. - (syms_of_alloc): Define Qautomatic_gc. - * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid - race condition. - (struct backtrace): Move definition... - * lisp.h (struct backtrace): ..here. - (Qautomatic_gc, profiler_memory_running): Declare vars. - (malloc_probe, syms_of_profiler): Declare functions. - * xdisp.c (Qautomatic_redisplay): New constant. - (redisplay_internal): Record itself in backtrace_list. - (syms_of_xdisp): Define Qautomatic_redisplay. - -2012-09-25 Eli Zaretskii -2012-09-25 Juanma Barranquero - - * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies. - -2012-09-25 Paul Eggert - - Prefer POSIX timers if available. - They avoid a race if the timer is too close to the current time. - * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars. - (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available. - (init_atimer) [SIGEV_SIGNAL]: Initialize them. - -2012-09-25 Eli Zaretskii - - * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of - CHAR_STRING_ADVANCE. - (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of - STRING_CHAR_ADVANCE. - -2012-09-25 Juanma Barranquero - - Move Vlibrary_cache to emacs.c and reset before dumping. - - * lisp.h (reset_image_types): Declare. - [WINDOWSNT] (Vlibrary_cache): Declare. - - * image.c (reset_image_types): New function. - - * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c. - (syms_of_emacs) [WINDOWSNT] : Initialize and staticpro. - (Fdump_emacs): Reset Vlibrary_cache and image_types. - - * w32.c (Vlibrary_cache): Do not define; moved to emacs.c - (globals_of_w32) : Do not initialize. - - * w32.h (Vlibrary_cache): Do not declare. - -2012-09-25 Eli Zaretskii - - * w32proc.c (sys_signal): Handle all signals defined by the - MS-Windows runtime, not just SIGCHLD. Actually install the signal - handlers for signals supported by Windows. Don't override - term_ntproc as the handler for SIGABRT. - (sigaction): Rewrite to call sys_signal instead of duplicating its - code. - (sys_kill): Improve commentary. - - * w32.c (term_ntproc): Accept (and ignore) one argument, for - consistency with a signature of a signal handler. All callers - changed. - (init_ntproc): Accept an argument DUMPING. If dumping, don't - install term_ntproc as a signal handler for SIGABRT, as that - should be done by the dumped Emacs. - - * w32.h (init_ntproc, term_ntproc): Adjust prototypes. - - * w32select.c (term_w32select): Protect against repeated - invocation by setting clipboard_owner to NULL after calling - DestroyWindow. - - * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc - and term_ntproc to their modified signatures. - - * character.c (char_string, string_char): Remove calls to - MAYBE_UNIFY_CHAR. See the discussion starting at - http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html - for the details. - -2012-09-25 Chong Yidong - - * xdisp.c (mode_line_inverse_video): Delete obsolete variable. - -2012-09-24 Stefan Monnier - - * bytecode.c (exec_byte_code): Signal an error instead of aborting, - when encountering an unknown bytecode. - -2012-09-24 Paul Eggert - - image.c, indent.c: Use bool for booleans. - * dispextern.h (struct image_type): Members valid_p, load, init - now return bool, not int. All uses changed. - * image.c: Omit unnecessary static decls. - (x_create_bitmap_mask, x_build_heuristic_mask): - Return void, not int, since callers don't care about the return value. - (x_create_bitmap_mask, define_image_type, valid_image_p) - (struct image_keyword, parse_image_spec, image_spec_value) - (check_image_size, image_background) - (image_background_transparent, x_clear_image_1) - (postprocess_image, lookup_image, x_check_image_size) - (x_create_x_image_and_pixmap, xbm_image_p) - (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data) - (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color) - (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p) - (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color) - (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load) - (png_image_p, init_png_functions, png_load_body, png_load) - (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load) - (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p) - (init_gif_functions, gif_load, imagemagick_image_p) - (imagemagick_load_image, imagemagick_load, svg_image_p) - (init_svg_functions, svg_load, svg_load_image, gs_image_p) - (gs_load): - * nsimage.m (ns_load_image): - * nsterm.m (ns_defined_color): - * xfaces.c (tty_lookup_color, tty_defined_color, defined_color): - * xfns.c (x_defined_color): - * xterm.c (x_alloc_lighter_color_for_widget) - (x_alloc_nearest_color_1, x_alloc_nearest_color) - (x_alloc_lighter_color): - * indent.c (disptab_matches_widthtab, current_column) - (scan_for_column, string_display_width, indented_beyond_p) - (compute_motion, vmotion, Fvertical_motion): - Use bool for booleans. - -2012-09-24 Chong Yidong - - * chartab.c (Fset_char_table_default): Obsolete function removed. - -2012-09-23 Paul Eggert - - Move pid_t related decls out of lisp.h. - * lisp.h, syswait.h (record_child_status_change, wait_for_termination) - (interruptible_wait_for_termination): - Move these decls from lisp.h to syswait.h, since they use pid_t. - Needed on FreeBSD; see Herbert J. Skuhra in - . - * callproc.c: Include syswait.h. - - gnutls.c, gtkutil.c: Use bool for boolean. - * gnutls.c (gnutls_global_initialized, init_gnutls_functions) - (emacs_gnutls_handle_error): - * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip) - (xg_hide_tooltip, xg_create_frame_widgets) - (create_dialog, xg_uses_old_file_dialog) - (xg_get_file_with_chooser, xg_get_file_with_selection) - (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget) - (xg_item_label_same_p, xg_update_menubar) - (xg_modify_menubar_widgets, xg_event_is_for_menubar) - (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb) - (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item) - (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes) - (update_frame_tool_bar, free_frame_tool_bar): - * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint): - * nsmenu.m (ns_update_menubar): - * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar): - * xfns.c (Fx_show_tip) [USE_GTK]: - Use bool for boolean. - * gtkutil.c (xg_update_frame_menubar): - * xmenu.c (update_frame_menubar): - Return void, not int, since caller ignores return value. - * gtkutil.c (xg_change_toolbar_position): - Return void, not 1. - -2012-09-23 Juanma Barranquero - - * makefile.w32-in (BLOCKINPUT_H): Remove. - (SYSSIGNAL_H): New macro. - ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O)) - ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O)) - ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O)) - ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O)) - ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O)) - ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O)) - ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O)) - ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O)) - ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O)) - ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O)) - ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O)) - ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O)) - ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O)) - ($(BLD)/w32xfns.$(O)): Update dependencies. - -2012-09-23 Eli Zaretskii - - * .gdbinit: Set breakpoint on terminate_due_to_signal, not on - fatal_error_backtrace. - - * w32proc.c (sys_kill): Undo last change: don't do anything when - invoked to deliver SIGABRT to our own process. This is now - handled by emacs_raise. - -2012-09-23 Juanma Barranquero - - * w32term.c (w32_read_socket): Remove leftover reference to - interrupt_input_pending. - -2012-09-23 Paul Eggert - - Do not use SA_NODEFER. - Problem reported by Dani Moncayo in - . - * alloc.c (die): - * sysdep.c (emacs_abort): Do not reset signal handler. - * emacs.c (terminate_due_to_signal): Reset signal handler here. - * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't - wanted even on POSIXish hosts, and it doesn't work on Windows. - -2012-09-23 Jan Djärv - - * xterm.c (x_term_init): Call fixup_locale before and after calling - gtk_init (Bug#12392). - -2012-09-23 Chong Yidong - - * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use - Vdynamic_library_alist. - - * gnutls.c (init_gnutls_functions): Caller changed; remove arg. - (Fgnutls_available_p): Caller changed. - - * xml.c (init_libxml2_functions, Flibxml_parse_html_region) - (Flibxml_parse_xml_region): Likewise. - - * dispextern.h (struct image_type): Remove arg from init function. - - * image.c (Finit_image_library, lookup_image_type) - (define_image_type): Remove now-unneeded second arg. - (init_xpm_functions, init_png_functions, init_jpeg_functions) - (init_tiff_functions, init_gif_functions, init_svg_functions): - Arglist and w32_delayed_load calling convention changed. - (gs_type): Remove init_gs_functions; there is no such function. - (valid_image_p, make_image): Fix caller to lookup_image_type. - -2012-09-23 Paul Eggert - - Simplify and avoid signal-handling races (Bug#12471). - * alloc.c (die): - * sysdep.c (emacs_abort) [HAVE_NTGUI]: - Avoid recursive loop if there's a fatal error in the function itself. - * atimer.c (pending_atimers): - * blockinput.h: Don't include "atimer.h"; no longer needed. - (interrupt_input_pending): Remove. All uses removed. - pending_signals now counts both atimers and ordinary interrupts. - This is less racy than having three separate pending-signal flags. - (block_input, unblock_input, totally_unblock_input, unblock_input_to) - (input_blocked_p): - Rename from their upper-case counterparts BLOCK_INPUT, - UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO, - INPUT_BLOCKED_P, and turn into functions. All uses changed. - This makes it easier to access volatile variables more accurately. - (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input (). - (input_blocked_p): Prefer this to 'interrupt_input_blocked', as - that's more reliable if the code is buggy and sets - interrupt_input_blocked to a negative value. All uses changed. - * atimer.c (deliver_alarm_signal): - Remove. No need to deliver this to the parent; any thread can - handle this signal now. All uses replaced by underlying handler. - * atimer.c (turn_on_atimers): - * dispnew.c (handle_window_change_signal): - * emacs.c (handle_danger_signal): - * keyboard.c (kbd_buffer_get_event): - Don't reestablish signal handler; not needed with sigaction. - * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT) - (UNBLOCK_INPUT_TO): - Rework to avoid unnecessary accesses to volatile variables. - (UNBLOCK_INPUT_TO): Now a function. - (totally_unblock_input, unblock_input): New decls. - * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c - (init_data): Remove. Necessary stuff now done in init_signal. - * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions. - * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c. - (fatal_error_code): Remove; no longer needed. - (terminate_due_to_signal): Rename from fatal_error_backtrace, since - it doesn't always backtrace. All uses changed. No need to reset - signal to default, since sigaction and/or die does that for us now. - Use emacs_raise (FOO), not kill (getpid (), FOO). - (main): Check more-accurately whether we're dumping. - Move fatal-error setup to sysdep.c - * floatfns.c: Do not include "syssignal.h"; no longer needed. - * gtkutil.c (xg_get_file_name, xg_get_font): - Remove no-longer-needed signal-mask manipulation. - * keyboard.c, process.c (POLL_FOR_INPUT): - Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined. - * keyboard.c (read_avail_input): Remove. - All uses replaced by gobble_input. - (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code. - (kbd_buffer_store_event_hold, gobble_input): - (record_asynch_buffer_change) [USABLE_SIGIO]: - (store_user_signal_events): - No need to mess with signal mask. - (gobble_input): If blocking input and there are terminals, simply - set pending_signals to 1 and return. All hooks changed to not - worry about whether input is blocked. - (process_pending_signals): Clear pending_signals before processing - them, in case a signal comes in while we're processing. - By convention callers now test pending_signals before calling us. - (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input): - New functions, to support changes to blockinput.h. - (handle_input_available_signal): Now extern. - (reinvoke_input_signal): Remove. All uses replaced by - handle_async_input. - (quit_count): Now volatile, since a signal handler uses it. - (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg. - All callers changed. Block SIGINT only if not already blocked. - Clear sigmask reliably, even if Fsignal returns, which it can. - Omit unnecessary accesses to volatile var. - (quit_throw_to_read_char): No need to restore sigmask. - * keyboard.c (gobble_input, handle_user_signal): - * process.c (wait_reading_process_output): - Call signal-handling code rather than killing ourselves. - * lisp.h: Include , for... - (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication. - (pending_signals): Now volatile. - (syms_of_data): Now const if IEEE floating point. - (handle_input_available_signal) [USABLE_SIGIO]: - (terminate_due_to_signal, record_child_status_change): New decls. - * process.c (create_process): Avoid disaster if memory is exhausted - while we're processing a vfork, by tightening the critical section - around the vfork. - (send_process_frame, process_sent_to, handle_pipe_signal) - (deliver_pipe_signal): Remove. No longer needed, as Emacs now - ignores SIGPIPE. - (send_process): No need for setjmp/longjmp any more, since the - SIGPIPE stuff is now gone. Instead, report an error if errno - is EPIPE. - (record_child_status_change): Now extern. PID and W are now args. - Return void, not bool. All callers changed. - * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]: - Remove. All uses removed. This bug should be fixed now in a - different way. - (wait_for_termination_1): Use waitpid rather than sigsuspend, - and record the child status change directly. This avoids the - need to futz with the signal mask. - (process_fatal_action): Move here from emacs.c. - (emacs_sigaction_flags): New function, containing - much of what used to be in emacs_sigaction_init. - (emacs_sigaction_init): Use it. Block nonfatal system signals that are - caught by emacs, to make races less likely. - (deliver_process_signal): Rename from handle_on_main_thread. - All uses changed. - (BACKTRACE_LIMIT_MAX): Now at top level. - (thread_backtrace_buffer, threadback_backtrace_pointers): - New static vars. - (deliver_thread_signal, deliver_fatal_thread_signal): - New functions, for more-accurate delivery of thread-specific signals. - (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c. - (deliver_arith_signal): Handle in this thread, not - in the main thread, since it's triggered by this thread. - (maybe_fatal_sig): New function. - (init_signals): New arg DUMPING so that we can be more accurate - about whether we're dumping. Caller changed. - Treat thread-specific signals differently from process-general signals. - Block all signals while handling fatal error; that's safer. - xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal - on IEEE hosts. - When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored. - Ignore SIGPIPE unless batch. - (emacs_backtrace): Output backtrace for the appropriate thread, - which is not necessarily the main thread. - * syssignal.h: Include . - (emacs_raise): New macro. - * xterm.c (x_connection_signal): Remove; no longer needed - now that we use sigaction. - (x_connection_closed): No need to mess with sigmask now. - (x_initialize): No need to reset SIGPIPE handler here, since - init_signals does this for us now. - -2012-09-23 Jan Djärv - - * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into, - background rect may be larger (Bug#12245). - -2012-09-23 Chong Yidong - - * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence. - -2012-09-22 Paul Eggert - - * .gdbinit: Just stop at fatal_error_backtrace. - See Stefan Monnier's request in - . - Remove no-longer-used query of system type. - -2012-09-22 Chong Yidong - - * search.c (Freplace_match): Doc fix (Bug#12325). - - * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391). - - * editfns.c (Fline_beginning_position): Doc fix (Bug#12416). - (Fline_end_position): Doc fix. - - * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414). - -2012-09-22 Chong Yidong - - * dispextern.h (struct image_type): Add new slot, storing a type - initialization function. - - * image.c (define_image_type): Call the image initializer function - if it is defined. Arguments and return value changed. - (valid_image_p, make_image): Callers changed. - (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type) - (gif_type, imagemagick_type, svg_type, gs_type): - Add initialization functions. - (Finit_image_library): Call lookup_image_type. - (CHECK_LIB_AVAILABLE): Macro deleted. - (lookup_image_type): Call define_image_type here, rather than via - Finit_image_library, and without using CHECK_LIB_AVAILABLE. - (syms_of_image): Move define_image_type calls for xbm_type and - pbm_type to lookup_image_type. - -2012-09-22 Eli Zaretskii - - * keyboard.c (timer_check_2): Move calculation of 'timers' and - 'idle_timers' from here ... - (timer_check): ... to here. Use Fcopy_sequence to copy the timer - lists, to avoid infloops when the timer does something stupid, - like reinvoke itself with the same or smaller time-out. - (Bug#12447) - -2012-09-22 Martin Rudalics - - * window.c (Fsplit_window_internal): Handle only Qt value of - Vwindow_combination_limit separately. - (Qtemp_buffer_resize): New symbol. - (Vwindow_combination_limit): New default value. - Rewrite doc-string. - -2012-09-22 Eli Zaretskii - - * xdisp.c (next_overlay_string): Initialize it->end_charpos for - the new overlay string. (Bug#10159) - -2012-09-22 Paul Eggert - - * emacs.c (shut_down_emacs): Don't assume stderr is buffered, - or that fprintf is async-signal-safe. POSIX doesn't require - either assumption. - -2012-09-22 Chong Yidong - - * buffer.c (Fset_buffer_modified_p): Handle indirect buffers - (Bug#8207). - -2012-09-22 Kenichi Handa - - * composite.c (composition_reseat_it): Handle the case that a - grapheme cluster is not covered by a single font (Bug#12352). - -2012-09-21 Chong Yidong - - * image.c (define_image_type): Avoid adding duplicate types to - image_types (Bug#12463). Suggested by Jörg Walter. - -2012-09-21 YAMAMOTO Mitsuharu - - * unexmacosx.c: Define LC_DATA_IN_CODE if not defined. - (print_load_command_name): Add case LC_DATA_IN_CODE. - (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data. - -2012-09-21 Glenn Morris - - * eval.c (Frun_hook_with_args_until_success) - (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393) - -2012-09-21 Andreas Schwab - - * fileio.c (Ffile_selinux_context): Only call freecon when - lgetfilecon succeeded. - (Fset_file_selinux_context): Likewise. (Bug#12444) - -2012-09-21 Eli Zaretskii - - * xdisp.c (try_window_reusing_current_matrix): Under bidi - reordering, locate the cursor by calling set_cursor_from_row; if - that fails, clear the desired glyph matrix before returning a - failure indication to the caller. Fixes leaving garbled display - when fast scrolling with a down-key. (Bug#12403) - (compute_stop_pos_backwards): Fix a typo that caused crashes while - scrolling through multibyte text. - -2012-09-20 Stefan Monnier - - * alloc.c (mark_object) : Mark prev/next_buffers *after* - calling mark_vectorlike since that's the one that marks the window. - (mark_discard_killed_buffers): Mark the final cdr. - * window.h (struct window): Move prev/next_buffers to the - non-standard fields. - * window.c (make_window): Initialize prev/next_buffers manually. - -2012-09-20 Paul Eggert - - Omit unused arg EXPECTED from socket hooks. - * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input): - * nsterm.m (ns_term_init): - * termhooks.h (struct terminal.read_socket_hook): - * w32inevt.c (w32_console_read_socket): - * w32term.c (w32_read_socket): - * xterm.c (XTread_socket): - Omit unused arg EXPECTED. All callers changed. - (store_user_signal_events): Return void, not int, since callers no - longer care about the return value. All uses changed. - -2012-09-20 Juanma Barranquero - - * w32gui.h (XParseGeometry): Do not declare. - -2012-09-19 Paul Eggert - - * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0. - Ignore 'expected'. See Eli Zaretskii in - (last line). - - * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul. - (XParseGeometry): Now static. Substitute extremal values for - values that are out of range. - -2012-09-19 Jan Djärv - - * w32xfns.c (read_integer, XParseGeometry): Move to frame.c. - - * nsfns.m (XParseGeometry): Remove. - (Fx_create_frame): Call x_set_offset to correctly interpret - top_pos in geometry. - - * frame.c (read_integer, XParseGeometry): Move from w32xfns.c. - (Fx_parse_geometry): If there is a space in string, call - Qns_parse_geometry, otherwise do as on other terms (Bug#12368). - -2012-09-17 Eli Zaretskii - - * search.c (scan_buffer): Use character positions in calls to - region_cache_forward and region_cache_backward, not byte - positions. (Bug#12196) - - * w32term.c (w32_read_socket): Set pending_signals to 1, like - xterm.c does. Reported by Daniel Colascione . - - * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize - __malloc_extra_blocks to 32 instead of 64, like alloc.c did in - emacs_blocked_malloc, now deleted. - -2012-09-17 Paul Eggert - - Remove no-longer-needed Solaris 2.4 vfork bug workaround. - The workaround was for improving performance on Solaris 2.4, but - is getting in the way now. Emacs will still work if someone is - still running Solaris 2.4 in a museum somewhere; Sun dropped - support for Solaris 2.4 in 2003. - * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]: - * process.c (create_process) [HAVE_WORKING_VFORK]: - Omit now-unnecessary workaround for the Solaris 2.4 vfork bug, - since Emacs no longer uses vfork on that platform. - -2012-09-17 Glenn Morris - - * emacs.c: Use COPYRIGHT. - -2012-09-16 Paul Eggert - - Remove configure's --without-sync-input option (Bug#12450). - When auditing signal-handling in preparation for cleaning it up, - I found that SYNC_INPUT has race conditions and would be a real - pain to fix. Since it's an undocumented and deprecated - configure-time option, now seems like a good time to remove it. - Also see . - * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal) - (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls. - (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]: - (malloc_hysteresis): - (check_depth) [XMALLOC_OVERRUN_CHECK]: - (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): - (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED) - (dont_register_blocks, bytes_used_when_reconsidered) - (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc) - (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc): - [!SYSTEM_MALLOC && !SYNC_INPUT]: - Remove. All uses removed. - (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different - implementation, one that depends on whether the new macro - XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT - is defined. - * atimer.c (run_timers, handle_alarm_signal): - * keyboard.c (pending_signal, poll_for_input_1, poll_for_input) - (handle_async_input, process_pending_signals) - (handle_input_available_signal, init_keyboard): - * nsterm.m (ns_read_socket): - * process.c (wait_reading_process_output): - * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK): - * sysdep.c (emacs_sigaction_init) [SA_RESTART]: - (emacs_write): - * xterm.c (XTread_socket): - Assume SYNC_INPUT. - * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef. - * eval.c (handling_signal): Remove. All uses removed. - * lisp.h (ELSE_PENDING_SIGNALS): Remove. - All uses replaced with the SYNC_INPUT version. - (reset_malloc_hooks, uninterrupt_malloc, handling_signal): - Remove decls. - * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]: - Now static. - - * font.c (Ffont_shape_gstring): Remove unused local. - -2012-09-16 Glenn Morris - - * Makefile.in (clean): No longer run nextstep's clean. - - * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. - (ns_frag): Remove. - (ns-app): Move here from ns.mk, and simplify. - (clean): Simplify nextstep entry. - * ns.mk: Remove file. - -2012-09-17 Kenichi Handa - - * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may - not covert the last few charactes. - -2012-09-16 Kenichi Handa - - * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster - here, but just check the validity of glyphs in the glyph-string. - -2012-09-16 Martin Rudalics - - * window.c (Fwindow_parameter, Fset_window_parameter): - Accept any window as argument (Bug#12452). - -2012-09-16 Jan Djärv - - * nsfns.m (Fx_open_connection): Move initialization of ns_*_types - to ns_term_init to avoid memory leak. - - * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use - explicit retain/release. - (ns_term_init): Only allow one display. Initialize outerpool and - ns_*_types. - -2012-09-15 Paul Eggert - - Port _setjmp fix to POSIXish hosts as well as Microsoft. - * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as - it's needed on POSIXish hosts that lack _setjmp. Attempt to solve - the Microsoft problem in a different way, by altering ../nt/config.nt. - -2012-09-15 Eli Zaretskii - - * w32xfns.c: - * w32uniscribe.c: - * w32term.c: - * w32select.c: - * w32reg.c: - * w32proc.c: - * w32menu.c: - * w32inevt.c: - * w32heap.c: - * w32font.c: - * w32fns.c: - * w32console.c: - * w32.c: - * w16select.c: Remove inclusion of setjmp.h, as it is now included - by lisp.h. This completes removal of setjmp.h inclusion - erroneously announced in the previous commit. (Bug#12446) - - * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary - more accurate. - - * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is - not defined as a macro. The latter happens on MS-Windows. - (Bug#12446) - -2012-09-15 Paul Eggert - - Port better to POSIX hosts lacking _setjmp (Bug#12446). - * lisp.h: Include here, since we use its symbols here. - Some instances of '#include ' removed, if the - only reason for the instance was because "lisp.h" was included. - (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols. - Unless otherwise specified, replace all uses of jmp_buf, _setjmp, - and _longjmp with the new symbols. Emacs already uses _setjmp if - available, so this change affects only POSIXish hosts that have - sigsetjmp but not _setjmp, such as some versions of Solaris and - Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.) - * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros. - (png_load_body) [HAVE_PNG]: - (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]: - (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]: - Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp, - since PNG requires jmp_buf. This is the only exception to the - general rule that we now use sys_setjmp and sys_longjmp. - This exception is OK since this code does not change the signal - mask or longjmp out of a signal handler. - -2012-09-14 Paul Eggert - - * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]: - Include "syssignal.h", for 'main_thread'. - -2012-09-14 Dmitry Antipov - - Avoid out-of-range marker position (Bug#12426). - * insdel.c (replace_range, replace_range_2): - Adjust markers before overlays, as suggested by comments. - (insert_1_both, insert_from_buffer_1, adjust_after_replace): - Remove redundant check before calling offset_intervals. - -2012-09-14 Martin Rudalics - - * xdisp.c (Fformat_mode_line): Unconditionally save/restore - current buffer (Bug#12387). - -2012-09-14 Juanma Barranquero - - * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies. - -2012-09-13 Paul Eggert - - Use a more backwards-compatible timer format (Bug#12430). - * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0) - vector element, not from the 4th, since PSECS is now at the end. - (Fcurrent_idle_time): Doc fix. - -2012-09-13 Dmitry Antipov - - Function to mark objects and remove killed buffers at once. - * alloc.c (discard_killed_buffers): Rename to ... - (mark_discard_killed buffers) ... new name. Add marking - of remaining objects. Fix comment. Adjust users. - (mark_object): Do not touch frame buffer lists here. - * frame.c (delete_frame): Reset frame buffer lists here. - -2012-09-13 Paul Eggert - - Better workaround for GNOME bug when --enable-gcc-warnings. - * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change. - Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in - . - - Simplify SIGIO usage (Bug#12408). - The code that dealt with SIGIO was crufty and confusing, e.g., it - played tricks like "#undef SIGIO" but these tricks were not used - consistently. Simplify mostly by not #undeffing standard symbols, - e.g., use "defined USABLE_SIGIO" (our symbol, which we can define - or not as we please) rather than "defined SIGIO" (standard symbol - that we probably shouldn't #undef). - * conf_post.h [USG5_4]: Do not include here. - Modules that need it can include it. - [USG5_4 && emacs]: Likewise, do not include the streams stuff here. - * dispextern.h (ignore_sigio): New decl. - * emacs.c (shut_down_emacs): Invoke unrequest_sigio - unconditionally, since it's now a no-op if !USABLE_SIGIO. - * emacs.c (shut_down_emacs): - * keyboard.c (kbd_buffer_store_event_hold): - Use ignore_sigio rather than invoking 'signal' directly. - * keyboard.c (USABLE_FIONREAD && USG5_4): Include , - for FIONREAD. - (FIONREAD, SIGIO): Do not #undef. - (tty_read_avail_input): Use #error rather than a syntax error. - * process.c [USG5_4]: Include and , - for I_PIPE, used by SETUP_SLAVE_PTY. - (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD. - * sysdep.c (croak): Remove; no longer needed. This bit of - temporary code, with Fred N. Fish's comment that it's temporary, - has been in Emacs since at least 1992! - (init_sigio, reset_sigio, request_sigio, unrequest_sigio): - Arrange for them to be no-ops in all cases when ! USABLE_SIGIO. - * syssignal.h (croak): Remove decl. - (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile. - * systty.h [!NO_TERMIO]: Do not include ; no longer needed - now that we're termios-only. - (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef. - * term.c (dissociate_if_controlling_tty): Use #error rather than - a run-time error. - - Work around GCC and GNOME bugs when --enable-gcc-warnings. - * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify', - to work around GNOME bug 683906. - * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber. - (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp. - This works around GCC bug 54561. - -2012-09-12 Paul Eggert - - More fixes for 'volatile' and setjmp/longjmp. - * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's. - * image.c (struct png_load_context) [HAVE_PNG]: New type. - (png_load_body) [HAVE_PNG]: - (jpeg_load_body) [HAVE_JPEG]: - New function, with most of the old parent function's body. - (png_load) [HAVE_PNG]: - (jpeg_load) [HAVE_JPEG]: - Invoke the new function, to avoid longjmp munging our locals. - (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code. - (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when - longjmp is passed 2, as the C standard doesn't guarantee this. - Instead, store the failure code into mgr->failure_code. - -2012-09-12 Stefan Monnier - - * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p) - (Fdiscard_input, quit_throw_to_read_char, init_keyboard) - (syms_of_keyboard): Remove support for unread-command-char. - -2012-09-12 Eli Zaretskii - - * w32proc.c (sys_kill): If PID is our process ID and the signal is - SIGABRT, call emacs_abort. Avoids silently exiting upon assertion - violation. (Bug#12426) - -2012-09-12 Paul Eggert - - * image.c (jpeg_memory_src): Don't assume string len fits in unsigned. - -2012-09-12 Stefan Monnier - - * eval.c: Add `inhibit-debugger'. - (Qinhibit_debugger): New symbol. - (call_debugger): Bind it instead of Qdebug_on_error. - (maybe_call_debugger): Test Vinhibit_debugger. - (syms_of_eval): Define inhibit-debugger. - * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message. - (syms_of_xdisp): Remove inhibit-debug-on-message. - -2012-09-11 Paul Eggert - - Avoid _setjmp/_longjmp problems with local nonvolatile variables. - If a nonvolatile local variable is written before a _longjmp to - the frame containing the variable, and is read after the _longjmp, - the value read is indeterminate. Some local variables of type - 'struct handler' and 'struct catchtag' are used in this way, so - mark each of their slots as volatile if the slot can be set before - _longjmp and read afterwards. - * lisp.h (struct handler): var and chosen_clause are now volatile. - (struct catchtag): val, next, and pdlcount are now volatile. - - * bidi.c (bidi_push_it, bidi_pop_it): - * fns.c (copy_hash_table): - * image.c (define_image_type): - * keyboard.c (kbd_buffer_store_event_hold): - * process.c (Fprocess_send_eof): - * xfaces.c (x_create_gc) [HAVE_NS]: - * xgselect.c (xg_select): - Prefer assignment to memcpy when either will do. - - * alloc.c (discard_killed_buffers): Tune and simplify a bit. - Use pointer-to-a-pointer to simplify and avoid a NILP check each - time an item is removed. No need to mark this function 'inline'; - the compiler knows better than we do. - -2012-09-11 Jan Djärv - - * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize. - (updateFrameSize:): Add delay parameter to updateFrameSize, send it - to change_frame_size (Bug#12388). - (windowDidResize:): Pass YES to updateFrameSize. - - * nsterm.h: Add delay parameter to updateFrameSize. - -2012-09-11 Dmitry Antipov - - Discard killed buffers from deleted window and frame objects. - This reduces an amount of references to killed buffers and - helps GC to reclaim them faster. - * alloc.c (discard_killed_buffers): New function. - (mark_object): Use it for deleted windows and frames. - (mark_object): If symbol's value is set up for a killed buffer - or deleted frame, restore its global binding. - * data.c (swap_in_global_binding): Add GC notice. - (swap_in_symval_forwarding): Use convenient set_blv_where. - * window.c (wset_next_buffers, wset_prev_buffers): Move ... - * window.h: ... to here. - -2012-09-11 Dmitry Antipov - - Convenient macro to check whether the buffer is live. - * buffer.h (BUFFER_LIVE_P): New macro. - * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c: - * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it. - -2012-09-11 YAMAMOTO Mitsuharu - - * xdisp.c (right_overwritten, right_overwriting): Also handle gstring - composition cases (Bug#12364). - - * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left - overhang of succeeding glyphs overlapping box cursor. - - * w32term.c (x_draw_glyph_string): Likewise. - -2012-09-11 Paul Eggert - - Simplify, document, and port floating-point (Bug#12381). - The porting part of this patch fixes bugs on non-IEEE platforms - with frexp, ldexp, logb. - * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error): - Now static. - * floatfns.c: Simplify discussion of functions that Emacs doesn't - support, by removing commented-out code and briefly listing the - C89 functions excluded. The commented-out stuff was confusing - maintenance, e.g., we thought we needed cbrt but it was commented out. - (logb): Remove decl; no longer needed. - (isfinite): New macro, if not already supplied. - (isnan): Don't replace any existing macro. - (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp - are present on all C89 platforms. - (Ffrexp): Do not special-case zero, as frexp does the right thing - for that case. - (Flogb): Do not use logb, as it doesn't have the desired meaning - on hosts that use non-base-2 floating point. Instead, stick with - frexp, which is C89 anyway. Do not pass an infinity or a NaN to - frexp, to avoid getting an unspecified result. - - * xdisp.c (Qinhibit_debug_on_message): Now static. - -2012-09-10 Jan Djärv - - * nsterm.m (ns_update_begin): Set clip path to whole view by using - NSBezierPath (Bug#12131). - -2012-09-10 Chong Yidong - - * fns.c (Fdelq, Fdelete): Doc fix. - -2012-09-10 Paul Eggert - - * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL) - (XSETFLOAT, XSETMISC): Parenthesize macro bodies. - -2012-09-09 Stefan Monnier - - * lisp.h (make_lisp_ptr): New macro to replace XSET. - (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC): - Use it. - -2012-09-09 Eli Zaretskii - - * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the - left fringe if the window has a left margin. This avoids leaving - traces of the cursor because its leftmost pixel is not drawn over. - - * dispnew.c (update_window_line): When the left margin area of a - screen line is updated, set the redraw_fringe_bitmaps_p flag of - that screen line. (Bug#12277) - -2012-09-09 Paul Eggert - - Assume C89 or later for math functions (Bug#12381). - This simplifies the code, and makes it a bit smaller and faster, - and (most important) makes it easier to clean up signal handling - since we can stop worring about floating-point exceptions in - library code. That was a problem before C89, but the problem - went away many years ago on all practical Emacs targets. - * data.c, image.c, lread.c, print.c: - Don't include ; no longer needed. - * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it - might be autoconfigured, as that never happens. - * data.c (fmod): - * doprnt.c (DBL_MAX_10_EXP): - * print.c (DBL_DIG): - Remove. C89 or later always defines these. - * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN) - (in_float, float_error_arg, float_error_arg2, float_error_fn_name) - (arith_error, domain_error, domain_error2): - Remove all this pre-C89 cruft. Do not include as that's - no longer needed -- we simply return what C returns. All uses removed. - (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with - the wrapped code. - (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2): - Remove. All uses expanded, as these macros are no longer used - more than once and are now more trouble than they're worth. - (Ftan): Use tan, not sin / cos. - (Flogb): Assume C89 frexp. - (fmod_float): Assume C89 fmod. - (matherr) [HAVE_MATHERR]: Remove; no longer needed. - (init_floatfns): Remove. All uses removed. - -2012-09-08 Jan Djärv - - * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back - compositeToPoint for OSX < 10.6 (Bug#12390). - -2012-09-08 Paul Eggert - - * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)). - This produces more-accurate results. - -2012-09-08 Jan Djärv - - * nsterm.m (updateFrameSize): Call setFrame: on the view when size - changes (Bug#12088). - -2012-09-08 Chong Yidong - - * syntax.c (Fstring_to_syntax): Doc fix. - -2012-09-08 Jan Djärv - - * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe - in the internal border. - (x_set_window_size): Remove static variables and their usage. - (ns_redraw_scroll_bars): Fix NSTRACE arg. - (ns_after_update_window_line, ns_draw_fringe_bitmap): - Remove fringe/internal border adjustment (Bug#11052). - (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c). - (ns_draw_window_cursor): Remove fringe/internal border adjustment. - (ns_fix_rect_ibw): Remove. - (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw. - (ns_dumpglyphs_box_or_relief): Ditto. - (ns_maybe_dumpglyphs_background): Remove fringe/internal border - adjustment. - (ns_dumpglyphs_image): Ditto. - (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal - border adjustment. - (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and - their usage. Add fringe_extended_p and its use as in other terms. - (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if - scroll bar was removed. - (updateFrameSize): New function. - (windowDidResize): Move code to updateFrameSize and call it. - - * nsterm.h (EmacsView): Add updateFrameSize. - -2012-09-07 Chong Yidong - - * textprop.c (Fget_text_property): Minor doc fix (Bug#12323). - - * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713). - -2012-09-07 Paul Eggert - - More signal-handler cleanup (Bug#12327). - * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls. - Problem introduced when merging patches. Noted by Eli Zaretskii in - . - * floatfns.c: Comment fix. - * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER. - SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right, - and anyway the declaration is harmless even if SIGDANGER is not defined. - * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD || - defined BROKEN_FIONREAD). systty.h formerly did this, but other - source files not surprisingly expected syssignal.h to define, or - not define, SIGIO, and it's cleaner to do it that way, for consistency. - Include , for FIONREAD. - * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job. - This eliminates a problem whereby other files mysteriously had - to include "syssignal.h" before including "systty.h" if they - wanted to use "#ifdef SIGIO". - -2012-09-07 Eli Zaretskii - - * w32proc.c (sigaction): New function, emulates Posix 'sigaction'. - - * w32.c (sigemptyset): Empty the set. - (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions. - - * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT. - -2012-09-07 Dmitry Antipov - - * alloc.c (mark_buffer): Revert unsafe marking optimization. - (mark_object): Likewise for frame objects. - -2012-09-07 Paul Eggert - - * syssignal.h (handle_on_main_thread): Always declare, - even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined. - This ports to platforms without HAVE_PTHREAD. - -2012-09-06 Paul Eggert - - Signal-handler cleanup (Bug#12327). - Emacs's signal handlers were written in the old 4.2BSD style with - sigblock and sigmask and so forth, and this led to some - inefficiencies and confusion. Rewrite these to use - pthread_sigmask etc. without copying signal sets around. Also, - get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and - 'signal', and instead use functions that do not attempt to take - over the system name space. This patch causes Emacs's text - segment to shrink by 0.7% on my platform, Fedora 17 x86-64. - * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c: - Do not include or "syssignal.h", as these - modules do not use signals. - * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c: - * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c: - Do not include , as "syssignal.h" does that for us now. - * atimer.c (sigmask_atimers): New function. - (block_atimers, unblock_atimers): New functions, - replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS. - All uses replaced. - * conf_post.h [SIGNAL_H_AHB]: Do not include ; - no longer needed here. - * emacs.c (main): Inspect existing signal handler with sigaction, - so that there's no need to block and unblock SIGHUP. - * sysdep.c (struct save_signal): New member 'action', replacing - old member 'handler'. - (save_signal_handlers, restore_signal_handlers): - Use sigaction instead of 'signal' to save and restore. - (get_set_sighandler, set_sighandler) [!WINDOWSNT]: - New function. All users of 'signal' modified to use set_sighandler - if they're writeonly, and to use sys_signal if they're read+write. - (emacs_sigaction_init, forwarded_signal): New functions. - (sys_signal): Remove. All uses replaced by calls to sigaction - and emacs_sigaction_init, or by direct calls to 'signal'. - (sys_sigmask) [!__GNUC__]: Remove; no longer needed. - (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove; - all uses replaced by pthread_sigmask etc. calls. - * syssignal.h: Include . - (emacs_sigaction_init, forwarded_signal): New decls. - (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t. - (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask. - (sigmask, sys_sigmask): Remove; no longer needed. - (sigpause): Remove. All uses replaced by its definiens, sigsuspend. - (sigblock, sigunblock, sigfree): - (sigsetmask) [!defined sigsetmask]: - Remove. All uses replaced by pthread_sigmask. - (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN) - no longer need to be replaced, and its typical old uses - are now done via emacs_sigaction_init and sigaction. - (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls. - (sys_sigdel): Remove; unused. - (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef. - -2012-09-06 Eli Zaretskii - - * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke - SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327) - -2012-09-06 Dmitry Antipov - - Explicitly mark buffer_defaults and buffer_local_symbols. - * alloc.c (Fgarbage_collect): Mark buffer_defaults and - mark_local_symbols here. - (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking - since special buffers aren't marked here any more. - (allocate_buffer): Chain new buffer with all_buffers here... - * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and - not here. - (Vbuffer_defaults, Vbuffer_local_symbols): Remove. - (syms_of_buffer): Remove staticpro of the above. - (init_buffer_once): Set names for buffer_defaults and - buffer_local_symbols. - -2012-09-06 Paul Eggert - - Use bool for booleans in font-related modules. - * font.c (font_intern_prop, font_style_to_value) - (font_style_symbolic, font_parse_xlfd, font_parse_fcname) - (generate_otf_features, font_check_otf_features, font_check_otf) - (font_match_p, font_list_entities, font_at): - * fontset.c (fontset_id_valid_p, reorder_font_vector - (fontset_find_font, Fset_fontset_font) - (face_suitable_for_char_p) [0]: - * ftfont.c (fc_initialized, ftfont_get_open_type_spec) - (ftfont_open, ftfont_text_extents, ftfont_check_otf): - (m17n_flt_initialized, ftfont_shape_by_flt): - * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw): - * nsfont.m (nsfont_draw): - * w32font.c (w32font_draw): - * w32term.c (x_draw_glyphless_glyph_string_foreground): - Use bool for booleans. - * font.h: Adjust to above API changes. - (struct font, struct font_driver, struct font_driver_list): - Use bool for booleans. - (struct font): Remove useless member encoding_type. - All users removed. - * fontset.c, xftfont.c: Omit unnecessary static decls. - -2012-09-06 Dmitry Antipov - - * alloc.c (mark_object): Revert window marking code - since it's unsafe for the Fset_window_configuration. - -2012-09-05 Paul Eggert - - Fix race conditions with signal handlers and errno (Bug#12327). - Be more systematic about preserving errno whenever a signal - handler returns, even if it's not in the main thread. Do this by - renaming signal handlers to distinguish between signal delivery - and signal handling. All uses changed. - * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler. - * data.c (deliver_arith_signal): Rename from arith_error. - * dispnew.c (deliver_window_change_signal): Rename from - window_change_signal. - * emacs.c (deliver_error_signal): Rename from fatal_error_signal. - (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal. - * keyboard.c (deliver_input_available_signal): Rename from - input_available_signal. - (deliver_user_signal): Rename from handle_user_signal. - (deliver_interrupt_signal): Rename from interrupt_signal. - * process.c (deliver_pipe_signal): Rename from send_process_trap. - (deliver_child_signal): Rename from sigchld_handler. - * atimer.c (handle_alarm_signal): - * data.c (handle_arith_signal): - * dispnew.c (handle_window_change_signal): - * emacs.c (handle_fatal_signal, handle_danger_signal): - * keyboard.c (handle_input_available_signal): - * keyboard.c (handle_user_signal, handle_interrupt_signal): - * process.c (handle_pipe_signal, handle_child_signal): - New functions, with the actual signal-handling code taken from the - original respective signal handlers, sans the sporadic attempts to - preserve errno, since that's now done by handle_on_main_thread. - * atimer.c (alarm_signal_handler): Remove unnecessary decl. - * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft. - * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]: - Move to sysdep.c. - (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]: - Move initialization of main_thread to sysdep.c's init_signals. - * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for - our usage, and simplifies the mainline code. - (record_child_status_change): New static function, as a helper - for handle_child_signal, and with most of the old child handler's - contents. - (CAN_HANDLE_MULTIPLE_CHILDREN): New constant. - (handle_child_signal): Use the above. - * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]: - Moved here from emacs.c. - (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it; - code moved here from emacs.c's main function. - * sysdep.c, syssignal.h (handle_on_main_thread): New function, - replacing the old SIGNAL_THREAD_CHECK. All uses changed. - This lets callers save and restore errno properly. - -2012-09-05 Dmitry Antipov - - Remove redundant or unused things here and there. - * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove. - * conf_post.h (RE_TRANSLATE): Use char_table_translate. - * editfns.c (Fcompare_buffer_substrings): Likewise. - * frame.h (struct terminal, struct font_driver_list): - Remove redundant declarations. - * window.h (Qleft, Qright): Likewise. - -2012-09-05 Dmitry Antipov - - Do not mark objects from deleted buffers, windows and frames. - * alloc.c (mark_buffer): Mark just the buffer if it is dead. - (mark_object): Likewise for windows and frames. - -2012-09-05 Dmitry Antipov - - * alloc.c (valid_lisp_object_p): Treat killed buffers, - buffer_defaults and buffer_local_symbols as valid objects. - Return special value to denote them. - -2012-09-05 Paul Eggert - - * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean. - * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name) - (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file) - (file_name_absolute_p, Fsubstitute_in_file_name): - (check_executable, check_writable, Ffile_accessible_directory_p) - (Fset_file_selinux_context, Fdefault_file_modes) - (Finsert_file_contents, choose_write_coding_system) - (Fwrite_region, build_annotations, a_write, e_write) - (Fdo_auto_save): - * filelock.c (boot_time_initialized, get_boot_time) - (get_boot_time_1, lock_file_1, within_one_second): - * floatfns.c (in_float): - * fns.c (concat, internal_equal, Frequire, base64_encode_1) - (base64_decode_1, cmpfn_eql, cmpfn_user_defined) - (sweep_weak_table, sweep_weak_hash_tables, secure_hash): - * lisp.h (struct Lisp_Hash_Table.cmpfn): - * window.c (compare_window_configurations): - Use bool for booleans. - * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits) - (Fdefault_file_modes): Now mode_t, not int, for modes. - (Fdo_auto_save): Set a boolean to 1 rather than using ++. - (internal_delete_file): Now returns void, not a (boolean) int, - since nobody was looking at the return value. - * lisp.h, window.h: Adjust to above API changes. - - * xdisp.c (set_message): Simplify and reindent last change. - -2012-09-05 Juanma Barranquero - - * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies. - -2012-09-04 Lars Ingebrigtsen - - * eval.c (call_debugger): Make the function non-static so that we - can call it from set_message. - - * xdisp.c (set_message): Implement the new variable `debug-on-message'. - (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'. - -2012-09-04 Paul Eggert - - Give more-useful info on a fatal error (Bug#12328). - * alloc.c [ENABLE_CHECKING]: Do not include . - (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead - of doing the work ourselves. - * emacs.c (fatal_error_signal): Let fatal_error_backtrace - do most of the work. - (fatal_error_backtrace): New function, taken from the guts - of the old fatal_error_signal, but with a new option to output - a backtrace. - (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful - info about the signal than just its number. - * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls. - * sysdep.c: Include - (emacs_backtrace): New function, taken partly from the previous - code of the 'die' function. - (emacs_abort): Call fatal_error_backtrace rather than abort. - -2012-09-04 Stefan Monnier - - * lread.c (readevalloop): Call internal-macroexpand-for-load to perform - eager (load-time) macro-expansion. - * lisp.mk (lisp): Add macroexp. - -2012-09-04 Paul Eggert - - Simplify redefinition of 'abort' (Bug#12316). - Do not try to redefine the 'abort' function. Instead, redo - the code so that it calls 'emacs_abort' rather than 'abort'. - This removes the need for the NO_ABORT configure-time macro - and makes it easier to change the abort code to do a backtrace. - * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort. - * emacs.c (abort) [!DOS_NT && !NO_ABORT]: - Remove; sysdep.c's emacs_abort now takes its place. - * lisp.h (emacs_abort): New decl. All calls from Emacs code to - 'abort' changed to use 'emacs_abort'. - * msdos.c (dos_abort) [defined abort]: Remove; not used. - (abort) [!defined abort]: Rename to ... - (emacs_abort): ... new name. - * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking - the place of the old 'abort' in emacs.c. - * w32.c, w32fns.c (abort): Do not #undef. - * w32.c (emacs_abort): Rename from w32_abort. - -2012-09-04 Eli Zaretskii - - * w32uniscribe.c (uniscribe_shape): Reverse the sign of - offsets[j].dv, since the y axis of the screen coordinates points - down, while the y axis of the font definition coordinates points - up. This fixes display of Arabic diacritics such as KASRA and - KASRATAN. (Bug#11860) - -2012-09-04 Paul Eggert - - Be more systematic about _setjmp vs setjmp. - * alloc.c (test_setjmp, mark_stack): - * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]: - (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]: - (png_load, my_error_exit, jpeg_load): - * process.c (send_process_trap, send_process): - Uniformly prefer _setjmp and _longjmp to setjmp and longjmp. - The underscored versions are up to 30x faster on some hosts. - Formerly, the code used setjmp+longjmp sometimes and - _setjmp+_longjmp at other times, with no particular reason to - prefer setjmp+longjmp. - -2012-09-03 Paul Eggert - - Fix minor problem found by static checking. - * buffer.c (Fdelete_all_overlays): Return nil. - -2012-09-03 Martin Rudalics - - * buffer.c (Fdelete_all_overlays): New function. - -2012-09-03 Chong Yidong - - * gtkutil.c: Add extern decl for Qxft. - -2012-09-02 Paul Eggert - - * emacs.c, eval.c: Use bool for boolean. - * emacs.c (initialized, inhibit_window_system, running_asynch_code): - (malloc_using_checking) [DOUG_LEA_MALLOC]: - (display_arg) [HAVE_X_WINDOWS || HAVE_NS]: - (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch) - (main, decode_env_path, Fdaemon_initialized): - * eval.c (call_debugger, Finteractive_p, interactive_p): - (unwind_to_catch, Fsignal, wants_debugger, skip_debugger) - (maybe_call_debugger, Fbacktrace): - * process.c (read_process_output, exec_sentinel): - Use bool for booleans. - * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X. - All callers changed. - * eval.c (interactive_p): Omit always-true boolean argument - EXCLUDE_SUBRS_P. All callers changed. - * dispextern.h, lisp.h: Reflect above API changes. - * firstfile.c (dummy): Use the address of 'main', whose signature - won't change, instead of the address of 'initialize', whose - signature just changed from int to bool. - * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ... - * msdos.c (fatal_error_in_progress): ... from here. - * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead - of incrementing it. - (redisplay_internal, unwind_redisplay): Simply clear - REDISPLAYING_P when unwinding, instead of saving its previous, - always-false value and then restoring it. - - Clean up some extern decls. - Mostly, this hoists extern decls out of .c files and into .h files. - That way, we're more likely to catch errors if the interfaces change. - * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not - declare xg_mark_data. - * dispextern.h (x_frame_parm_handlers): - * font.h (Qxft): - * lisp.h (Qlexical_binding, Qinternal_interpreter_environment) - (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold) - (Qultra_bold, Qoblique, Qitalic): - Move extern decl here from .c file. - * alloc.c (xg_mark_data) [USE_GTK]: - * doc.c (Qclosure): - * eval.c (Qlexical_binding): - * fns.c (time) [!HAVE_UNISTD_H]: - * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light) - (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic): - * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]: - * lread.c (Qinternal_interpreter_environment): - * minibuf.c (Qbuffer): - * process.c (QCfamily, QCfilter): - * widget.c (free_frame_faces): - * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]: - * xfont.c (x_clear_errors): - * xterm.c (x_frame_parm_handlers): - Remove now-redundant extern decls. - * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]: - * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic): - Now static. - * xfaces.c: Remove unnecessary static decls. - * xterm.c (updating_frame): Remove decl of nonexistent object. - - * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS) - when building globals.h, as the objects that are not built on - this host are not needed to compile C files on this host. - -2012-09-02 Jan Djärv - - * gtkutil.h: Remove prototype for x_wm_set_size_hint. - - * frame.h: Add missing prototype for x_wm_set_size_hint. - -2012-09-02 Paul Eggert - - * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean. - * doc.c (read_bytecode_char, get_doc_string, reread_doc_file) - (Fdocumentation, Fdocumentation_property, Fsnarf_documentation) - (Fsubstitute_command_keys): - * editfns.c (region_limit, find_field, Fconstrain_to_field) - (save_excursion_save, save_excursion_restore) - (disassemble_lisp_time, decode_time_components, emacs_nmemftime) - (format_time_string, general_insert_function) - (make_buffer_string, make_buffer_string_both) - (Fsubst_char_in_region, Ftranslate_region_internal, Fformat): - * insdel.c (check_markers, gap_left, adjust_markers_for_insert) - (copy_text, insert_1, insert_1_both, insert_from_string) - (insert_from_string_before_markers, insert_from_string_1) - (insert_from_buffer, insert_from_buffer_1, replace_range) - (replace_range_2, del_range_1, del_range_byte, del_range_both) - (del_range_2, modify_region): - * intervals.c (intervals_equal, balance_possible_root_interval) - (adjust_intervals_for_insertion, merge_properties_sticky) - (graft_intervals_into_buffer, lookup_char_property) - (adjust_for_invis_intang, set_point_both) - (get_property_and_range, compare_string_intervals) - (set_intervals_multibyte_1, set_intervals_multibyte): - * keyboard.c (decode_timer): - Use bool for boolean. - * intervals.h, lisp.h, systime.h: Reflect above API changes. - * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans. - -2012-09-02 Chong Yidong - - * keymap.c (push_key_description): Print M-TAB as C-M-i - (Bug#11758). - -2012-09-02 Juanma Barranquero - - * makefile.w32-in (CCL_H, W32FONT_H): New macros. - (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O)) - ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O)) - ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O)) - ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O)) - ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O)) - ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies. - -2012-09-01 Eli Zaretskii - - * w32uniscribe.c (uniscribe_shape): Handle correctly the case of - more than one grapheme cluster passed to the shaper: compute the - offset adjustment values separately for each cluster. (Bug#11860) - - * image.c: Restore mistakenly removed inclusion of w32.h. Without - it, GCC doesn't see prototypes of w32_delayed_load, and complains - about implicit conversions from integer to pointer. - -2012-09-01 Daniel Colascione - - * w32fns.c (x_display_info_for_name): Prevent crash if w32 window - system used too early. - -2012-09-01 Paul Eggert - - Better seed support for (random). - * emacs.c (main): Call init_random. - * fns.c (Frandom): Set the seed from a string argument, if given. - Remove long-obsolete Gentzel cruft. - * lisp.h, sysdep.c (seed_random): Now takes address and size, not long. - (init_random): New function. - -2012-09-01 Daniel Colascione - - * xterm.h: Add header guards. Declare x_menubar_window_to_frame. - Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible, - x_make_frame_invisible, x_iconify_frame, x_free_frame_resources, - x_wm_set_size_hint, x_query_colors, x_real_positions, - x_set_menu_bar_lines, x_char_width, x_char_height, x_sync, - x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar, - all of which have been moved to common code. - - * xfaces.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here) - to match header. - - * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of - directly accessing frame internals. - - * w32font.h: Include font.h. Define syms_of_w32font and - globals_of_w32font. - - * process.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * nsterm.h: Remove declarations now in frame.h. - Define FRAME_X_SCREEN, FRAME_X_VISUAL. - - * menu.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * keyboard.h: Declare ignore_mouse_drag_p whenever we have a - window system. - - * keyboard.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * image.c: Include TERM_HEADER instead of listing all possible - window-system headers. Declare Vlibrary_cache when compiling for - Windows. - - * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed - window system declarations. - - * frame.h: Move common functions here: set_frame_menubar, - x_set_window_size, x_sync, x_get_focus_frame, - x_set_mouse_position, x_set_mouse_pixel_position, - x_make_frame_visible, x_make_frame_invisible, x_iconify_frame, - x_char_width, x_char_height, x_pixel_width, x_pixel_height, - x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines, - x_activate_menubar, x_real_positions, x_bitmap_icon, - x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources, - and x_query_colors. - - * frame.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * font.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * emacs.c: Include TERM_HEADER. - - * dispnew.c: Include TERM_HEADER instead of listing all possible - window-system headers. - - * ccl.h: Include character.h. - - * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for - the current window system; include in list of objects to link into - Emacs. - -2012-08-31 Dmitry Antipov - - Remove mark_ttys function and fix tty_display_info initialization. - * lisp.h (mark_ttys): Remove prototype. - * alloc.c (Fgarbage_collect): Remove redundant (and the only) call - to mark_ttys because all possible values of 'top_frame' slot are - the frames which are reachable from Vframe_list. - * term.c (mark_ttys): Remove. - (init_tty): Safely initialize 'top_frame' slot with Qnil. - -2012-08-31 Dmitry Antipov - - Change struct frame bitfields from unsigned char to unsigned. - * frame.h (struct frame): Change type of 'display_preempted', - 'visible', 'iconified', 'has_minibuffer', 'wants_modeline', - 'auto_raise', 'auto_lower', 'no_split', 'explicit_name', - 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible' - bitfields from unsigned char to unsigned. - -2012-08-31 Dmitry Antipov - - Remove unused member of struct x_output and struct w32_output. - * xterm.h (struct x_output): Remove unused field 'needs_exposure'. - * w32term.h (struct w32_output): Likewise. - -2012-08-30 Jan Djärv - - * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it - does not become zero (Bug#12234). - -2012-08-30 Paul Eggert - - * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow - for GCC 4.7.1 x86-64. - -2012-08-30 Glenn Morris - - * lread.c (init_lread): For out-of-tree builds, only add the - source directory's site-lisp dir to the load-path if it exists, - consistent with in-tree builds. (Bug#12302) - -2012-08-28 Jan Djärv - - * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize - button_values to NULL. Call setStykeMask so dialogs get a close button. - (windowShouldClose:): Set window_closed. - (dealloc): New member, free button_values. - (process_dialog:): Make member function. Remove window argument, - replace window with self. Count buttons and allocate and store values - in button_values. - (addButton:value:row:): value is int with the name tag. Call setTag - with tag. Remove return self, declare return value as void. - (addString:row:): Remove return self, declare return value as void. - (addSplit): Remove return self, declare return value as void. - (clicked:): Remove return self, declare return value as void. - Set dialog_return to button_values[seltag]. Code formatting change. - (initFromContents:isQuestion:): Adjust call to process_dialog. - Code formatting change. - (timeout_handler:): Set timer_fired to YES. - (runDialogAt:): Set timer_fired to NO. - Handle click on close button as quit. - - * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL. - Add window_closed and button_values. Add void as return value for - add(Button|String|Split). addButton takes int instead of Lisp_Object. - Add process_dialog as new member. - -2012-08-28 Eli Zaretskii - - * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it - is not one of the heaps we manage. (Bug#12242) - -2012-08-28 Glenn Morris - - * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747) - -2012-08-28 Martin Rudalics - - * window.c (Fset_window_configuration): Remove handling of - auto-buffer-name window parameter. Install revision of reverted - fix. - -2012-08-28 Dmitry Antipov - - Do not allow to set major mode for a dead buffer. - * buffer.c (Fset_buffer_major_mode): Signal an error - if the buffer is dead. - (Fother_buffer, other_buffer_safely): Remove redundant - nested declaration. - -2012-08-28 Dmitry Antipov - - Always use set_buffer_if_live to restore original buffer at unwind. - * buffer.h (record_unwind_current_buffer): New function. - * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c: - * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c: - * undo.c, window.c: Adjust users. - * buffer.c (set_buffer_if_live): Fix comment. - -2012-08-28 Dmitry Antipov - - Fix usage of set_buffer_internal. - * buffer.h (set_buffer_internal): Make it BUFFER_INLINE. - * buffer.c (set_buffer_if_live): Use set_buffer_internal. - * coding.c (decode_coding): Omit redundant test. - * fileio.c (decide_coding_unwind): Likewise. - * fns.c (secure_hash): Likewise. - * insdel.c (modify_region): Likewise. - * keyboard.c (command_loop_1): Likewise. - * print.c (PRINTFINISH): Likewise. - * xdisp.c (run_window_scroll_functions): Use set_buffer_internal. - -2012-08-27 Paul Eggert - - * dispnew.c: Use bool for boolean. - (frame_garbaged, display_completed, delayed_size_change) - (fonts_changed_p, add_window_display_history) - (add_frame_display_history, verify_row_hash) - (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p) - (row_equal_p, realloc_glyph_pool) - (allocate_matrices_for_frame_redisplay) - (showing_window_margins_p) - (adjust_frame_glyphs_for_frame_redisplay) - (build_frame_matrix_from_leaf_window, make_current) - (mirrored_line_dance, mirror_line_dance, update_frame) - (update_window_tree, update_single_window) - (check_current_matrix_flags, update_window, update_text_area) - (update_window_line, set_window_update_flags, scrolling_window) - (update_frame_1, scrolling, buffer_posn_from_coords) - (do_pending_window_change, change_frame_size) - (change_frame_size_1, sit_for): - Use bool for boolean. - (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows, - and remove last int (actually boolean) argument, which was always 0. - All callers changed. - * dispextern.h, frame.h, lisp.h: Reflect above API changes. - * dispextern.h (struct composition_it): Use bool for boolean. - (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'. - (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf. - * dired.c (file_name_completion): - Use bool for boolean. (This was missed in an earlier change.) - -2012-08-27 Martin Rudalics - - * window.c (Fset_window_configuration): Revert first part of - last change. - -2012-08-27 Jan Djärv - - * nsterm.h (NSPanel): New class variable dialog_return. - - * nsmenu.m (initWithContentRect:styleMask:backing:defer:): - Initialize dialog_return. - (windowShouldClose:): Use stop instead of stopModalWithCode. - (clicked:): Ditto, and also set dialog_return (Bug#12258). - (timeout_handler:): Use stop instead of abortModal. Send a dummy - event. - (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when - modal loop returns. - -2012-08-27 Paul Eggert - - * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans. - * composite.c (find_composition, composition_gstring_p) - (composition_reseat_it, find_automatic_composition): - * data.c (let_shadows_buffer_binding_p) - (let_shadows_global_binding_p, set_internal, make_blv) - (Fmake_variable_buffer_local, Fmake_local_variable) - (Fmake_variable_frame_local, arithcompare, cons_to_unsigned) - (cons_to_signed, arith_driver): - * dbusbind.c (xd_in_read_queued_messages): - * dired.c (directory_files_internal, file_name_completion): - Use bool for booleans. - * dired.c (file_name_completion): - * process.h (fd_callback): - Omit int (actually boolean) argument. It wasn't being used. - All uses changed. - * composite.h, lisp.h: Reflect above API changes. - - * cmds.c, coding.c: Use bool for booleans. - * cmds.c (move_point, Fself_insert_command): - * coding.h (struct composition status, struct coding_system): - * coding.c (detect_coding_utf_8, encode_coding_utf_8) - (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule) - (emacs_mule_char, decode_coding_emacs_mule) - (encode_coding_emacs_mule, detect_coding_iso_2022) - (decode_coding_iso_2022, encode_invocation_designation) - (encode_designation_at_bol, encode_coding_iso_2022) - (detect_coding_sjis, detect_coding_big5, decode_coding_sjis) - (decode_coding_big5, encode_coding_sjis, encode_coding_big5) - (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text) - (encode_coding_raw_text, detect_coding_charset) - (decode_coding_charset, encode_coding_charset, detect_eol) - (detect_coding, get_translation_table, produce_chars) - (consume_chars, reused_workbuf_in_use) - (make_conversion_work_buffer, code_conversion_save) - (decode_coding_object, encode_coding_object) - (detect_coding_system, char_encodable_p) - (Funencodable_char_position, code_convert_region) - (code_convert_string, code_convert_string_norecord) - (Fset_coding_system_priority): - * fileio.c (Finsert_file_contents): - Use bool for booleans. - * coding.h, lisp.h: Reflect above API changes. - * coding.c: Remove unnecessary static function decls. - (detect_coding): Use unsigned, not signed, to copy an unsigned field. - (decode_coding, encode_coding, decode_coding_gap): Return 'void', - not a boolean 'int', since callers never look at the return value. - (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'. - * coding.h (decoding_buffer_size, encoding_buffer_size) - (emacs_mule_string_char): Remove unused extern decls. - (struct iso_2022_spec, struct coding_system): - Use 'unsigned int : 1' for boolean fields, since there's more than one. - (struct emacs_mule_spec): Remove unused field 'full_support'. - All initializations removed. - * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'. - -2012-08-27 Dmitry Antipov - - Fix spare memory change (Bug#12286). - * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE. - (valid_lisp_object_p): Likewise. - -2012-08-27 Martin Rudalics - - * window.c (Fset_window_configuration): Record any window's old - buffer if it's replaced (see Bug#8789). If the new current - buffer doesn't appear in the selected window, go to its old - point (Bug#12208). - -2012-08-27 Dmitry Antipov - - Special MEM_TYPE_SPARE to denote reserved memory. - * alloc.c (enum mem_type): New memory type. - (refill_memory_reserve): Use new type for spare memory. - This prevents live_cons_p and live_string_p from incorrect - detection of uninitialized objects from spare memory as live. - -2012-08-26 Paul Eggert - - Spelling fixes. - * Makefile.in (.PHONY): versioclean -> versionclean. - - Remove unused external symbols. - * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector): - * window.c (Qwindow_valid_p, decode_valid_window): - Now static, not extern. - * data.c (Qinterval): Remove; unused. - (syms_of_data): Do not define 'interval'. - * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons): - * window.h (decode_valid_window): - Remove decls. - - * character.c, charset.c, chartab.c: Use bool for booleans. - * character.c (lisp_string_width, string_count_byte8) - (string_escape_byte8): - * charset.c (charset_map_loaded, load_charset_map, read_hex): - (load_charset_map_from_file, map_charset_chars) - (Fdefine_charset_internal, define_charset_internal) - (Fdeclare_equiv_charset, find_charsets_in_text) - (Ffind_charset_region, char_charset, Fiso_charset): - * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range) - (sub_char_table_set, sub_char_table_set_range) - (char_table_set_range, optimize_sub_char_table) - (map_sub_char_table): - Use bool for boolean. - * character.c (str_to_unibyte): Omit last boolean argument; it was - always 0. All callers changed. - * character.h, charset.h: Adjust to match previous changes. - * character.h (char_printable_p): Remove decl of nonexistent function. - * charset.h (struct charset): Members code_linear_p, iso_chars_96, - ascii_compatible_p, supplementary_p, compact_codes_p, unified_p - are all boolean, so make them single-bit bitfields. - - * lisp.h (ASET): Remove attempt to detect side effects. - It was meant to be temporary and it often doesn't work, - because when IDX has side effects the behavior of IDX==IDX - is undefined. See Stefan Monnier in - . - -2012-08-26 Barry OReilly (tiny change) - - * lisp.h (functionp): New function (extracted from Ffunctionp). - (FUNCTIONP): Use it. - * eval.c (Ffunctionp): Use it. - -2012-08-25 Paul Eggert - - * xgselect.c (xg_select): Use auto storage for the GPollFD buffer - as that's faster and simpler than static storage. Don't bother - with the g_main_context_query overhead if g_main_context_pending - says no events are pending. - (gfds, gfds_size): Remove these static vars. - (xgselect_initialize): Remove; no longer needed. - All uses and decls removed. - - * emacs.c (fatal_error_signal_hook): Remove. - All uses removed. This leftover from old code was always 0. - - * casefiddle.c, casetab.c, category.c: Use bool for boolean. - * casefiddle.c (casify_object, casify_region): - * casetab.c (set_case_table): - * category.c, category.h (word_boundary_p): - * category.h (CHAR_HAS_CATEGORY): - Use bool for booleans, instead of int. - -2012-08-25 Eli Zaretskii - - * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h. - -2012-08-25 Paul Eggert - - On assertion failure, print backtrace if available. - * alloc.c [ENABLE_CHECKING]: Include . - (die) [ENABLE_CHECKING]: Print a backtrace if available. - * Makefile.in (LIB_EXECINFO): New macro. - (LIBES): Use it. - - * bytecode.c, callint.c, callproc.c: Use bool for boolean. - * bytecode.c (exec_byte_code): - * callint.c (check_mark, Fcall_interactively): - * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1) - (getenv_internal, sync_process_alive, call_process_exited): - * lisp.h (USE_SAFE_ALLOCA): - Use bool for booleans, instead of int. - * lisp.h, process.h: Adjust prototypes to match above changes. - * callint.c (Fcall_interactively): Don't assume the mark's - offset fits in 'int'. - -2012-08-24 Paul Eggert - - * buffer.c, buffer.h: Use bool for boolean. - * buffer.c (reset_buffer_local_variables) - (buffer_lisp_local_variables, Fset_buffer_modified_p) - (Frestore_buffer_modified_p, Fset_buffer_multibyte): - (overlays_at, overlays_in, mouse_face_overlay_overlaps) - (overlay_touches_p, overlay_strings, Foverlay_put) - (report_overlay_modification, call_overlay_mod_hooks): - (mmap_enlarge, mmap_set_vars): - * buffer.h (buffer_has_overlays, uppercasep, lowercasep): - Use bool for booleans, instead of int. - * buffer.c (compact_buffer, mmap_free_1): Return void, not int, - since the 1-or-0 return value is always ignored anyway. - (mmap_initialized_p): - * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int. - * buffer.h, lisp.h: Adjust prototypes to match above changes. - -2012-08-23 Paul Eggert - - * bidi.c: Use bool for boolean. - This is a bit more readable, and makes the text segment of bidi.o - 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15). - Presumably it's faster too. - (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level): - Now bool. - (bidi_cache_find_level_change, bidi_cache_iterator_state) - (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes) - (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init) - (bidi_explicit_dir_char, bidi_level_of_next_char) - (bidi_find_other_level_edge, bidi_move_to_visually_next): - Use bool for booleans, instead of int. - * dispextern.h (bidi_init_it, bidi_paragraph_init) - (bidi_unshelve_cache): Adjust decls to match code. - -2012-08-23 Martin Rudalics - - * keyboard.c (Fposn_at_x_y): Do not allow internal window as - argument. - -2012-08-23 Paul Eggert - - * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean. - * atimer.h: Include . - -2012-08-22 Dan Nicolaescu - - * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to - compile time tests instead of run time tests on systems that do - not use them. - (FRAME_MAC_P): Remove leftover from deleted code. - * frame.c (syms_of_frame): Remove leftover from deleted code. - -2012-08-22 Jan Djärv - - * nsterm.m (insertText:): Don't clear modifiers if code is space. - -2012-08-22 Paul Eggert - - * fontset.c (FONTSET_ADD): Return void, not Lisp_Object. - Otherwise, the compiler complains about (A?B:C) where B is void - and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12. - (fontset_add): Return void, for FONTSET_ADD. - -2012-08-21 Paul Eggert - - * alloc.c: Use bool for booleans. - (gc_in_progress, abort_on_gc) - (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]: - (dont_register_blocks) [GC_MALLOC_CHECK]: - (suppress_checking) [ENABLE_CHECKING]: Now bool, not int. - (check_string_bytes, make_specified_string, memory_full) - (live_string_p, live_cons_p, live_symbol_p, live_float_p) - (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object) - (mark_stack, valid_pointer_p, make_pure_string) - (Fgarbage_collect, survives_gc_p, gc_sweep): - Use bool for booleans, instead of int. - (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]: - Remove unused local. - * alloc.c (PURE_POINTER_P): - * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean. - * editfns.c (Fformat): - * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name) - (Fdo_auto_save): - * fns.c (sweep_weak_table): - * lisp.h (suppress_checking, push_message, survives_gc_p) - (make_pure_string, gc_in_progress, abort_on_gc): - * lread.c (readchar, read1): - * print.c (Fprin1_to_string): - * xdisp.c (push_message): - Use bool for booleans affected directly or indirectly by - alloc.c's changes. - - Make recently-introduced setters macros. - * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii) - (set_fontset_base, set_fontset_frame, set_fontset_nofont_face) - (set_fontset_default, set_fontset_fallback): Rename from their - upper-case counterparts, and make them functions rather than macros. - This is more consistent with the other recently-introduced setters. - These don't need to be inline, since they're local. - -2012-08-21 Jan Djärv - - * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in - the loop (Bug#12247). - -2012-08-21 Paul Eggert - - * lisp.h (vcopy): Use memcpy rather than our own loop. - This fixes a performance regression introduced by the recent - addition of vcopy. This means 'vcopy' will need to be modified - for a copying collector, but that's OK. Also, tighten the - checking in the assertion. - -2012-08-21 Eli Zaretskii - - * w32uniscribe.c (uniscribe_shape): Fix producing gstring - components for RTL text (Bug#11860). Adjust X-OFFSET of each - non-base glyph for the width of the base character, according to - what x_draw_composite_glyph_string_foreground expects. - Generate WADJUST value according to composition_gstring_width's - expectations, to produce correct width of the composed character. - Reverse the sign of the DU offset produced by ScriptPlace. - -2012-08-21 Paul Eggert - - * dbusbind.c (xd_remove_watch): Do not assume C99 comments. - -2012-08-21 Dmitry Antipov - - Avoid direct writes to contents member of struct Lisp_Vector. - * lisp.h (vcopy): New function to copy data into vector. - * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET. - * fns.c (Ffillarray): Use ASET. - * keyboard.c (timer_check_2): Use AREF and ASET. - (append_tool_bar_item, Frecent_keys): Use vcopy. - * lread.c (read_vector): Use ASET. - * msdos.c (Frecent_doskeys): Use vcopy. - * xface.c (Finternal_copy_lisp_face): Use vcopy. - (Finternal_merge_in_global_face): Use ASET and vcopy. - * xfont.c (xfont_list_pattern): Likewise. - -2012-08-21 Martin Rudalics - - * window.c (Fwindow_point): For the selected window always return - the position of its buffer's point. - (Fset_window_point): For the selected window always go in its - buffer to the specified position. - -2012-08-21 Dmitry Antipov - - Setter macros for fontsets. - * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII) - (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE) - (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros. - Adjust users. - -2012-08-20 Glenn Morris - - * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): - Don't assume that `ln -f' works. - -2012-08-20 Eli Zaretskii - - * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5 - and later about non-assignments with no effect. See discussion at - http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for - details. - -2012-08-20 Dmitry Antipov - - Inline setter functions for Lisp_Objects slots of struct specbinding. - * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions. - Adjust users. - -2012-08-20 Martin Rudalics - - * window.c (select_window): Always make selected window's buffer - current. - -2012-08-20 Dmitry Antipov - - Use AREF and ASET for docstrings of category tables. - * category.h (CATEGORY_DOCSTRING): Use AREF. - (SET_CATEGORY_DOCSTRING): Use ASET. - * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING. - -2012-08-20 Dmitry Antipov - - Inline setter functions for hash table members. - * lisp.h (set_hash_key, set_hash_value, set_hash_next) - (set_hash_hash, set_hash_index): Rename with _slot suffix. - (set_hash_key_and_value, set_hash_index, set_hash_next) - (set_hash_hash): New functions. - * charset.c, fns.c: Adjust users. - -2012-08-20 Dmitry Antipov - - Inline getter and setter functions for per-buffer values. - * buffer.h (per_buffer_default, set_per_buffer_default) - (per_buffer_value, set_per_buffer_value): New functions. - (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove. - * buffer.c, data.c: Adjust users. - -2012-08-20 Juanma Barranquero - - * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies. - -2012-08-19 Paul Eggert - - Rely on + to declare 'environ', - as gnulib does this if the system doesn't. - * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]: - Remove declaration. MS-Windows declares it on stdlib.h which is - included by conf_post.h. - * emacs.c (environ) [DOUG_LEA_MALLOC]: - * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl. - * vm-limit.c: Include , for 'environ'. - - * unexaix.c, unexcoff.c: Include "mem-limits.h". - (start_of_data): Remove decl; mem-limits.h provides it. - - * xdisp.c (handle_invisible_prop): Make it a bit faster - and avoid a gcc -Wmaybe-uninitialized diagnostic. - -2012-08-19 Chong Yidong - - * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string - ends (Bug#3874). - -2012-08-19 Andreas Schwab - - * .gdbinit: Use call instead of set when calling a function in the - inferior. - - * data.c (set_internal): Don't use set_blv_found. - (Fkill_local_variable): Likewise. - -2012-08-18 Alp Aker - - * nsfont.m (ns_ascii_average_width): Ensure the string - ascii_printable is initialized with a null-terminated character - array. Otherwise, it can contain undesired extra characters. - -2012-08-18 Paul Eggert - - port new setting code to Sun C 5.8 2005/10/13 - * chartab.c, lisp.h (char_table_set, char_table_set_range): - Return void, not Lisp_Object. Otherwise, the compiler - complains about (A?B:C) where B is void and C is Lisp_Object - when compiling CHAR_TABLE_SET, due to the recent change to - the API of sub_char_table_set_contents. - -2012-08-18 Chong Yidong - - * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE - for the string case (Bug#3874). - -2012-08-18 Paul Eggert - - * buffer.h (BSET): Remove (Bug#12215). - Replace all uses with calls to new setter functions. - (bset_bidi_paragraph_direction, bset_case_canon_table) - (bset_case_eqv_table, bset_directory, bset_display_count) - (bset_display_time, bset_downcase_table) - (bset_enable_multibyte_characters, bset_filename, bset_keymap) - (bset_last_selected_window, bset_local_var_alist) - (bset_mark_active, bset_point_before_scroll, bset_read_only) - (bset_truncate_lines, bset_undo_list, bset_upcase_table) - (bset_width_table): - * buffer.c (bset_abbrev_mode, bset_abbrev_table) - (bset_auto_fill_function, bset_auto_save_file_format) - (bset_auto_save_file_name, bset_backed_up, bset_begv_marker) - (bset_bidi_display_reordering, bset_buffer_file_coding_system) - (bset_cache_long_line_scans, bset_case_fold_search) - (bset_ctl_arrow, bset_cursor_in_non_selected_windows) - (bset_cursor_type, bset_display_table, bset_extra_line_spacing) - (bset_file_format, bset_file_truename, bset_fringe_cursor_alist) - (bset_fringe_indicator_alist, bset_fringes_outside_margins) - (bset_header_line_format, bset_indicate_buffer_boundaries) - (bset_indicate_empty_lines, bset_invisibility_spec) - (bset_left_fringe_width, bset_major_mode, bset_mark) - (bset_minor_modes, bset_mode_line_format, bset_mode_name) - (bset_name, bset_overwrite_mode, bset_pt_marker) - (bset_right_fringe_width, bset_save_length) - (bset_scroll_bar_width, bset_scroll_down_aggressively) - (bset_scroll_up_aggressively, bset_selective_display) - (bset_selective_display_ellipses, bset_vertical_scroll_bar_type) - (bset_word_wrap, bset_zv_marker): - * category.c (bset_category_table): - * syntax.c (bset_syntax_table): - New setter functions. - - * process.h (PSET): Remove (Bug#12215). - Replace all uses with calls to new setter functions. - Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. - (PROCESS_INLINE): New macro. - (pset_childp): New setter function. - (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function. - * process.c (PROCESS_INLINE): - Define to EXTERN_INLINE, so that the corresponding functions - are compiled into code. - (pset_buffer, pset_command, pset_decode_coding_system) - (pset_decoding_buf, pset_encode_coding_system) - (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name) - (pset_plist, pset_sentinel, pset_status, pset_tty_name) - (pset_type, pset_write_queue): New setter functions. - - * window.h (WSET): Remove (Bug#12215). - Replace all uses with calls to new setter functions. - Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. - (WINDOW_INLINE): New macro. - (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev) - (wset_redisplay_end_trigger, wset_top_line, wset_total_cols) - (wset_total_lines, wset_vertical_scroll_bar) - (wset_window_end_pos, wset_window_end_valid) - (wset_window_end_vpos): New setter functions. - * window.c (WINDOW_INLINE): - Define to EXTERN_INLINE, so that the corresponding functions - are compiled into code. - (wset_combination_limit, wset_dedicated, wset_display_table) - (wset_hchild, wset_left_fringe_width, wset_left_margin_cols) - (wset_new_normal, wset_new_total, wset_next_buffers) - (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm) - (wset_prev_buffers, wset_right_fringe_width) - (wset_right_margin_cols, wset_scroll_bar_width, wset_start) - (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type) - (wset_window_parameters): - * xdisp.c (wset_base_line_number, wset_base_line_pos) - (wset_column_number_displayed, wset_region_showing): - New setter functions. - - * termhooks.h (TSET): Remove (Bug#12215). - Replace all uses with calls to new setter functions. - Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. - (TERMHOOKS_INLINE): New macro. - (tset_charset_list, tset_selection_alist): New setter functions. - * terminal.c (TERMHOOKS_INLINE): - Define to EXTERN_INLINE, so that the corresponding functions - are compiled into code. - (tset_param_alist): New setter function. - -2012-08-17 Paul Eggert - - * keyboard.h (KSET): Remove (Bug#12215). - Replace all uses with calls to new setter functions. - Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. - (KEYBOARD_INLINE): New macro. - (kset_default_minibuffer_frame, kset_defining_kbd_macro) - (kset_input_decode_map, kset_last_command, kset_last_kbd_macro) - (kset_prefix_arg, kset_system_key_alist, kset_window_system): - New setter functions. - * keyboard.c (KEYBOARD_INLINE): - Define to EXTERN_INLINE, so that the corresponding functions - are compiled into code. - (kset_echo_string, kset_kbd_queue) - (kset_keyboard_translate_table, kset_last_prefix_arg) - (kset_last_repeatable_command, kset_local_function_key_map) - (kset_overriding_terminal_local_map, kset_real_last_command) - (kset_system_key_syms): New setter functions. - - * frame.h (FSET): Remove (Bug#12215). - Replace all uses with calls to new setter functions. - Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. - (FRAME_INLINE): New macro. - (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars) - (fset_current_tool_bar_string, fset_desired_tool_bar_string) - (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items) - (fset_menu_bar_vector, fset_menu_bar_window, fset_name) - (fset_param_alist, fset_root_window, fset_scroll_bars) - (fset_selected_window, fset_title, fset_tool_bar_items) - (fset_tool_bar_position, fset_tool_bar_window): New functions. - * frame.c (FRAME_INLINE): - Define to EXTERN_INLINE, so that the corresponding functions - are compiled into code. - (fset_buffer_predicate, fset_minibuffer_window): New setter functions. - - A few more naming-convention fixes for getters and setters. - * buffer.c (set_buffer_overlays_before): Move here from buffer.h, - and rename from buffer_overlays_set_before. - (set_buffer_overlays_after): Move here from buffer.h, and rename - from buffer_overlays_set_after. - * buffer.h (buffer_intervals): Rename from buffer_get_intervals. - All uses changed. - (set_buffer_intervals): Rename from buffer_set_intervals. - * intervals.c (set_interval_object): Move here from intervals.h, - and rename from interval_set_object. - (set_interval_left): Move here from intervals.h, and rename from - interval_set_left. - (set_interval_right): Move here from intervals.h, and rename from - interval_set_right. - (copy_interval_parent): Move here from intervals.h, and rename from - interval_copy_parent. - * intervals.h (set_interval_parent): Rename from interval_set_parent. - (set_interval_plist): Rename from interval_set_plist. - Return void, not Lisp_Object, since no caller uses the result. - * lisp.h (string_intervals): Rename from string_get_intervals. - (set_string_intervals): Rename from string_set_intervals. - - * lisp.h (set_char_table_extras): Rename from char_table_set_extras. - (set_char_table_contents): Rename from char_table_set_contents. - (set_sub_char_table_contents): Rename from sub_char_table_set_contents. - All uses changed. See the end of - . - - * lisp.h (CSET): Remove (Bug#12215). - (set_char_table_ascii, set_char_table_defalt, set_char_table_parent) - (set_char_table_purpose): New functions, - replacing CSET. All uses changed. For example, replace - "CSET (XCHAR_TABLE (char_table), parent, parent);" with - "set_char_table_parent (char_table, parent);". - The old version was confusing because it used the same name - 'parent' for two different things. - -2012-08-17 Dmitry Antipov - - Functions to get and set Lisp_Object fields of buffer-local variables. - * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value) - (set_blv_where, set_blv_defcell, set_blv_valcell): New functions. - (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove. - * data.c, eval.c, frame.c: Adjust users. - -2012-08-17 Chong Yidong - - * xfaces.c (merge_face_vectors): If the target font specfies a - font spec, make the font's attributes take precedence over - directly-specified attributes. - (merge_face_ref): Recognize :font. - -2012-08-17 Dmitry Antipov - - Do not use memcpy for copying intervals. - * intervals.c (reproduce_interval): New function. - (reproduce_tree, reproduce_tree_obj): Use it. - (reproduce_tree_obj): Remove prototype. - -2012-08-17 Paul Eggert - - * lisp.h (duration_to_sec_usec): Remove unused decl. - -2012-08-17 Alp Aker - - * nsfont.m (ns_ascii_average_width): Send initWithFormat selector - to an allocated instance of NSString, not to the class itself. - -2012-08-17 Juanma Barranquero - - * 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-16 Paul Eggert - - Use ASCII tests for character types. - * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c: - * xfns.c, xterm.c: - Don't include ; was not needed. - * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c: - * sysdep.c, xfaces.c: - Include instead of . - * nsterm.m: Include . - * charset.c (read_hex): - * doc.c (Fsnarf_documentation): - * fileio.c (IS_DRIVE) [WINDOWSNT]: - (DRIVE_LETTER) [DOS_NT]: - (Ffile_name_directory, Fexpand_file_name) - (Fsubstitute_in_file_name): - * font.c (font_parse_xlfd, font_parse_fcname): - * frame.c (x_set_font_backend): - * gtkutil.c (xg_get_font): - * image.c (xbm_scan, xpm_scan, pbm_scan_number): - * nsimage.m (hexchar): - * nsterm.m (ns_xlfd_to_fontname): - * sysdep.c (system_process_attributes): - * xfaces.c (hash_string_case_insensitive): - Use C-locale tests instead of locale-specific tests for character - types, since we want the ASCII interpretation here, not the - interpretation suitable for whatever happens to be the current locale. - -2012-08-16 Martin Rudalics - - Consistently check windows for validity/liveness - (Bug#11984, Bug#12025, Bug#12026). - * lisp.h (CHECK_VALID_WINDOW): New macro. - * window.c (decode_window): Rename to decode_live_window. - (decode_valid_window, Fwindow_valid_p): New functions. - (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p) - (Fframe_first_window, Fframe_selected_window, Fwindow_parent) - (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling) - (Fwindow_prev_sibling, Fwindow_combination_limit) - (Fset_window_combination_limit, Fwindow_use_time) - (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total) - (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column) - (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width) - (Fwindow_hscroll, Fset_window_hscroll) - (Fwindow_redisplay_end_trigger) - (Fset_window_redisplay_end_trigger, Fwindow_edges) - (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges) - (Fwindow_inside_edges, Fwindow_inside_pixel_edges) - (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start) - (Fwindow_end, Fset_window_point, Fset_window_start) - (Fpos_visible_in_window_p, Fwindow_line_height) - (Fwindow_dedicated_p, Fset_window_dedicated_p) - (Fwindow_prev_buffers, Fset_window_prev_buffers) - (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter) - (Fset_window_parameter, Fwindow_display_table) - (Fset_window_display_table, Fdelete_other_windows_internal) - (Fset_window_buffer, Fset_window_new_total) - (Fset_window_new_normal, Fdelete_window_internal) - (Fwindow_text_height, Fset_window_margins, Fwindow_margins) - (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars) - (Fwindow_scroll_bars): Check whether argument window is a valid or - live window. Update doc-strings. - (syms_of_window): New symbol Qwindow_valid_p. - * keyboard.c (Fposn_at_x_y): Check whether argument - frame_or_window denotes a valid window. - -2012-08-16 Dmitry Antipov - - Fix previous char table change. - * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents. - * chartab.c (optimize_sub_char_table): Likewise. - -2012-08-16 Chong Yidong - - * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228). - - * xfont.c (xfont_open): - * xftfont.c (xftfont_open): Set the font's max_width field. - - * nsfont.m (nsfont_open): Similar to the Xft backend, set - min_width to space_width and average_width to the average over - printable ASCII characters. - (ns_char_width): Code cleanup. - (ns_ascii_average_width): New utility function. - - * font.h (struct font): Update comments. - -2012-08-16 Dmitry Antipov - - Simple interface to set Lisp_Object fields of character tables. - * lisp.h (CSET): New macro. - (char_table_set_extras, char_table_set_contents) - (sub_char_table_set_contents): New function. - * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c: - * syntax.c: Adjust users. - -2012-08-16 Stefan Monnier - - * eval.c (eval_sub): Bind lexical-binding. - * lread.c (Qlexical_binding): Make non-static. - -2012-08-15 Jan Djärv - - * nsmenu.m (popupSession): Remove. - (pop_down_menu): Remove endModalSession. - (timeout_handler:): New method. - (runDialogAt:): Get next timeout. Start a NSTimer with that timeout. - Call runModalForWindow. Check timer_fired when it returns. - If not set, cancel timer and break out of loop. - Otherwise loop again, with a new timeout. - - * nsterm.m: Include fcntl.h if present. - (fd_entry, t_readfds, inNsSelect): Remove. - (select_writefds, select_valid, select_timeout, selfds) - (select_mutex, apploopnr): Add. - (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr. - Otherwise call kbd_buffer_store_event. - (ns_send_appdefined): Remove release of fd_entry. - (ns_read_socket): Always send appdefined. Remove inNsSelect check. - Increment and decrement apploopnr. - (ns_select): If no file descriptors, just do a NSTimer. - Otherwise copy read/write masks and start select thread (fd_handler). - Start main loop and wait for application defined event. - Inform select thread to stop selecting after main loop is exited. - (ns_term_init): Create selfds pipe and set non-blocking. - Initialize select_mutex. Start the select thread (fd_handler). - (fd_handler:): Loop forever, wait for info from the main thread - to either start or stop selecting. When select returns, send - and appdefined event. - (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set. - If not call kbd_buffer_store_event. - - * nsterm.h (EmacsApp): fd_handler takes id argument. - (EmacsDialogPanel): Add timer_fired and timeout_handler. - - * gtkutil.c (xg_mark_data): Use FRAME_X_P. - -2012-08-15 Eli Zaretskii - - * region-cache.c (move_cache_gap): Update gap_len using the actual - growth of the boundaries array. Do not change cache_len. - (Bug#12196) - -2012-08-15 Dmitry Antipov - - Generalize and cleanup font subsystem checks. - * font.h (FONT_DEBUG, font_assert): Remove. - * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: - Change font_assert to eassert. Use eassert where appropriate. - -2012-08-15 Dmitry Antipov - - * gtkutil.c (xg_get_font): Use pango_units_to_double. - -2012-08-15 Chong Yidong - - * gtkutil.c (xg_get_font): Rename from xg_get_font_name. - When using the new font chooser, use gtk_font_chooser_get_font_desc to - extract the font descriptor instead of just the font name. - In that case, return a font spec instead of a string. - (x_last_font_name): Move to this file from xfns.c. - - * xfns.c (Fx_select_font): The return value can also be a font - spec. Move x_last_font_name management to gtkutil.c. - - * xfaces.c: Make font weight and style symbols non-static. - -2012-08-15 Stefan Monnier - - * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only - (bug#12117). - -2012-08-14 Stefan Monnier - - * alloc.c (Fgarbage_collect): Use plural form consistently. - -2012-08-14 Eli Zaretskii - - * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each - iteration through the command loop. Fixes a problem whereby mouse - movements are ignored until the first mouse click. - -2012-08-14 Paul Eggert - - Use bool, not int, for Lisp booleans. - This is more natural, and on my platform (GCC 4.7.1 x86-64) it - makes Emacs a bit smaller and presumably a bit faster. - * lisp.h: Include . - (struct Lisp_Boolfwd, defvar_bool): - * lread.c (defvar_bool): Use bool, not int, for Lisp booleans. - * regex.c [!emacs]: Include . - (false, true): Remove; does this for us now. - -2012-08-14 Chong Yidong - - * character.c (Fcharacterp): Doc fix (Bug#12076). - - * data.c (Findirect_variable): Doc fix (Bug#11040). - - * chartab.c (Fmap_char_table): Doc fix (Bug#12061). - - * editfns.c (Fformat): Doc fix (Bug#12059). - (Fsave_current_buffer): Doc fix (Bug#11542). - -2012-08-14 Barry OReilly (tiny change) - - * keyboard.c (access_keymap_keyremap): Accept anonymous functions - (bug#12022). - -2012-08-14 Martin Rudalics - - * frame.c (make_frame_without_minibuffer, make_minibuffer_frame) - (delete_frame, Fmake_frame_invisible, Ficonify_frame): - * minibuf.c (choose_minibuf_frame, read_minibuf): - * w32fns.c (x_create_tip_frame): - * xfns.c (x_create_tip_frame): Call set_window_buffer instead of - Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026). - -2012-08-14 Paul Eggert - - * intervals.c (offset_intervals): Remove obsolete comment. - -2012-08-14 Andreas Schwab - - * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP. - -2012-08-14 Gergely Risko - - * coding.c (decode_coding): Record buffer modification before - disabling undo_list (Bug#11773). - -2012-08-14 Dmitry Antipov - - Revert and cleanup some recent overlay changes. - * buffer.h (enum overlay_type): Remove. - (buffer_get_overlays, buffer_set_overlays): Likewise. - (buffer_set_overlays_before, buffer_set_overlays_after): - New function. Adjust users. - (unchain_both): Add eassert. - -2012-08-14 Dmitry Antipov - - * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate. - -2012-08-14 Paul Eggert - - * gtkutil.c (xg_mark_data): Don't assume C99. - -2012-08-13 Jan Djärv - - * gtkutil.c (xg_frame_tb_info): New struct. - (TB_INFO_KEY): New define. - (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present. - (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info. - (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info - if not present. - (update_frame_tool_bar): Return early if data in xg_frame_tb_info - is up to date. Otherwise store new data. - (free_frame_tool_bar): Free xg_frame_tb_info if present. - -2012-08-13 Dmitry Antipov - - Use KSET for write access to Lisp_Object members of struct kboard. - * keyboard.h (KSET): New macro. - * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c: - * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c: - * xterm.c: Adjust users. - -2012-08-13 Dmitry Antipov - - Use BSET for write access to Lisp_Object members of struct buffer. - * buffer.h (BSET): New macro. - * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c: - * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c: - * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c: - * window.c, xdisp.c, xfns.c: Adjust users. - -2012-08-11 BT Templeton (tiny change) - - * lread.c (syms_of_lread): Initialize Vlexical_binding. - -2012-08-11 Jan Djärv - - * nsterm.m (not_in_argv): New function. - (application:openFile, application:openTempFile:): - (application:openFileWithoutUI:, application:openFiles:): Open file - if not_in_argv returns non-zero (bug#12171). - - * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) - (gtk_font_chooser_set_font, gtk_font_chooser_get_font): - Define for Gtk+ versions less than 3.2. - (xg_get_font_name): Use those functions/macros here. - Reported by Frans Oilinki . - -2012-08-11 YAMAMOTO Mitsuharu - - * unexmacosx.c (copy_data_segment): Copy initialized data in - statically linked libraries from input file rather than memory. - - * unexmacosx.c (print_load_command_name): Add cases LC_MAIN, - LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS. - (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data. - -2012-08-10 Glenn Morris - - * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h. - * lisp.h (IF_LINT, lint_assume): Move to conf_post.h. - -2012-08-10 Dmitry Antipov - - Fix last change to allow compilation with low optimization levels. - * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE. - Reported by Jan Djärv . - -2012-08-10 Dmitry Antipov - - Use common inline syntax in intervals.h. - * intervals.h (INTERVALS_INLINE): New macro. - Change all users from LISP_INLINE. - -2012-08-10 Dmitry Antipov - - Define Qnone once for all platforms. - * frame.c (Qnone): Define here. - (syms_of_frame): DEFSYM it. - * lisp.h (Qnone): New declaration. - * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c: - * xfns.c: Remove duplication. Adjust users. - -2012-08-10 Dmitry Antipov - - Remove unused macros from intervals.h. - * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove. - * intervals.c: Adjust comment. - -2012-08-10 Eli Zaretskii - - * w32fns.c : New static variable. - (globals_of_w32fns): Initialize it according to os_subtype. - (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of - testing os_subtype. - -2012-08-10 Joakim Hårsman (tiny change) - Eli Zaretskii - - Fix bug #10299 with Unicode characters sent by customized - keyboards created by MSKLC. - * w32fns.c (INIT_WINDOW_CLASS): New macro. - (w32_init_class): Use it to initialize the Emacs class with either - ANSI or Unicode API calls. - (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and - later. - (w32_wnd_proc): If the character code sent by WM_CHAR or - WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the - original message. Call DefWindowProcW on NT and later. - -2012-08-10 Glenn Morris - - * Makefile.in (config_h): Fix conf_post.h out-of-tree build location. - - * lisp.h (DIRECTORY_SEP): Let configure set it. - -2012-08-09 Dmitry Antipov - - Use TSET for write access to Lisp_Object slots of struct terminal. - * termhooks.h (TSET): New macro. - * coding.c, terminal.c, xselect.c: Adjust users. - -2012-08-08 Stefan Monnier - - * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing - the failing expression, include them in the error message. - * eval.c (internal_condition_case_n): Pass nargs and args to hfun. - * lisp.h (internal_condition_case_n): Update declaration. - -2012-08-08 Dmitry Antipov - - Inline functions to examine and change buffer overlays. - * buffer.c (unchain_both): New function. - * buffer.h (buffer_get_overlays, buffer_set_overlays): - (buffer_has_overlays): New function. - (enum overlay_type): New enum. - * alloc.c, buffer.c, editfns.c, fileio.c, indent.c: - * insdel.c, intervals.c, print.c, xdisp.c: Adjust users. - -2012-08-08 Dmitry Antipov - - Inline functions to examine and change buffer intervals. - * alloc.c (mark_interval_tree): Remove. - (MARK_INTERVAL_TREE): Simplify. - (UNMARK_BALANCE_INTERVALS): Remove. Adjust users. - * intervals.c (buffer_balance_intervals): New function. - (graft_intervals_into_buffer): Adjust indentation. - (set_intervals_multibyte): Simplify. - * buffer.h (BUF_INTERVALS): Remove. - (buffer_get_intervals, buffer_set_intervals): New function. - * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c: - * intervals.c, textprop.c: Adjust users. - -2012-08-08 Dmitry Antipov - - Inline functions to examine and change string intervals. - * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove. - (string_get_intervals, string_set_intervals): New function. - * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c: - * lread.c, print.c, textprop.c: Adjust users. - -2012-08-08 Glenn Morris - - * lisp.mk (lisp): Remove language/persian.elc. - -2012-08-08 Dmitry Antipov - - Cleanup intervals. - * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove. - (NULL_INTERVAL_P): Likewise. Adjust users. - (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P): - Adjust comment. Move under #if 0. - * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c: - * print.c, syntax.c, textprop.c, xdisp.c: Adjust users. - -2012-08-08 Dmitry Antipov - - Check total length of intervals with eassert. - * intervals.h (CHECK_TOTAL_LENGTH): Remove. - * intervals.c: Change all users to eassert. - -2012-08-07 Eli Zaretskii - - * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist): - Rename fields to match removal of FGET and WGET and disuse of - INTERNAL_FIELD in Lisp_Cons. - -2012-08-07 Dmitry Antipov - - Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things. - * lisp.h (struct Lisp_Symbol): Change xname to meaningful - name since all xname users are fixed long time ago. Do not - use INTERNAL_FIELD. - (set_symbol_name, set_symbol_function, set_symbol_plist): - (set_symbol_next, set_overlay_plist): New function. - (struct Lisp_Cons): Do not use INTERNAL_FIELD. - (struct Lisp_Overlay): Likewise. - (CVAR, MVAR, SVAR): Remove. - * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c: - * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m: - * xterm.c: Adjust users. - * .gdbinit: Change to use name field of struct Lisp_Symbol - where appropriate. - -2012-08-07 Dmitry Antipov - - Basic functions to set Lisp_Object and pointer slots of intervals. - * intervals.h (interval_set_parent, interval_set_object): - (interval_set_left, interval_set_right, interval_set_plist): - (interval_copy_parent): New function. - (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove. - (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE): - Adjust indentation. - (INTERVAL_SIZE): Remove. Adjust users. - * alloc.c, intervals.c, lread.c, textprop.c: Use new functions. - -2012-08-07 Dmitry Antipov - - Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process. - * process.h (PGET): Remove. - (struct Lisp_Process): Do not use INTERNAL_FIELD. - * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users. - -2012-08-07 Dmitry Antipov - - Drop WGET and revert read access to Lisp_Objects slots of struct window. - * window.h (WGET): Remove. - (struct window): Do not use INTERNAL_FIELD. - * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: - * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: - * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m: - * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c: - * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: - Adjust users. - -2012-08-07 Chong Yidong - - * window.c (Fwindow_edges, Fwindow_pixel_edges) - (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal) - (Fdelete_window_internal): Signal an error if the window is not on - a live frame (Bug#12025). - -2012-08-07 Dmitry Antipov - - Drop FGET and revert read access to Lisp_Objects slots of struct frame. - * frame.h (FGET): Remove. - (struct frame): Do not use INTERNAL_FIELD. - * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c: - * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m: - * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h: - * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users. - -2012-08-06 Juanma Barranquero - - * w32.c: Silence compiler warnings. - (map_w32_filename): Remove unused variable `is_fat'. - (chase_symlinks): Add parentheses around expression. - -2012-08-06 Glenn Morris - - * sysdep.c: Respect BROKEN_GETWD. - - * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT): - Let configure handle it. - (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it. - -2012-08-06 Dmitry Antipov - - Use GCALIGNMENT where appropriate. - * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size): - (union aligned_Lisp_Symbol, union aligned_Lisp_Misc): - (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT. - -2012-08-06 Eli Zaretskii - - * w32menu.c (set_frame_menubar, initialize_frame_menubar): - Don't use FRAME_MENU_BAR_ITEMS as an lvalue. - -2012-08-06 Stefan Monnier - - * buffer.h (struct buffer): Revert `indirections' to a simple int; - that should be sufficient for everyone. - -2012-08-06 Jan Djärv - - * keyboard.c (timer_check_2): Add break so timer_check returns next - timeout. - -2012-08-06 Dmitry Antipov - - Fix Windows build errors introduced after converting to WGET and WSET. - * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET. - Reported by Andy Moreton . - -2012-08-06 Jan Djärv - - * nsterm.m (ns_frame_rehighlight): Use FSET. - - * nsmenu.m (ns_update_menubar): Use FSET. - -2012-08-06 Dmitry Antipov - - Separate read and write access to Lisp_Object slots of Lisp_Process. - * process.h (PGET, PSET): New macros similar to AREF and ASET. - * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users. - -2012-08-06 Dmitry Antipov - - Separate read and write access to Lisp_Object slots of struct window. - * window.h (WGET, WSET): New macros similar to AREF and ASET. - * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: - * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: - * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m: - * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c: - * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: - Adjust users. - -2012-08-06 Dmitry Antipov - - Fix Windows build errors introduced after converting to FGET and FSET. - * w32term.c (x_frame_rehighlight, x_scroll_bar_create): - (w32_condemn_scroll_bars, w32_redeem_scroll_bar): - (w32_judge_scroll_bars): Change to use FSET. - Reported by Andy Moreton . - -2012-08-06 Dmitry Antipov - - Fix replacement typo. - * window.c (replace_window): Set root_window instead of - selected_window. This fixes a total window subsystem - malfunction reported by Bastien Guerry . - -2012-08-06 Glenn Morris - - * lisp.mk (lisp): Add language/persian.elc. - -2012-08-06 Dmitry Antipov - - Separate read and write access to Lisp_Object slots of struct frame. - * frame.h (FGET, FSET): New macros similar to AREF and ASET. - * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c: - * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m: - * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h: - * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users. - -2012-08-05 Andreas Schwab - - * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT. - -2012-08-05 Dmitry Antipov - - Generalize common compile-time constants. - * lisp.h (header_size, bool_header_size, word_size): Now here. - (struct Lisp_Vector): Add comment. - (struct Lisp_Bool_Vector): Move up to define handy constants. - (VECSIZE, PSEUDOVECSIZE): Simplify. - (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation. - * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c: - * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c: - * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c: - * xfont.c, xmenu.c: Use word_size where appropriate. - -2012-08-05 Lawrence Mitchell - - * search.c (Freplace_match): Treat \? in the replacement text - literally (Bug#8161). - -2012-08-05 Chong Yidong - - * term.c (Vsuspend_tty_functions, Vresume_tty_functions): - * frame.c (Vdelete_frame_functions): - * emacs.c (Vkill_emacs_hook): Doc fix. - -2012-08-04 Eli Zaretskii - - * xfns.c (x_set_menu_bar_lines): Fix compilation error in - --with-x-toolkit=no builds. - Reported by Carsten Mattner . - -2012-08-04 Chong Yidong - - * syntax.c (Fmodify_syntax_entry): Doc fix. - -2012-08-04 Eli Zaretskii - - Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959) - * w32.c (init_environment): Change the default values of many - environment variables in dflt_envvars[] to NULL, to avoid pushing - them into environment when they were not already defined. - Remove the code that deletes site-lisp subdirectories from the default - value of EMACSLOADPATH, as it is no longer needed. - (check_windows_init_file): Now external, not static. - Use Vload_path as is, without adding anything, as this function is now - called when Vload_path is already set up. - - * w32.h (check_windows_init_file): Add prototype. - - * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build - directory, ignore the /*/i386/ tail in Vinvocation_directory, for - compatibility with Posix platforms. - (main): Move the call to check_windows_init_file to here from - w32.c. - (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if - any, in the DEFALT argument into the root of the Emacs build or - installation tree, as appropriate. - - * callproc.c (init_callproc_1): Call decode_env_path instead of - doing its equivalent by hand. - (init_callproc): Replace DOS_NT condition with MSDOS, thus letting - the code that sets Vexec_path run on MS-Windows. - - * lread.c (init_lread): Add comments to #ifdef's. - - * msdos.c (dos_set_window_size, IT_update_begin) - (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR - instead of direct references. - -2012-08-04 Paul Eggert - - Export DEFAULT_REHASH_* to GDB. - * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE): - Now constants, not macros. - -2012-08-03 Paul Eggert - - Remove unnecessary casts involving pointers. - These casts are no longer needed now that we assume C89 or later, - since they involve casting to or from void *. - * alloc.c (make_pure_string, make_pure_c_string, pure_cons) - (make_pure_float, make_pure_vector): - * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): - * macros.c (Fstart_kbd_macro): - * menu.c (find_and_return_menu_selection): - * minibuf.c (read_minibuf_noninteractive): - * sysdep.c (closedir): - * xdisp.c (x_produce_glyphs): - * xfaces.c (compare_fonts_by_sort_order): - * xfns.c (x_real_positions, select_visual): - * xselect.c (x_stop_queuing_selection_requests) - (x_get_window_property, x_get_window_property_as_lisp_data): - * xterm.c (x_set_frame_alpha, x_find_modifier_meanings): - Remove unnecessary pointer casts. - * alloc.c (record_xmalloc): New function. - * lisp.h (record_xmalloc): New decl. - (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts - more like a function. This is because the pointer cast is not - needed. All uses changed. - * print.c (print_string, print_error_message): Avoid length recalc. - - Improve fix for macroexp crash with debugging (Bug#12118). - * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to - ARRAY_MARK_FLAG when checking subscripts, because ASET is - not supposed to be invoked from the garbage collector. - See Andreas Schwab in . - (gc_aset): New function, which is like ASET but can be - used in the garbage collector. - (set_hash_key, set_hash_value, set_hash_next, set_hash_hash) - (set_hash_index): Use it instead of ASET. - -2012-08-03 Eli Zaretskii - - Support symlinks on latest versions of MS-Windows. - * w32.c: Include winioctl.h and aclapi.h. - (is_symlink, chase_symlinks, enable_privilege, restore_privilege) - (revert_to_self): Forward declarations of static functions. - : - : 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): Rename 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. - -2012-08-02 Paul Eggert - - Fix macroexp crash on Windows with debugging (Bug#12118). - * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when - checking subscripts; problem introduced with the recent - "ASET (a, i, v)" rather than "AREF (a, i) = v" patch. - (ARRAY_MARK_FLAG): Now a macro as well as a constant, - since it's used in non-static inline functions now. - - * xfaces.c (face_at_buffer_position, face_for_overlay_string): - Don't assume buffer size fits in 'int'. Remove unused local. - - Use C99-style 'extern inline' if available. - * buffer.h (BUFFER_INLINE): - * category.h (CATEGORY_INLINE): - * character.h (CHARACTER_INLINE): - * charset.h (CHARSET_INLINE): - * composite.h (COMPOSITE_INLINE): - * dispextern.h (DISPEXTERN_INLINE): - * lisp.h (LISP_INLINE): - * systime.h (SYSTIME_INLINE): - New macro, replacing 'static inline' in this header. - * buffer.h, category.h, character.h, charset.h, composite.h: - * dispextern.h, lisp.h, systime.h: - Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. - * alloc.c (LISP_INLINE): - * buffer.c (BUFFER_INLINE): - * category.c (CATEGORY_INLINE): - * character.c (CHARACTER_INLINE): - * charset.c (CHARSET_INLINE): - * composite.c (COMPOSITE_INLINE): - * dispnew.c (DISPEXTERN_INLINE): - * sysdep.c (SYSTIME_INLINE): - Define to EXTERN_INLINE, so that the corresponding functions - are compiled into code. - * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN) - (INLINE_HEADER_END): New macros. - * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant, - since it's used in non-static inline functions now. - (VALMASK) [!USE_LSB_TAG]: Likewise. - -2012-08-02 Glenn Morris - - * s/: Remove empty directory. - - * s/ms-w32.h: Move to ../nt/inc. - * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H): - Update for new ms-w32.h location. - -2012-08-02 Paul Eggert - - Port to Solaris 8. - * syswait.h (WRETCODE): Remove, consistently with ../configure.ac. - -2012-08-02 Glenn Morris - - * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than - hard-coding the path separator. - -2012-08-01 Paul Eggert - - Use "ASET (a, i, v)" rather than "AREF (a, i) = v". - This how ASET and AREF are supposed to work, and makes - it easier to think about future improvements. See - . - * charset.h (set_charset_attr): New function. - All lvalue-style uses of CHARSET_DECODER etc. changed to use it. - * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style. - (aref_addr): New function. All uses of &AREF(...) changed. - (set_hash_key, set_hash_value, set_hash_next, set_hash_hash) - (set_hash_index): New functions. All lvalue-style uses of - HASH_KEY etc. changed. - * keyboard.c (set_prop): New function. All lvalue-style uses - of PROP changed. - -2012-08-01 Alp Aker - - * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar) - (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:) - (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114) - * nsfns.m (ns_set_name_as_filename): Likewise. - * nsmenu.m (ns_update_menubar): Likewise. - * nsselect.m (symbol_to_nsstring): Adjust to use SVAR. - -2012-08-01 Eli Zaretskii - - * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym): - Adapt to latest changes in field names of the corresponding Lisp - objects. - - * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code. - -2012-08-01 Glenn Morris - - * s/msdos.h: Remove file. - * conf_post.h [MSDOS]: New section, moved from s/msdos.h. - * Makefile.in (S_FILE): Remove. - (config_h): Remove S_FILE. - -2012-08-01 Juanma Barranquero - - * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP): - Remove; moved to nt/config.nt. - -2012-08-01 Dmitry Antipov - - Use INTERNAL_FIELD for conses and overlays. - * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD. - Remove obsolete comment. - (MVAR): New macro. - (struct Lisp_Overlay): Use INTERNAL_FIELD. - * alloc.c, buffer.c, buffer.h, fns.c: Adjust users. - -2012-08-01 Dmitry Antipov - - Use INTERNAL_FIELD for symbols. - * lisp.h (SVAR): New macro. Adjust users. - * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c: - * fns.c, keyboard.c, lread.c, xterm.c: Users changed. - -2012-08-01 Dmitry Antipov - - Use INTERNAL_FIELD for processes. - * process.h (PVAR): New macro. Adjust style. - (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD. - * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed. - -2012-08-01 Dmitry Antipov - - Use INTERNAL_FIELD for windows. - * window.h (WVAR): New macro. - (struct window): Change Lisp_Object members to INTERNAL_FIELD. - * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: - * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: - * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c: - * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c: - * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed. - -2012-08-01 Paul Eggert - - * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work. - -2012-08-01 Glenn Morris - - * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP): - Move to configure.ac. - -2012-08-01 Juanma Barranquero - - * makefile.w32-in (CONFIG_H): Update dependencies. - (CONF_POST_H): New macro. - - * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt. - -2012-07-31 Glenn Morris - - * Makefile.in (S_FILE): No longer set by configure. - - * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT - is available. - (alloca.h) [WINDOWSNT]: Don't include it on MS Windows. - - * process.h (NULL_DEVICE): - * emacs.c (SEPCHAR): - * editfns.c (USER_FULL_NAME): Let configure set them. - - * s/README, s/template.h: Remove files. - - * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT. - - * conf_post.h (AMPERSAND_FULL_NAME, subprocesses): - Move to configure.ac. - -2012-07-31 Eli Zaretskii - - * .gdbinit (xframe): Adapt to introduction of FVAR and the - resulting renaming of 'struct frame' members. - - * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR. - - * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING - after introduction of FVAR. - -2012-07-31 Jan Djärv - - * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id. - - * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect - instead of compositeToPoint. - (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel. - - * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes. - -2012-07-31 Dmitry Antipov - - Generalize INTERNAL_FIELD between buffers, keyboards and frames. - * lisp.h (INTERNAL_FIELD): New macro. - * buffer.h (BUFFER_INTERNAL_FIELD): Remove. - (BVAR): Change to use INTERNAL_FIELD. - * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise. - (KVAR): Change to use INTERNAL_FIELD. - * frame.h (FVAR): New macro. - (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields. - * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c: - * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c: - * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h: - * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed. - -2012-07-31 Dmitry Antipov - - Miscellaneous fixes for non-default X toolkits. - * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings. - * xterm.c (x_frame_of_widget): Remove redundant prototype. - Move under #ifdef USE_LUCID. - (x_create_toolkit_scroll_bar): Adjust scroll_bar_name - definition and usage to avoid warnings. - -2012-07-31 Jan Djärv - - * nsterm.m (openFiles): Fix previous checkin. - -2012-07-31 Paul Eggert - - * indent.c (compute_motion): Remove unused local. - -2012-07-31 Glenn Morris - - * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them. - - * conf_post.h [USG5_4]: - Move remaining contents of s/usg5-4-common.h here. - * s/usg5-4-common.h: Remove file. - - * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here. - * s/irix6-5.h: Remove file. - - * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here. - * s/darwin.h: Remove file. - - * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h. - * s/hpux10-20.h: Remove file, which is now empty. - -2012-07-30 Glenn Morris - - * conf_post.h: New, split from configure.ac's AH_BOTTOM. - * Makefile.in (config_h): Add conf_post.h. - * makefile.w32-in (CONFIG_H): Add conf_post.h. - -2012-07-30 Jan Djärv - - * nsterm.m (ns_do_open_file): New variable. - (ns_term_init): Set ns_do_open_file to YES after run returns. - (openFile, openTempFile, openFileWithoutUI, openFiles): - Open files only if ns_do_open_file. - -2012-07-30 Paul Eggert - - * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed. - This no-op macro hasn't been needed for many years. - * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise. - - Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB. - * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits. - * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for - gdb_make_enums_visible. - (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros. - (DIRECTORY_SEP): Now a constant, not a macro. - -2012-07-30 Eli Zaretskii - - * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to - w32_kbd_patch_key as the 2nd arg. (Bug#12082) - - * w32term.c : Renamed from - keyboard_codepage and now external. All users changed. - - * w32term.h: Add declaration of w32_keyboard_codepage. - - * w32inevt.c (w32_kbd_patch_key): Accept an additional argument -- - the codepage to translate keys to Unicode. If this argument is - -1, use the value returned by GetConsoleCP. All callers changed. - -2012-07-30 Paul Eggert - - Update .PHONY listings in makefiles. - * Makefile.in (.PHONY): Add all, mostlyclean, clean, - bootstrap-clean, distclean, maintainer-clean, versioclean, - extraclean, frc. - - * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t. - This is a bit clearer. Fix some commentary typos. - -2012-07-30 Glenn Morris - - * s/netbsd.h: Let configure include signal.h if needed. - Remove file, which is now empty. - - * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND): - Let configure set them. - * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND): - No more need to undefine. - -2012-07-30 Andreas Schwab - - * keymap.c (Fkey_description): Don't remove 0x80 bit from - non-single-byte char when adding meta modifier. (Bug#12090) - -2012-07-30 Dmitry Antipov - - Convert safe_call to use variable number of arguments. - * xdisp.c (safe_call): Convert to use varargs. Adjust users. - (safe_call2): Fix comment. - * lisp.h (safe_call): Adjust prototype. - * coding.c (encode_coding_object): Change to use safe_call2. - * xfaces.c (merge_face_heights): Change to use safe_call1. - -2012-07-30 Glenn Morris - - * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h - does that unconditionally. Remove file, which is now empty. - - * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h: - Remove empty files. - -2012-07-30 Paul Eggert - - Export to GDB most of lisp.h's remaining object-like macros. - * lisp.h (min, max): Move earlier, because they're used earlier now. - (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK) - (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0) - (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3) - (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE) - (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING) - (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT) - (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS) - (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA): - Now constants, for GDB. They need not be macros. - (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND): - Now constants, for GDB, as well as macros, for static initializers. - (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS): - Move to after the definition of struct Lisp_Char_Table, - since the former now needs that type defined. - (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS) - (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits) - (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA): - New enums, for gdb_make_enums_visible. - (GLYPH_MODE_LINE_FACE): Remove; unused. - * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro. - (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum - CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE, - enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled, - enum maxargs, enum MAX_ALLOCA. - (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove. - (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove; - no longer needed, now that they are done in lisp.h. - -2012-07-30 Dmitry Antipov - - Cleanup string bytes checking. - * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert - all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES. - (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES. - (check_sblock, compact_small_strings): Simplify. - -2012-07-29 Paul Eggert - - * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove. - These macros are confusing and no longer need to be defined, as - the enum values now suffice. All uses replaced with definiens. - (Lisp_Int1, Lisp_String): Define directly; this is clearer. - -2012-07-29 Juanma Barranquero - - * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O)) - ($(BLD)/w32console.$(O)): Update dependencies. - -2012-07-29 Dmitry Antipov - - Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check. - * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long - time. Adjust users. - (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list. - -2012-07-29 Jan Djärv - - * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before - setting sitelisp (Bug#12010). - -2012-07-29 Eli Zaretskii - - * w32heap.h (OS_9X): Rename from OS_WINDOWS_95. - - * w32heap.c (cache_system_info): - * w32.c (sys_rename): - * w32proc.c (find_child_console, sys_kill): All users changed. - -2012-07-29 Paul Eggert - - * alloc.c (Fgarbage_collect): Indent as per usual Emacs style. - -2012-07-29 Eli Zaretskii - - * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h. - -2012-07-29 Dmitry Antipov - - Cleanup statistics calculation in Fgarbage_collect. - * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. - Fix zombies percentage calculation. Simplify elapsed time calculation. - -2012-07-29 Dmitry Antipov - - Generalize marker debugging code under MARKER_DEBUG and use eassert. - * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove. - (gap_left, gap_right, adjust_markers_for_delete, insert_1_both) - (insert_from_string_1, insert_from_gap, insert_from_buffer_1) - (replace_range, replace_range_2, del_range_2): Change to eassert. - * marker.c (byte_char_debug_check): Adjust style. - -2012-07-29 Paul Eggert - - Don't use the abbreviation "win" to refer to Windows (Bug#10421). - * regex.c (MAX_BUF_SIZE): Remove some incorrect and - long-ago-commented-out code that talks about "WIN32". - * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95. - All uses changed. - -2012-07-28 Paul Eggert - - Use Gnulib stdalign module (Bug#9772, Bug#9960). - * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc): - Simplify by using alignof. - (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values. - * lisp.h: Include . - (GCALIGNMENT): New macro and constant. - (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT). - (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN. - (stdalign): New macro, if not already defined. - -2012-07-28 Eli Zaretskii - - Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055) - * w32inevt.c: Include w32inevt.h. - (w32_read_console_input): New inline function, calls either - ReadConsoleInputA or ReadConsoleInputW, depending on the value of - w32_console_unicode_input. - (fill_queue): Call w32_read_console_input instead of ReadConsoleInput. - (w32_kbd_patch_key, key_event): Use the codepage returned by - GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo. - (key_event): use uChar.UnicodeChar only if - w32_console_unicode_input is non-zero. - - * w32console.c: Include w32heap.h. - : New global variable. - (initialize_w32_display): Set w32_console_unicode_input to 1 on NT - family of Windows, zero otherwise. - - * w32inevt.h: Declare w32_console_unicode_input. - - * xdisp.c (init_iterator): Don't reference tip_frame in a build - --without-x. (Bug#11742) - -2012-07-27 Paul Eggert - - Adjust GDB to reflect pvec_type changes (Bug#12036). - * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the - 2012-07-04 changes to pseudovector representation. - Problem reported by Eli Zaretskii in . - -2012-07-27 Michael Albinus - - * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session - bus address. - (xd_close_bus, Fdbus_init_bus): Handle reference counter properly. - -2012-07-27 Eli Zaretskii - - * alloc.c (listn): Fix the order the arguments are consed onto the - list. - - * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for - enumeration constants, as PURE and HEAP are too general, and clash - with other headers and sources, such as gmalloc.c and the - MS-Windows system headers. All users changed. - -2012-07-27 Dmitry Antipov - - Revert last save_excursion_save and save_excursion_restore changes. - * alloc.c, editfns.c, marker.c, lisp.h: Revert. - Lots of crashes reported by Chong Yidong . - -2012-07-27 Dmitry Antipov - - Fix recently-introduced typos in Windows port. - Reported by Martin Rudalics . - * w32.c (init_environment): Replace comma with semicolon. - * w32fns.c (syms_of_w32fns): Add missing parenthesis. - -2012-07-27 Paul Eggert - - Improve GDB symbol export (Bug#12036). - * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different - arms of an 'if', not using conditional expressions; otherwise GDB - complains about the types in the unevaluated arm when the argument - is an integer literal. - (xgetint): Simplify expression. - * alloc.c (gdb_make_enums_visible): New constant. This ports to - GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli - Zaretskii in . - * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer - needed now that we have gdb_make_enums_visible. - (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits) - (enum enum_USE_LSB_TAG): - New enum types, packaging up enums that need to be exported to GDB. - -2012-07-27 Dmitry Antipov - - Utility function to make a list from specified amount of objects. - * lisp.h (enum constype): New datatype. - (listn): New prototype. - * alloc.c (listn): New function. - (Fmemory_use_count, syms_of_alloc): Use it. - * buffer.c (syms_of_buffer): Likewise. - * callint.c (syms_of_callint): Likewise. - * charset.c (define_charset_internal): Likewise. - * coding.c (syms_of_coding): Likewise. - * keymap.c (syms_of_keymap): Likewise. - * search.c (syms_of_search): Likewise. - * syntax.c (syms_of_syntax): Likewise. - * w32.c (init_environment): Likewise. - * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise. - * xdisp.c (syms_of_xdisp): Likewise. - * xfns.c (syms_of_xfns): Likewise. - -2012-07-27 Dmitry Antipov - - Fast save_excursion_save and save_excursion_restore. - * lisp.h (struct Lisp_Excursion): New data type. - (PVEC_EXCURSION): New pseudovector type. - (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros - to deal with it. Adjust comments. - (init_marker, attach_marker): New prototype. - (unchain_marker): Adjust prototype. - * marker.c (attach_marker): Change to global. - (init_marker): New function. - * alloc.c (Fmake_marker, build_marker): Use it. - (build_marker): More easserts. - (mark_object): Handle struct Lisp_Excursion. - * editfns.c (save_excursion_save, save_excursion_restore): - Reimplement to use struct Lisp_Excursion. Add comments. - -2012-07-26 Paul Eggert - - Fix export of symbols to GDB (Bug#12036). - * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL) - (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from - emacs.c, as this is a more-suitable home. Had this been done earlier - the fix for 12036 would have avoided some of the problems noted in - by Eli Zaretskii, as the scope problems - would have been more obvious. - * emacs.c: Do not include ; no longer needed. - (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS) - (gdb_GCTYPEBITS, gdb_USE_LSB_TAG) - (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG): - Remove; now done in lisp.h. - * lisp.h (PUBLISH_TO_GDB): New macro. - (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type) - (DATA_SEG_BITS): Use it. - (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB. - (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB. - * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need - not be usable in #if. This simplifies things. - -2012-07-26 Juanma Barranquero - - * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies. - -2012-07-26 Paul Eggert - - Simplify export of symbols to GDB (Bug#12036). - * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix = - $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway). - (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr): - Adjust to changes in lisp.h and emacs.c, by using - CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead - of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits, - INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of - gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS - instead of gdb_valbits. - (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use - PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG - instead of gdb_array_mark_flag. - (xboolvector): Get size from $->size, not $->header.size. - Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants. - (xreload, hook-run, hookpost-run): Remove. - * emacs.c: Include . - (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits) - (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type): - Remove. - (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS) - (gdb_USE_LSB_TAG): New enum constants. - (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG): - Also define these as enum constants, so they're visible to GDB. - (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros. - (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these - as constants, so they're visible to GDB. - * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS) - (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR): - Now enum constants, not macros, so they're visible to GDB. - (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is - more convenient now. All uses changed. - (VALMASK) [USE_LSB_TAG]: Also define in this case. - * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change. - -2012-07-26 Dmitry Antipov - - Explicitly free restriction data that are not needed anymore. - * editfns.c (save_restriction_restore): Free restriction data. - -2012-07-26 Stefan Monnier - - * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp, - add argument, tune behavior, and adjust all callers. - -2012-07-25 Paul Eggert - - Use typedef for EMACS_INT, EMACS_UINT. - * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather - than macros. This simplifies debugging in the usual case, since - it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *' - and it allows expressions involving EMACS_INT casts. - * .gdbinit (xreload): Simplify by using EMACS_INT cast. - -2012-07-25 Jan Djärv - - * nsterm.m (ns_read_socket): Return early if there is a modal - window (Bug#12043). - -2012-07-25 Martin Rudalics - - * frame.c (Fredirect_frame_focus): In doc-string don't mention - that FOCUS-FRAME can be omitted. - -2012-07-25 Dmitry Antipov - - Adjust buffer text indirection counters at the end of Fkill_buffer. - * buffer.c (Fkill_buffer): Adjust indirection counters when the - buffer is definitely dead. This should really fix an issue reported - by Christoph Scholtes again. (Bug#12007). - (init_buffer_once): Initialize indirection counters of - buffer_defaults and buffer_local_symbols (for sanity and safety). - -2012-07-24 Eli Zaretskii - - * xdisp.c (init_iterator): Don't compute dimensions of truncation - and continuation glyphs on tooltip frames, leave them at zero. - Avoids continued lines in tooltips. (Bug#11832) - -2012-07-24 Dmitry Antipov - - Simplify copy_overlay. - * buffer.c (copy_overlay): Simplify. Use build_marker. - * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks. - -2012-07-23 Eli Zaretskii - - * print.c (print_object): Don't crash when a frame's name is nil - or invalid. (Bug#12025) - - * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as - it signals an error when a tooltip frame is being created. - -2012-07-23 Dmitry Antipov - - Cleanup miscellaneous objects allocation and initialization. - * alloc.c (allocate_misc): Change to static. Add argument to - specify the subtype. Adjust comment and users. - (build_overlay): New function. - * buffer.c (copy_overlays, Fmake_overlay): Use it. - * lisp.h (struct Lisp_Overlay): Remove obsolete comment. - (allocate_misc): Remove prototype. - (build_overlay): Add prototype. - -2012-07-23 Dmitry Antipov - - Swap buffer text indirection counters in Fbuffer_swap_text. - * buffer.c (Fbuffer_swap_text): Swap indirections too. - This avoids crash reported by Christoph Scholtes at - http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html. - -2012-07-22 Jan Djärv - - * nsmenu.m (Popdown_data): New struct. - (pop_down_menu): p->pointer is Popdown_data. Release the pool and - free Popdown_data. - (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu. - (initWithContentRect): Make imgView and contentView non-static - and autorelease them. Also autorelease img and matrix (Bug#12005). - (dealloc): Remove (Bug#12005). - -2012-07-22 Dmitry Antipov - - Adjust consing_since_gc when objects are explicitly freed. - * alloc.c (GC_DEFAULT_THRESHOLD): New macro. - (Fgarbage_collect): Use it. Change minimum to 1/10 of default. - (free_cons, free_misc): Subtract object size from consing_since_gc. - -2012-07-22 Dmitry Antipov - - Simplify and cleanup markers positioning code. - * marker.c (attach_marker): More useful eassert. - (live_buffer, set_marker_internal): New function. - (Fset_marker, set_marker_restricted): Use set_marker_internal. - (set_marker_both, set_marker_restricted_both): Use live_buffer. - -2012-07-22 Paul Eggert - - * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int, - as it's limited by the amount of memory, not by INT_MAX. - -2012-07-21 Eli Zaretskii - - * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore' - in special-event-map. See the discussion at - http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html - for the reasons. - - * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning - info.dwItemData. Fixes crashes on 64-bit Windows. - Suggested by Fabrice Popineau . - -2012-07-21 Jan Djärv - - * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134). - (conversationIdentifier): Return value is NSInteger. - * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA. - -2012-07-21 Chong Yidong - - * window.c (decode_any_window): Signal an error if the window is - on a dead frame (Bug#11984). - -2012-07-20 Dmitry Antipov - - Add indirection counting to speed up Fkill_buffer. - * buffer.h (struct buffer): New member. - * buffer.c (Fget_buffer_create): Set indirection counter to 0. - (Fmake_indirect_buffer): Set indirection counter to -1, increment - base buffer indirection counter. - (compact_buffer): If ENABLE_CHECKING, verify indirection counters. - (Fkill_buffer): Adjust indirection counters as needed, don't walk - through buffer list if indirection counter is 0. - -2012-07-20 Dmitry Antipov - - Extend the value returned by Fgarbage_collect with heap statistics. - * alloc.c (Qheap): New symbol. - (syms_of_alloc): DEFSYM it. - (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data. - (Fmemory_free): Remove. - (syms_of_alloc): Don't defsubr it. - * buffer.c (Fcompact_buffer): Remove. - (syms_of_buffer): Don't defsubr it. - -2012-07-20 Dmitry Antipov - - Make maybe_gc inline. - Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline). - * lisp.h (consing_since_gc, gc_relative_threshold) - (memory_full_cons_threshold): Revert declaration. - (maybe_gc): Remove prototype, define as inline. - * alloc.c: Remove old commented-out code. - (consing_since_gc, gc_relative_threshold) - (memory_full_cons_threshold): Revert to global. - (maybe_gc): Remove. - -2012-07-20 Dmitry Antipov - - Simple wrapper for make_unibyte_string, adjust font_open_by_name. - * lisp.h (build_unibyte_string): New function. - * dosfns.c, fileio.c, fns.c, ftfont.c, process.c: - * sysdep.c, w32fns.c, xfns.c: Use it. - * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg - of type Lisp_Object to avoid redundant calls to make_unibyte_string. - Adjust users accordingly. - * font.h (font_open_by_name): Adjust prototype. - -2012-07-20 Dmitry Antipov - - Cleanup calls to Fgarbage_collect. - * lisp.h (maybe_gc): New prototype. - (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold): - Remove declarations. - * alloc.c (maybe_gc): New function. - (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold): - Make them static. - * bytecode.c (MAYBE_GC): Use maybe_gc. - * eval.c (eval_sub, Ffuncall): Likewise. - * keyboard.c (read_char): Likewise. Adjust call to maybe_gc - to avoid dependency from auto-save feature. - -2012-07-19 Paul Eggert - - * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'. - (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from - 'for_each_per_buffer_object_at'. - All uses changed. It's better to use upper-case for macros that - cannot be implemented as functions, to give the reader a clue - that they're special. - -2012-07-19 Stefan Monnier - - * alloc.c (Fgarbage_collect): Tweak docstring. - -2012-07-19 Dmitry Antipov - - Tweak the value returned from Fgarbage_collect again. - * alloc.c (Fgarbage_collect): New return value, as confirmed in - http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html. - Adjust documentation. - (total_vector_bytes): Rename to total_vector_slots, adjust - accounting. - (total_free_vector_bytes): Rename to total_free_vector_slots, - adjust accounting. - (Qstring_bytes, Qvector_slots): New symbols. - (syms_of_alloc): DEFSYM them. - -2012-07-19 Dmitry Antipov - - Buffer compaction primitive which may be used from Lisp. - * buffer.c (compact_buffer, Fcompact_buffer): New function. - (syms_of_buffer): Register Fcompact_buffer. - * alloc.c (Fgarbage_collect): Use compact_buffer. - * buffer.h (compact_buffer): New prototype. - (struct buffer_text): New member. - -2012-07-19 Dmitry Antipov - - New macro to iterate over all buffers, miscellaneous cleanups. - * lisp.h (all_buffers): Remove declaration. - * buffer.h (all_buffers): Add declaration, with comment. - (for_each_buffer): New macro. - * alloc.c (Fgarbage_collect, mark_object): Use it. - * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte) - (init_buffer): Likewise. - * data.c (Fset_default): Likewise. - * coding.c (code_conversion_restore): Remove redundant check - for dead buffer. - * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment. - -2012-07-18 Andreas Schwab - - Fix bug that created negative-length intervals. - * intervals.c (merge_interval_right, merge_interval_left): - Do not zero out this interval if it is absorbed by its children, - as this interval's total length doesn't change in that case. See - . - -2012-07-18 Paul Eggert - - * alloc.c (Fmake_bool_vector): Fix off-by-8 bug - when invoking (make-bool-vector N t) and N is a positive - multiple of 8 -- the last 8 bits were mistakenly cleared. - - Remove some struct layout assumptions in bool vectors. - * alloc.c (bool_header_size): New constant. - (header_size, word_size): Move earlier, as they're now used earlier. - Use 'word_size' in a few more places, where it's appropriate. - (Fmake_bool_vector, sweep_vectors): Don't assume that there is no - padding before the data member of a bool vector. - (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather - than doing the check by hand with an abort (). - -2012-07-18 Stefan Monnier - - * eval.c (Fdefvar): Don't check constants since we only set the var if - it's not yet defined anyway (bug#11904). - - * lisp.h (last_undo_boundary): Declare new var. - * keyboard.c (command_loop_1): Set it. - * cmds.c (Fself_insert_command): Use it to only remove boundaries that - were auto-added by the command loop (bug#11774). - -2012-07-18 Andreas Schwab - - * w32font.c (Qsymbol): Remove local definition. - (syms_of_w32font): Don't DEFSYM it. - -2012-07-18 Dmitry Antipov - - Fix sweep_vectors to handle large bool vectors correctly. - * alloc.c (sweep_vectors): Account total_vector_bytes for - bool vectors larger than VBLOCK_BYTES_MAX. - -2012-07-18 Chong Yidong - - * frame.c (x_set_frame_parameters): Revert bogus change introduced - in 2012-05-25 commit by Paul Eggert (Bug#11738). - -2012-07-18 Dmitry Antipov - - Return more descriptive data from Fgarbage_collect. - Suggested by Stefan Monnier in - http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html. - * alloc.c (bounded_number): New function. - (total_buffers, total_vectors): New variable. - (total_string_size): Rename to total_string_bytes, adjust users. - (total_vector_size): Rename to total_vector_bytes, adjust users. - (sweep_vectors): Account total_vectors and total_vector_bytes. - (Fgarbage_collect): New return value. Adjust documentation. - (gc_sweep): Account total_buffers. - (Fmemory_free, Fmemory_use_counts): Use bounded_number. - (VECTOR_SIZE): Remove. - * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global. - (Qinterval, Qmisc): New symbols. - (syms_of_data): Initialize them. - * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat) - (Qcons, Qbuffer): New declarations. - -2012-07-17 Paul Eggert - - * alloc.c (Fmemory_free): Account for memory-free's own storage. - Round up, not down. Improve doc. - -2012-07-17 Dmitry Antipov - - Restore old code in allocate_string_data to avoid Faset breakage. - Reported by Julien Danjou in - http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html. - * alloc.c (allocate_string_data): Restore old code with minor - adjustments, fix comment to explain this subtle issue. - -2012-07-17 Eli Zaretskii - - Remove FILE_SYSTEM_CASE. - * s/msdos.h (FILE_SYSTEM_CASE): Don't define. - - * fileio.c (FILE_SYSTEM_CASE): Don't define. - (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE. - Fixes problems on MS-DOS with Vtemp_file_name_pattern when - call-process-region passes it through expand-file-name. - - * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE. - -2012-07-17 Andreas Schwab - - Fix crash when creating indirect buffer (Bug#11917) - * buffer.c (buffer_lisp_local_variables): Add argument CLONE. - Don't handle unbound variables specially if non-zero. - (Fbuffer_local_variables): Pass zero. - (clone_per_buffer_values): Pass non-zero. - -2012-07-17 Andreas Schwab - - * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT - to make the loop interruptible. - -2012-07-17 Andreas Schwab - - * gnutls.c (emacs_gnutls_handshake): Only retry if - GNUTLS_E_INTERRUPTED. - -2012-07-17 Dmitry Antipov - - Cleanup and convert miscellaneous checks to eassert. - * alloc.c (mark_interval): Fix comment, partially rephrase - old comment from intervals.h (see below). - * intervals.c (find_interval, adjust_intervals_for_insertion) - (delete_interval, adjust_intervals_for_deletion) - (graft_intervals_into_buffer, temp_set_point_both, copy_intervals): - Convert to eassert. - (adjust_intervals_for_insertion, make_new_interval): - Remove obsolete and unused code. - * intervals.h (struct interval): Remove obsolete comment. - * textprotp.c (erase_properties): Remove unused code. - (Fadd_text_properties, set_text_properties_1, Fremove_text_properties) - (Fremove_list_of_text_properties): Convert to eassert. - -2012-07-17 Chong Yidong - - * editfns.c (Finsert_char): Doc fix. - -2012-07-17 Dmitry Antipov - - Fix previous change to make Fmemory_free always accurate. - * alloc.c (make_interval): Update total_free_intervals. - (make_float): Likewise for total_free_floats. - (free_cons, Fcons): Likewise for total_free_conses. - (SETUP_ON_FREE_LIST, allocate_vector_from_block): - Likewise for total_free_vector_bytes. - (Fmake_symbol): Likewise for total_free_symbols. - (bytes_free): Remove. - -2012-07-17 Dmitry Antipov - - Simple free memory accounting feature. - * alloc.c (bytes_free, total_free_vector_bytes): New variable. - (sweep_vectors): Accumulate size of free vectors. - (Fgarbage_collect): Setup bytes_free. - (Fmemory_free): New function. - (syms_of_alloc): Register it. - -2012-07-17 Dmitry Antipov - - Cleanup overlays checking. - * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP. - * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to - eassert and OVERLAYP. - (sort_overlays): Change to use OVERLAYP. - -2012-07-16 René Kyllingstad (tiny change) - - * editfns.c (Finsert_char): Make it interactive, and make the - second arg optional. Copy interactive spec and docstring from - ucs-insert. - -2012-07-17 Paul Eggert - - * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913). - Unlike the other wrapped functions, fabs has an unspecified - effect on errno. - -2012-07-16 Jan Djärv - - * nsterm.m (keyDown): Interpret flags without left/right bits - as the left key (Bug#11670). - -2012-07-16 Dmitry Antipov - - Remove empty and useless init functions. - * lisp.h (init_character_once, init_fns, init_image) - (init_filelock, init_sound): Remove prototype. - * character.c (init_character_once): Remove. - * filelock.c (init_filelock): Likewise. - * fns.c (init_fns): Likewise. - * image.c (init_image): Likewise. - * sound.c (init_sound): Likewise. - * emacs.c (main): Adjust accordingly. - -2012-07-16 Dmitry Antipov - - * gtkutil.h: Tiny cleanups. - (use_old_gtk_file_dialog): Remove useless declaration. - (xg_uses_old_file_dialog): Add suggested const attribute. - -2012-07-15 Eli Zaretskii - - * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro. - (bidi_paragraph_init): Use it to limit search forward for a strong - directional character in abnormally large paragraphs full of - neutral or weak characters. (Bug#11943) - -2012-07-15 Stefano Facchini (tiny change) - - * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to - the toolbar (Bug#9451). - (xg_make_tool_item): Give the widget event box a transparent - background. - -2012-07-15 Dmitry Antipov - - Cleanup basic allocation variables and functions. - * alloc.c (ignore_warnings, init_intervals, init_float) - (init_cons, init_symbol, init_marker): Remove. - (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE. - (float_block_index): Initialize to FLOAT_BLOCK_SIZE. - (cons_block_index): Initialize to CONS_BLOCK_SIZE. - (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE. - (marker_block_index): Initialize to MARKER_BLOCK_SIZE. - (staticidx, init_alloc_once, init_strings, free_ablock): - Remove redundant initialization. - * fns.c (init_weak_hash_tables): Remove. - * lisp.h (init_weak_hash_tables): Remove prototype. - -2012-07-15 Dmitry Antipov - - Use zero_vector where appropriate. - * alloc.c (zero_vector): Define as Lisp_Object. Adjust users - accordingly. - * lisp.h (zero_vector): New declaration. - * font.c (null_vector): Remove. - (syms_of_font): Remove initialization and staticpro. - (font_list_entities, font_find_for_lface): Change to use zero_vector. - * keymap.c (Faccessible_keymaps): Likewise. - -2012-07-15 Leo Liu - - * fringe.c: Fix typo in comments. - -2012-07-14 Leo Liu - - * fringe.c: Add a new bitmap exclamation-mark. - -2012-07-14 Eli Zaretskii - - * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference. - - * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE) - (HAVE_MENUS): Don't define, defined by editing config.in with - msdos/sed2v2.inp. - (GMALLOC_INHIBIT_VALLOC): Don't define. - (MODE_LINE_BINARY_TEXT): Remove, not used anymore. - -2012-07-14 Juanma Barranquero - - * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt. - -2012-07-14 Glenn Morris - - * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h: - * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h: - Let configure set GC_SETJMP_WORKS, GC_MARK_STACK. - -2012-07-13 Glenn Morris - - * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it. - - * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it. - * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it. - -2012-07-13 Jan Djärv - - * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP. - (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE. - (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init) - (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA - where appropriate. - (ns_exec_path, ns_load_path, changeFont): Put () around assignment used - as boolean expression. - (x_set_window_size): Remove unused variable toolbar. - (ns_get_color_default, ns_mod_to_lisp): Remove. - (ns_mouse_position): Remove unused variables xchar and ychar. - (ns_compute_glyph_string_overhangs): Remove unused variable face. - (ns_set_vertical_scroll_bar): Remove unused variable count. - (ns_delete_terminal): Remove unused variable i. - (ns_term_init): Remove unused variables r, g and b. - (mouseDown): Remove unused variable window. - (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP. - (initFrameFromEmacs): Remove unused variable vbextra. - (mouseEntered): Remove unused variables p and dpyinfo. - (mouseExited): Remove unused variables p and r. - (ns_define_frame_cursor, ns_clear_frame_area) - (ns_draw_window_cursor, ns_initialize_display_info): Make static. - (menuDown): Assign [sender tag] to variable and cast the variable. - - * nsterm.h (menuDown): Add id as type to argument sender. - (ns_display_info_for_name): Add Lisp_Object argument. - (ns_term_init): Add Lisp_Object argument. - (ns_map_event_to_object): Add void argument. - (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct - prototype with arguments and only declare if __OBJC__. - (nxatoms_of_nsselect): Add void argument. - (ns_lisp_to_cursor_type): Add Lisp_Object argument. - (ns_alloc_autorelease_pool): Add void argument. - (ns_release_autorelease_pool): Add void* argument. - (ns_get_defaults_value): Add const char* argument. - - * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog) - (initFromContents): Use SSDATA where appropriate. - (ns_update_menubar): Add braces to ambigous if-else. - (initWithTitle): Put () around assignment in if statement. - (ns_menu_show): Remove unused variables window and keymap. - (update_frame_tool_bar): Remove unused variable selected_p. - (initWithContentRect): Remove unused variable this_cmd_name. - - * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where - appropriate. - (setXBMColor): Remove unused variable len. - (setPixmapData): Put () around assignment in loop statement. - - * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script) - (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA - where appropriate. - (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put () - around assignment in loop statement. - (nsfont_open): Remove unused variable i. - (nsfont_open): Remove unused variable len. - (nsfont_draw): Remove unused variable cs. - - * nsfns.m (x_set_icon_name, ns_set_name_internal) - (ns_set_name_as_filename, ns_implicitly_set_icon_type) - (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name) - (Fns_get_resource, Fns_set_resource, Fx_open_connection) - (Fns_font_name, Fns_perform_service) - (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript) - (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate. - (ns_set_name): Remove unused variable view. - (x_set_menu_bar_lines): Remove unused variable olines. - (x_set_tool_bar_lines): Remove unused variable root_window. - (Fns_list_colors): Put () around assignment in while statement. - (Fns_perform_service): Remove unused variable len. - (Fns_display_usable_bounds): Remove unused variable top. - (syms_of_nsfns): Remove unused variable i. - - * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to - memcpy (Bug#11907). - -2012-07-13 Kalle Kankare (tiny change) - - * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo - and free it with DestroyExceptionInfo (Bug#11558). - -2012-07-13 Juanma Barranquero - - * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt. - (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT): - Set here, not in nt/config.nt. - -2012-07-13 Eli Zaretskii - - * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow - cursor overflow into the last glyph on display line when the right - fringe is off. (Bug#11832) - -2012-07-13 Paul Eggert - - * xdisp.c (produce_special_glyphs): Now static. - * dispextern.h (produce_special_glyphs): Remove decl. - -2012-07-13 Glenn Morris - - * s/bsd-common.h, s/cygwin.h: Remove empty files. - * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h. - - * s/usg5-4-common.h (USG, USG5): - * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM): - * s/sol2-6.h (SOLARIS2): - * s/irix6-5.h (IRIX6_5): - * s/hpux10-20.h (USG, USG5, HPUX): - * s/gnu-linux.h (USG, GNU_LINUX): - * s/freebsd.h (BSD_SYSTEM): - * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS): - * s/cygwin.h (CYGWIN): - * s/bsd-common.h (BSD_SYSTEM, BSD4_2): - * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure. - -2012-07-13 BT Templeton (tiny change) - - * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853). - -2012-07-13 Glenn Morris - - * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it. - - * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE. - - * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION. - * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro. - -2012-07-12 Glenn Morris - - * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure. - - * process.c (init_process_emacs): Rename from init_process. - The old name is also the name of a Mach system call. - * lisp.h, emacs.c: Update for this name change. - * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no - longer needed. - -2012-07-12 Eli Zaretskii - - * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in - memmove call that removes glyphs covered by the left truncation - glyph. Improve commentary. - (display_line): Fix display of continuation glyphs on GUI frames - when the right fringe is turned off and variable-size fonts are - used in the window. Move the code that appends a stretch glyph to - produce_special_glyphs, so that it could be used for truncation - and continuation glyphs alike. - (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch - glyph of a suitably computed width, to align the special glyphs at - the window margin. Code moved from display_line. (Bug#11832) - -2012-07-12 Glenn Morris - - * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES. - - * s/gnu-linux.h, s/hpux10-20.h: - Do not unconditionally define HAVE_XRMSETDATABASE. - - * s/gnu-linux.h (UNIX98_PTYS): Let configure set it. - -2012-07-12 Paul Eggert - - Fix typos that broke OS X build. - Reported by Randal L. Schwartz in - . - * nsterm.m (ns_timeout): Add missing local decl. - (ns_get_color): snprintf -> sprintf, to fix typo. - -2012-07-12 Glenn Morris - - * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h: - * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h: - * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h: - Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure. - - * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h: - Move PTY_OPEN to configure. - - * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: - * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h: - * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure. - -2012-07-12 Dmitry Antipov - - Use empty_unibyte_string where applicable. - * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string. - * lread.c (read1): Likewise. - * xsettings.c (syms_of_xsettings): Likewise. - -2012-07-12 Glenn Morris - - * s/cygwin.h (G_SLICE_ALWAYS_MALLOC): - * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): - * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP): - * s/hpux10-20.h (RUN_TIME_REMAP): - * s/bsd-common.h (TABDLY): Move to configure. - - * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure. - - * s/bsd-common.h, s/darwin.h: Move TAB3 to configure. - - * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY) - (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them. - - * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them. - - * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h: - * s/template.h: Move NARROWPROTO to configure. - -2012-07-11 Glenn Morris - - * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX, - unused since 2011-01-17 change to systty.h. - - * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h: - * s/hpux10-20.h, s/template.h, s/usg5-4-common.h: - Move HAVE_PTYS and HAVE_SOCKETS to configure. - -2012-07-11 Paul Eggert - - * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914) - -2012-07-11 Glenn Morris - - * s/darwin.h, s/gnu-linux.h, s/template.h: - Move INTERRUPT_INPUT to configure. - -2012-07-11 Dmitry Antipov - - Minor adjustments to interning code. - * lisp.h (intern, intern_c_string): Redefine as static inline - wrappers for intern_1 and intern_c_string_1, respectively. - (intern_1, intern_c_string_1): Rename prototypes. - * lread.c (intern_1, intern_c_string_1, oblookup): - Simplify Vobarray checking. - * font.c (font_intern_prop): Likewise. Adjust comment. - * w32font.c (intern_font_name): Likewise. - -2012-07-11 Andreas Schwab - - * gnutls.c (Fgnutls_boot): Properly parse :keylist argument. - - * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead - of Fcar/Fcdr if possible. - * font.c (check_otf_features): Likewise. - * fontset.c (Fnew_fontset): Likewise. - * gnutls.c (Fgnutls_boot): Likewise. - * minibuf.c (read_minibuf): Likewise. - * msdos.c (IT_set_frame_parameters): Likewise. - * xmenu.c (Fx_popup_dialog): Likewise. - * w32menu.c (Fx_popup_dialog): Likewise. - -2012-07-11 Glenn Morris - - * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT, - since nothing has defined it on these platforms. - - * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h: - * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure. - - * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: - * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h: - Move CLASH_DETECTION to configure. - - * s/gnu.h: Remove file, which is now empty. - - * s/gnu.h, s/gnu-linux.h: - Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure. - -2012-07-11 John Wiegley - - * alloc.c (mark_memory): Guard the "no_address_safety_analysis" - function attribute, so we only use it if it exists in the - compiler. - -2012-07-11 Dmitry Antipov - - Avoid call to strlen in fast_c_string_match_ignore_case. - * search.c (fast_c_string_match_ignore_case): Change to use - length argument. Adjust users accordingly. - * lisp.h (fast_c_string_match_ignore_case): Adjust prototype. - -2012-07-11 Paul Eggert - - Assume mkdir, rmdir. - * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove. - * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove. - - Assume rename. - * sysdep.c (rename) [!HAVE_RENAME]: Remove. - - Assume perror. - * s/hpux10-20.h (HAVE_PERROR): Remove. - * sysdep.c (perror) [HPUX && !HAVE_PERROR]: - Remove dummy definition, as this problem was obsolete long ago. - - Assume strerror. - * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove. - -2012-07-11 Dmitry Antipov - - Avoid calls to strlen in font processing functions. - * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname) - (font_open_by_name): Change to use length argument. - Adjust users accordingly. - * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd): - Adjust prototypes. - * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd): - Change to return ptrdiff_t. - (xfont_list_pattern, xfont_match): Use length returned by - xfont_decode_coding_xlfd. - * xfns.c (x_default_font_parameter): Omit useless xstrdup. - -2012-07-11 Glenn Morris - - * s/darwin.h, s/freebsd.h, s/netbsd.h: - Move DONT_REOPEN_PTY to configure. - - * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]: - * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it. - -2012-07-10 Paul Eggert - - Remove "#define unix" that is no longer needed (Bug#11905). - * s/aix4-2.h (unix): Remove; no longer needed. - - EMACS_TIME simplification (Bug#11875). - This replaces macros (which typically do not work in GDB) - with functions, typedefs and enums, making the code easier to debug. - The functional style also makes code easier to read and maintain. - * systime.h: Include on all hosts, not just if - WINDOWSNT, since 'struct timeval' is needed in general. - (EMACS_TIME): Now a typedef, not a macro. - (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants, - not macros. - (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P) - (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ) - (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT) - (EMACS_TIME_LE): Now functions, not macros. - (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS) - (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros, - which are not functions. All uses rewritten to use: - (make_emacs_time): New function. - (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME) - (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are - not functions. All uses rewritten to use the following, respectively: - (emacs_secs_addr, invalid_emacs_time, get_emacs_time) - (add_emacs_time, sub_emacs_time): New functions. - * atimer.c: Don't include , as "systime.h" does this. - * fileio.c (Fcopy_file): - * xterm.c (XTflash): Get the current time closer to when it's used. - * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies. - - * bytecode.c (targets): Suppress -Woverride-init warnings. - - Simplify by avoiding confusing use of strncpy etc. - * doc.c (Fsnarf_documentation): - * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name): - * frame.c (Fmake_terminal_frame): - * gtkutil.c (get_utf8_string): - * lread.c (openp): - * nsmenu.m (ns_update_menubar): - * regex.c (regerror): - Prefer memcpy to strncpy and strncat when either will do. - * fileio.c (Fsubstitute_in_file_name): - * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached) - (menu_separator_name_p): - * nsmenu.m (ns_update_menubar): - Prefer memcmp to strncmp when either will do. - * nsterm.m: Include . - (ns_get_color): - * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): - Prefer snprintf to strncpy. - * nsterm.m (ns_term_init): - * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy. - * nsterm.m (ns_term_init): - Avoid the need for strncpy, by using build_string or - make_unibyte_string directly. Use dtoastr, not snprintf. - * process.c (Fmake_network_process): Diagnose service names that - are too long, rather than silently truncating them or creating - non-null-terminated names. - (Fnetwork_interface_info): Likewise, for interface names. - * sysdep.c (system_process_attributes) [GNU_LINUX]: - Prefer sprintf to strncat. - * xdisp.c (debug_method_add) [GLYPH_DEBUG]: - Prefer vsnprintf to vsprintf + strncpy. - -2012-07-10 Glenn Morris - - * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]: - Clarify fallback case. - -2012-07-10 Dmitry Antipov - - Use XCAR and XCDR instead of Fcar and Fcdr where possible. - * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c, - * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c, - * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR - where argument type is known to be a Lisp_Cons. - -2012-07-10 Tom Tromey - - * bytecode.c (BYTE_CODE_THREADED): New macro. - (BYTE_CODES): New macro. Replaces all old byte-code defines. - (enum byte_code_op): New type. - (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros. - (exec_byte_code): Use them. Use token threading when applicable. - -2012-07-10 Dmitry Antipov - - Optimize pure C strings initialization. - * lisp.h (make_pure_string): Fix prototype. - (build_pure_c_string): New function, defined as static inline. This - provides a better opportunity to optimize away calls to strlen when - the function is called with compile-time constant argument. - * alloc.c (make_pure_c_string): Fix comment. Change to add nchars - argument, adjust users accordingly. Use build_pure_c_string where - appropriate. - * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c, - * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c, - * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate. - -2012-07-10 Dmitry Antipov - - Avoid calls to strlen in miscellaneous functions. - * buffer.c (init_buffer): Use precalculated len, adjust if needed. - * font.c (Ffont_xlfd_name): Likewise. Change to call make_string. - * lread.c (openp): Likewise. - -2012-07-10 Dmitry Antipov - - Avoid calls to strlen in path processing functions. - * fileio.c (file_name_as_directory): Add comment. Change to add - srclen argument and return the length of result. Adjust users - accordingly. - (directory_file_name): Fix comment. Change to add srclen argument, - swap 1st and 2nd arguments to obey the common convention. - Adjust users accordingly. - * filelock.c (fill_in_lock_file_name): Avoid calls to strlen. - -2012-07-10 Glenn Morris - - * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h: - Move PENDING_OUTPUT_COUNT definition to configure. - - * s/irix6-5.h (DATA_START, DATA_SEG_BITS): - * s/hpux10-20.h (DATA_SEG_BITS, DATA_START): - * s/gnu.h (DATA_START): Move definitions to configure. - - * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards. - We include usg5-4-common.h, which defines them both. - - * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses - O_RDONLY already includes it). - - Stop ns builds setting the EMACSLOADPATH environment variable. - * nsterm.m (ns_load_path): Rename from ns_init_paths. - Now it does not set EMACSLOADPATH, just returns the load-path string. - * nsterm.h: Update accordingly. - * lread.c [HAVE_NS]: Include nsterm.h. - (init_lread) [HAVE_NS]: Use ns_load_path. - * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths. - -2012-07-09 Glenn Morris - - * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here, - since the included bsd-common.h does so. - - Stop ns builds setting the EMACSPATH environment variable. - * nsterm.m (ns_exec_path): New function, split from ns_init_paths. - (ns_init_paths): Do not set EMACSPATH. - * nsterm.h (ns_exec_path): Add it. - * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]: - Use ns_exec_path. - - * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return. - -2012-07-09 Paul Eggert - - * process.c (wait_reading_process_output): 'waitchannels' was unset - when read_kbd || !NILP (wait_for_cell); fix this. - - Add GCC-style 'const' attribute to functions that can use it. - * character.h (char_resolve_modifier_mask): - * keyboard.h (make_ctrl_char): - * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe) - (init_character_once, next_almost_prime, init_fns, init_image) - (flush_pending_output, init_sound): - * mem-limits.h (start_of_data): - * menu.h (finish_menu_items): - Add ATTRIBUTE_CONST. - * emacs.c (DEFINE_DUMMY_FUNCTION): - Declare the dummy function with ATTRIBUTE_CONST. - * lisp.h (Fbyteorder, Fmax_char, Fidentity): - Add decls with ATTRIBUTE_CONST. - - Minor improvements to make_formatted_string. - * alloc.c (make_formatted_string): Prefer int to ptrdiff_t - where int is good enough, as vsprintf returns an int. - * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF. - -2012-07-09 Dmitry Antipov - - Use make_formatted_string to avoid double length calculation. - * lisp.h (make_formatted_string): New prototype. - * alloc.c (make_formatted_string): New function. - * buffer.c (Fgenerate_new_buffer_name): Use it. - * dbusbind.c (syms_of_dbusbind): Likewise. - * editfns.c (Fcurrent_time_zone): Likewise. - * filelock.c (get_boot_time): Likewise. - * frame.c (make_terminal_frame, set_term_frame_name) - (x_report_frame_params): Likewise. - * image.c (gs_load): Likewise. - * minibuf.c (get_minibuffer): Likewise. - * msdos.c (dos_set_window_size): Likewise. - * process.c (make_process): Likewise. - * xdisp.c (ensure_echo_area_buffers): Likewise. - * xsettings.c (apply_xft_settings): Likewise. - -2012-07-09 Glenn Morris - - Stop ns builds polluting the environment with EMACSDATA, EMACSDOC. - * nsterm.m (ns_etc_directory): New function, split from ns_init_paths. - (ns_init_paths): Do not set EMACSDATA, EMACSDOC. - * nsterm.h (ns_etc_directory): Add it. - * callproc.c [HAVE_NS]: Include nsterm.h. - (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory. - -2012-07-09 Dmitry Antipov - - Move marker debugging code under MARKER_DEBUG. - * marker.c (MARKER_DEBUG): Move marker debugging code under - #ifdef MARKER_DEBUG because byte_char_debug_check is too slow - for bootstrap with --enable-checking (~3x slowdown reported - by Juanma Barranquero ). - (verify_bytepos): Move under #ifdef MARKER_DEBUG. - -2012-07-08 Paul Eggert - - * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t. - See . - -2012-07-08 Eli Zaretskii - - * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph - has no font, use the frame's font. (Bug#11813) - (display_line): Add commentary about displaying truncation glyphs - on GUI frames. - (produce_special_glyphs): Move here from term.c. - - * term.c (produce_special_glyphs): Move to xdisp.c. - - * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c - section. - -2012-07-07 Andreas Schwab - - * xdisp.c (display_line): Avoid warning about implicit declaration - of FRAME_FONT. - - * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM. - - * lisp.h: Remove empty conditional. - -2012-07-07 Paul Eggert - - * lread.c (load_path_check): Now static. - - Fix some minor --with-ns problems found by static checking. - * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]: - (x_set_font) [!HAVE_X_WINDOWS]: - * image.c (xpm_load_image) [HAVE_NS]: - (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]: - (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]: - Remove unused local. - (Fx_parse_geometry) [HAVE_NS]: Don't return garbage. - (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label. - * image.c (x_create_bitmap_from_file) [HAVE_NS]: - (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]: - * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal): - * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]: - Fix pointer signedness problem. - * xfaces.c (FRAME_X_FONT_TABLE): - * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros. - -2012-07-07 Glenn Morris - - * lread.c (load_path_check): New function, split from init_lread. - (init_lread): Reorganize. Motivation: - If EMACSLOADPATH is set, check/warn about that rather than the - defaults, which we are not going to use. Hence we can remove - the turn_off_warning and WINDOWSNT || HAVE_NS tests. - Don't warn if site-lisp directories are missing. - If not installed, start from a blank load-path, since - PATH_LOADSEARCH refers to the eventual installation directories. - -2012-07-07 Eli Zaretskii - - Support truncation and continuation glyphs on GUI frames, when - fringes are disabled. (Bug#11832) - * xdisp.c (init_iterator): Get dimensions of truncation and - continuation glyphs even if on GUI frames. - Adjust it->last_visible_x on GUI frames when the left or right fringes, - or both, are absent. - (start_display, move_it_in_display_line_to): Handle the case of a - GUI frame without a fringe to display continuation or truncation - glyphs. - (insert_left_trunc_glyphs): Support GUI frames: make sure - truncation glyphs overwrite enough glyphs from the current line to - have sufficient space in pixels. - (display_line): Support truncation and continuation glyphs on GUI - frames. If some spare pixels are left on the line after inserting - the truncation glyphs, fill that space with a stretch glyph of a - suitably computed width. - - * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not - produce_glyphs, to support GUI sessions. - -2012-07-07 Paul Eggert - - * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781). - - * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797). - - Do not require float-time's arg to fit in time_t (Bug#11825). - This works better on hosts where time_t is unsigned, and where - float-time is applied to the (negative) difference between two times. - * editfns.c (decode_time_components): Last arg is now double *, - not int *, and means to store all the result as a double, without - worrying about whether the seconds part fits in time_t. - All callers changed. - (lisp_time_argument): Remove last int * arg, as it's no longer needed. - All callers changed. - (Ffloat_time): Do not fail merely because the specified time falls - outside of time_t range. - -2012-07-07 Glenn Morris - - * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV): - * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM): - * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively). - -2012-07-07 Juanma Barranquero - - * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)): - Update dependencies. - - * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp. - -2012-07-06 Paul Eggert - - Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786). - * dispextern.h, nsfns.m, nsterm.m: Include . - * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp. - * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp. - * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp. - * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove. - - * xfont.c (compare_font_names): Redo to omit the need for casts. - -2012-07-06 Andreas Schwab - - * xfns.c (Fx_change_window_property): Doc fix. - * w32fns.c (Fx_change_window_property): Doc fix. - - * w32fns.c (Fx_window_property): Accept the same arguments as the - X Windows version. Doc fix. - * xfns.c (Fx_window_property): Doc fix. (Bug#11870) - -2012-07-06 Juanma Barranquero - Eli Zaretskii - - * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt. - Windows-specific code from nt/config.nt moved here. - Obsolete settings removed. - -2012-07-06 Paul Eggert - - * process.c: Avoid unnecessary calls to gettime. - (wait_reading_process_output): Don't get the time of day - when gobbling data immediately and not waiting, as there's no need - for it in that case. This removes a FIXME. - -2012-07-06 Jan Djärv - - * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3 - is defined (Bug#11768). - -2012-07-06 Dmitry Antipov - - Fix marker debugging code. - * marker.c (byte_char_debug_check): Do not perform the check - if buffer is not multibyte. - (buf_charpos_to_bytepos, buf_bytepos_to_charpos): - Call byte_char_debug_check with correct arguments. - -2012-07-06 Dmitry Antipov - - Compile marker debugging code only if ENABLE_CHECKING is defined. - * marker.c (byte_char_debug_check, count_markers): - Use only if ENABLE_CHECKING is defined. - (byte_debug_flag): Remove. - (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos): - Always call byte_char_debug_check if ENABLE_CHECKING is defined. - -2012-07-06 Dmitry Antipov - - Avoid code repetition in marker-related functions. - * marker.c (attach_marker): New function. - (Fset_marker, set_marker_restricted, set_marker_both) - (set_marker_restricted_both): Use it. - (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at): - Consistently rename charno to charpos. - (marker_position): Add eassert. - (marker_byte_position): Convert to eassert. - -2012-07-06 Dmitry Antipov - - Simplify list operations in unchain_overlay and unchain_marker. - * buffer.c (unchain_overlay): Simplify. Add comment. - * marker.c (unchain_marker): Simplify. Fix comments. - -2012-07-06 Dmitry Antipov - - Introduce fast path for the widely used marker operation. - * alloc.c (build_marker): New function. - * lisp.h (build_marker): New prototype. - * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it. - * composite.c (autocmp_chars): Likewise. - * editfns.c (buildmark): Remove. - (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker) - (save_restriction_save): Use build_marker. - * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise. - * window.c (save_window_save): Likewise. - -2012-07-06 Dmitry Antipov - - Do not use Fdelete_overlay in delete_all_overlays - to avoid redundant calls to unchain_overlay. - * buffer.c (drop_overlay): New function. - (delete_all_overlays, Fdelete_overlay): Use it. - * minibuf.c (get_minibuffer): Fix comment. - -2012-07-06 Paul Eggert - - Port to OpenBSD 5.1 amd64. - * sysdep.c [BSD_SYSTEM]: Include before . - This is needed for OpenBSD, and should be harmless on all BSD systems. - Also, include , as it should be available on all - BSD_SYSTEM hosts given that we're already calling sysctl in that case. - (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but - use p_pid member, not kp_proc.pid. - -2012-07-06 Glenn Morris - - * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows. - -2012-07-05 Paul Eggert - - More xmalloc and related cleanup. - * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c: - * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c: - * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c: - * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c: - * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c: - * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c: - * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c: - * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c: - * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c: - * xterm.c: - Omit needless casts involving void * pointers and allocation. - Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))", - as the former is more robust if P's type is changed. - Prefer xzalloc to xmalloc + memset 0. - Simplify malloc-or-realloc to realloc. - Don't worry about xmalloc returning a null pointer. - Prefer xstrdup to xmalloc + strcpy. - * editfns.c (Fmessage_box): Grow message_text by at least 80 when - growing it. - * keyboard.c (apply_modifiers_uncached): Prefer local array to - alloca of a constant. - -2012-07-05 Eli Zaretskii - - * xdisp.c (display_line): Fix horizontal pixel coordinates when - hscroll is larger than the line width. Fixes long and futile - looping inside extend_face_to_end_of_line (on a TTY) producing - glyphs that are not needed and thrown away. - -2012-07-05 Dmitry Antipov - - * marker.c (set_marker_restricted_both): Simplify by using - clip_to_bounds. - -2012-07-05 Paul Eggert - - * editfns.c (region_limit): Simplify by using clip_to_bounds. - -2012-07-05 Jan Djärv - - * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is - not defined (Bug#11768). - (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768). - (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser) - (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new - followed by gtk_box_set_homogeneous (Bug#11768). - (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768). - (update_theme_scrollbar_width, xg_create_scroll_bar): - Use gtk_scrollbar_new (Bug#11768). - (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3. - (is_box_type): New function (Bug#11768). - (xg_tool_item_stale_p): Call is_box_type. - (xg_initialize): Get settings by calling gtk_settings_get_for_screen - with default display (Bug#11768). - -2012-07-05 Eli Zaretskii - - * xdisp.c (window_hscroll_limited): New function. - (pos_visible_p, init_iterator): Use it to avoid overflow of pixel - coordinates when window's hscroll is set to insanely large - values. (Bug#11857) - -2012-07-05 Juanma Barranquero - - * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo. - ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies. - -2012-07-05 Dmitry Antipov - - Cleanup xmalloc. - * lisp.h (xzalloc): New prototype. Omit needless casts. - * alloc.c (xzalloc): New function. Omit needless casts. - * charset.c: Omit needless casts. Convert all calls to - xmalloc with following memset to xzalloc. - * dispnew.c: Likewise. - * fringe.c: Likewise. - * image.c: Likewise. - * sound.c: Likewise. - * term.c: Likewise. - * w32fns.c: Likewise. - * w32font.c: Likewise. - * w32term.c: Likewise. - * xfaces.c: Likewise. - * xfns.c: Likewise. - * xterm.c: Likewise. - * atimer.c: Omit needless casts. - * buffer.c: Likewise. - * callproc.c: Likewise. - * ccl.c: Likewise. - * coding.c: Likewise. - * composite.c: Likewise. - * doc.c: Likewise. - * doprnt.c: Likewise. - * editfns.c: Likewise. - * emacs.c: Likewise. - * eval.c: Likewise. - * filelock.c: Likewise. - * fns.c: Likewise. - * gtkutil.c: Likewise. - * keyboard.c: Likewise. - * lisp.h: Likewise. - * lread.c: Likewise. - * minibuf.c: Likewise. - * msdos.c: Likewise. - * print.c: Likewise. - * process.c: Likewise. - * region-cache.c: Likewise. - * search.c: Likewise. - * sysdep.c: Likewise. - * termcap.c: Likewise. - * terminal.c: Likewise. - * tparam.c: Likewise. - * w16select.c: Likewise. - * w32.c: Likewise. - * w32reg.c: Likewise. - * w32select.c: Likewise. - * w32uniscribe.c: Likewise. - * widget.c: Likewise. - * xdisp.c: Likewise. - * xmenu.c: Likewise. - * xrdb.c: Likewise. - * xselect.c: Likewise. - -2012-07-05 Paul Eggert - - * fileio.c (time_error_value): Check the right error number. - Problem reported by Troels Nielsen in - . - -2012-07-04 Paul Eggert - - * window.c (set_window_hscroll): Revert the 100000 hscroll limit. - This should be fixed in a better way; see Eli Zaretskii in - . - (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll. - - * fileio.c (time_error_value): Rename from special_mtime. - The old name's problems were noted by Eli Zaretskii in - . - - * emacs.c (gdb_pvec_type): Change it back to enum pvec_type. - This variable's comment says Emacs needs at least one GDB-visible - symbol of type enum pvec_type, to work around GDB problems. - The symbol's value doesn't matter. - - * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';' - that causes compilation to fail on pre-C99 compilers. - -2012-07-04 Juanma Barranquero - - * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY) - (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete. - -2012-07-04 Dmitry Antipov - - * buffer.c (init_buffer_once): Fix initialization of - headers for buffer_defaults and buffer_local_symbols. - Reported by Juanma Barranquero . - -2012-07-04 Stefan Monnier - - Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE. - * lisp.h (enum pvec_type): Use fewer bits. - (PSEUDOVECTOR_SIZE_BITS): New constant. - (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it. - (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to - change in pvec_type. - (PSEUDOVECTOR_TYPEP): New macro. - (TYPED_PSEUDOVECTORP): Use it. - * fns.c (internal_equal): Adapt code to extract pvectype. - * emacs.c (gdb_pvec_type): Update type. - * alloc.c (PSEUDOVECTOR_NBYTES): New macro. - (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK). - (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE). - (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE. - (sweep_vectors): Use it. Use local var `total_bytes' instead of - abusing vector->header.next.nbytes. - (live_vector_p): Use PVEC_TYPE. - (mark_object): Adapt code to extract pvectype. Use switch. - -2012-07-04 Paul Eggert - - * doprnt.c (doprnt): Don't assume string length fits in 'int'. - Tighten new eassert a bit. - -2012-07-04 Dmitry Antipov - - Fix compilation with --enable-gcc-warnings and -O1 - optimization level. - * doprnt.c (doprnt): Change type of tem to int, initialize - to avoid compiler warning. Add eassert. - * search.c (simple_search): Initialize match_byte to avoid - compiler warning. Add eassert. - -2012-07-04 Paul Eggert - - Avoid weird behavior with large horizontal scrolls. - Without this change, for example, large hscroll values would - mess up Emacs's display on Fedora 15 x86, presumably due to - overflows in int calculations in the display code. - Also, if buffers had long lines, Emacs would freeze. - * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB. - (set_window_hscroll): New function, containing the old guts of - Fset_window_hscroll. Return the clipped value. - (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it. - This avoids the need to check against PTRDIFF_MAX. - - * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch. - -2012-07-04 Dmitry Antipov - - * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch. - -2012-07-04 Paul Eggert - - * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207) - Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later, - since GCC 4.4.6 issues a bogus warning for them. - - Fix bugs in file timestamp newness comparisons. - * fileio.c (Ffile_newer_than_file_p): - * lread.c (Fload): Use full timestamp resolution of files, - not just the 1-second resolution, so that files that are only - slightly newer still count as newer. - * fileio.c (Ffile_newer_than_file_p): Don't assume file - timestamps fit in 'int'; this fixes a Y2038 bug on most hosts. - -2012-07-03 Paul Eggert - - * fileio.c: Improve handling of file time marker. (Bug#11852) - (special_mtime): New function. - (Finsert_file_contents, Fverify_visited_file_modtime): - Use it to set special mtime values consistently. - -2012-07-03 Andreas Schwab - - * fileio.c (Finsert_file_contents): Properly handle st_mtime - marker for non-existing file. (Bug#11852) - -2012-07-03 Glenn Morris - - * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN - and did not make it into globals.h). - -2012-07-03 Tom Tromey - - * window.c (Fset_window_margins, Fset_window_fringes) - (Fset_window_scroll_bars, Fset_window_vscroll): No longer static. - * textprop.c (Fprevious_property_change): No longer static. - * syntax.c (Fsyntax_table_p): No longer static. - * process.c (Fget_process, Fprocess_datagram_address): No longer - static. - * keymap.c (Flookup_key, Fcopy_keymap): No longer static. - * keyboard.c (Fcommand_execute): No longer static. - Remove EXFUN. - * insdel.c (Fcombine_after_change_execute): No longer static. - * image.c (Finit_image_library): No longer static. - * fileio.c (Fmake_symbolic_link): No longer static. - * eval.c (Ffetch_bytecode): No longer static. - * editfns.c (Fuser_full_name): No longer static. - * doc.c (Fdocumentation_property, Fsnarf_documentation): - No longer static. - * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer - static. - * dired.c (Ffile_attributes): No longer static. - * composite.c (Fcomposition_get_gstring): No longer static. - * callproc.c (Fgetenv_internal): No longer static. - - * ccl.h: Remove EXFUNs. - * buffer.h: Remove EXFUNs. - * dispextern.h: Remove EXFUNs. - * intervals.h: Remove EXFUNs. - * fontset.h: Remove EXFUN. - * font.h: Remove EXFUNs. - * dosfns.c (system_process_attributes): Remove EXFUN. - * keymap.h: Remove EXFUNs. - * lisp.h: Remove EXFUNs. - * w32term.h: Remove EXFUNs. - * window.h: Remove EXFUNs. - * xsettings.h: Remove EXFUN. - * xterm.h: Remove EXFUN. - -2012-07-03 Glenn Morris - - * lisp.h (Frandom): Make it visible to C. - * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new - buffer for invisible buffers. (Bug#1229) - -2012-07-03 Dmitry Antipov - - Fix block vector allocation code to allow VECTOR_BLOCK_SIZE - values which aren't power of 2. - * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. - Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users - accordingly. - -2012-07-03 Stefan Monnier - - * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better. - - * alloc.c (mark_object): Revert part of last patch to use `switch'. - -2012-07-03 Dmitry Antipov - - * alloc.c (allocate_vector_block): Remove redundant - calls to mallopt if DOUG_LEA_MALLOC is defined. - (allocate_vectorlike): If DOUG_LEA_MALLOC is defined, - avoid calls to mallopt if zero_vector is returned. - -2012-07-03 Dmitry Antipov - - * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES - is enabled, avoid dereferencing NULL current_sblock if - running undumped. - -2012-07-03 Dmitry Antipov - - Cleanup basic buffer management. - * buffer.h (struct buffer): Change layout to use generic vector - marking code. Fix some comments. Change type of 'clip_changed' - to bitfield. Remove unused #ifndef old. - (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove. - (GET_OVERLAYS_AT): Fix indentation. - (for_each_per_buffer_object_at): New macro. - * buffer.c (clone_per_buffer_values, reset_buffer_local_variables) - (Fbuffer_local_variables): Use it. - (init_buffer_once, syms_of_buffer): Remove unused #ifndef old. - * alloc.c (allocate_buffer): Adjust to match new layout of - struct buffer. Fix comment. - (mark_overlay): New function. - (mark_buffer): Use it. Use mark_vectorlike to mark normal - Lisp area of struct buffer. - (mark_object): Use it. Adjust marking of misc objects - and related comments. - -2012-07-02 Paul Eggert - - * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS" - wrapper that is not needed because the wrapped code is a no-op (zero - machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined. - This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64. - -2012-07-02 Dmitry Antipov - - * alloc.c (mark_buffer): Simplify. Remove prototype. - (mark_object): Add comment. Reorganize marking of vector-like - objects. Use CHECK_LIVE for all vector-like objects except buffers - and subroutines when GC_CHECK_MARKED_OBJECTS is defined. - Avoid redundant calls to mark_vectorlike for bool vectors. - -2012-06-30 Glenn Morris - - * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp. - - * epaths.in (PATH_SITELOADSEARCH): New. - * lread.c (init_lread): Use PATH_SITELOADSEARCH. - This is rather than relying on --enable-locallisppath elements - having "site-lisp" in their names. (Bug#10208#25, 11658) - -2012-06-30 Eli Zaretskii - - * w32proc.c (sys_select): Accept and ignore one more argument. - - * w32.c (emacs_gnutls_pull): Call select with one more argument. - - * sysselect.h [DOS_NT]: Don't include sys/select.h. - (pselect) [!MS_DOS]: Redirect to sys_select. - - * sysdep.c: Don't include dos.h and dosfns.h. - - * process.c (sys_select): - * msdos.c (sys_select): Accept one more argument and ignore it. - - * msdos.c (event_timestamp, sys_select): Use gnulib's gettime; - adapt data types and code to that. - - * dosfns.c: - * msdos.c (gettime, settime): Define away the prototypes in dos.h, - which clashes with the gnulib function of the same name. - -2012-06-30 Andreas Schwab - - * font.c (font_style_to_value, font_style_symbolic) - (font_prop_validate_style): Add type checks for values in - font_style_table. - - * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first - argument. - * character.c, charset.c, menu.c, process.c, window.c: Adjust all - uses. - -2012-06-29 Eli Zaretskii - - * xdisp.c (try_window_id): Undo last change. - - * w32.c (getwd): Adjust commentary about startup_dir. - (init_environment): Always call sys_access, even in non-MSVC - builds. Don't chdir to the directory of the Emacs executable. - This undoes code from 1997 which was justified by the need to - "avoid conflicts when removing and renaming directories". But its - downside was that every relative file name was being interpreted - relative to the directory of the Emacs executable, which can never - be TRT. In particular, it broke sys_access when called with - relative file names. - (sys_access): Map GetLastError to errno. - -2012-06-29 Dmitry Antipov - - * window.h (struct window): Change type of 'fringes_outside_margins' - to bitfield. Fix comment. Adjust users accordingly. - (struct window): Change type of 'window_end_bytepos' to ptrdiff_t. - Adjust comment. - * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos' - to ptrdiff_t. - -2012-06-29 Andreas Schwab - - * gnutls.c (emacs_gnutls_handshake): - Add QUIT to make the loop interruptible. - -2012-06-29 Glenn Morris - - * charset.c (init_charset): Make lack of etc/charsets fatal. - -2012-06-29 Dmitry Antipov - - * editfns.c (region_limit): Fix type mismatch. - -2012-06-29 Dmitry Antipov - - * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be - undefined. Convert from xassert to eassert. - * nsmenu.m: Convert from xassert to eassert. - * nsterm.m: Likewise. - -2012-06-28 Stefan Monnier - - * editfns.c (region_limit): Clip to narrowing (bug#11770). - -2012-06-28 Paul Eggert - - Avoid integer overflow on scroll-left and scroll-right. - * window.c (HSCROLL_MAX): New macro. - (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer - overflow when requested scroll falls outside ptrdiff_t range. - -2012-06-28 Dmitry Antipov - - * window.h (struct window): Change type of 'hscroll', - 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t, - 'last_modified' and 'last_overlay_modified' to EMACS_INT. - Adjust users accordingly. - * xdisp.c (try_cursor_movement): Replace type check with eassert. - * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll' - from EMACS_INT to ptrdiff_t. - (make_window): Omit redundant initialization. - -2012-06-28 Juanma Barranquero - - * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies. - -2012-06-28 Dmitry Antipov - - * window.h (struct window): Change type of 'use_time' and - 'sequence_number' from Lisp_Object to int. - * frame.c (make_frame): Adjust users accordingly. - * print.c (print_object): Likewise. - * window.c (select_window, Fwindow_use_time, make_parent_window) - (make_window): Likewise. - -2012-06-28 Dmitry Antipov - - * dispextern.h (GLYPH_DEBUG): Now defined in config.h if - enabled with --enable-checking=[all,glyphs] configure option. - Fix GLYPH_DEBUG usage assuming that it may be undefined, - adjust comments accordingly. - * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be - undefined, adjust comments accordingly. - * image.c: Likewise. - * scroll.c: Likewise. - * w32fns.c: Likewise. - * w32term.c: Likewise. - * xdisp.c: Likewise. - * xfaces.c: Likewise. - * xfns.c: Likewise. - * xterm.c: Likewise. - -2012-06-28 Dmitry Antipov - - Generalize run-time debugging checks. - * dispextern.h (XASSERTS): Remove. - * fontset.c (xassert): Remove. - Convert from xassert to eassert. - * alloc.c: Convert from xassert to eassert. - * bidi.c: Likewise. - * dispnew.c: Likewise. - * fns.c: Likewise. - * fringe.c: Likewise. - * ftfont.c: Likewise. - * gtkutil.c: Likewise. - * image.c: Likewise. - * keyboard.c: Likewise. - * menu.c: Likewise. - * process.c: Likewise. - * scroll.c: Likewise. - * sound.c: Likewise. - * term.c: Likewise. - * w32console.c: Likewise. - * w32fns.c: Likewise. - * w32term.c: Likewise. - * window.c: Likewise. - * xdisp.c: Likewise. - * xfaces.c: Likewise. - * xfns.c: Likewise. - * xselect.c: Likewise. - * xterm.c: Likewise. - -2012-06-27 Stefan Monnier - - * fns.c (maybe_resize_hash_table): Output message when growing the - purify-hashtable. - -2012-06-27 Dmitry Antipov - - * alloc.c (allocate_string_data): Remove dead code. - * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to - avoid GCC warning about unused macro. - -2012-06-27 Dmitry Antipov - - * alloc.c (allocate_string): Omit intervals initialization. - * alloc.c (make_uninit_multibyte_string): Initialize intervals - as in make_pure_string and make_pure_c_string. - -2012-06-27 Dmitry Antipov - - * alloc.c (allocate_string): Fix last change. - -2012-06-27 Dmitry Antipov - - * alloc.c (allocate_string): Remove two redundant calls - to memset, add explicit initialization where appropriate. - -2012-06-27 Glenn Morris - - * lisp.mk (lisp): Remove paths.elc. - -2012-06-27 Chong Yidong - - * doc.c (Fsubstitute_command_keys): Fix punctuation. - -2012-06-26 John Wiegley - - * unexmacosx.c (copy_data_segment): Add two section names used - on Mac OS X Lion: __mod_init_func and __mod_term_func. - - * alloc.c (mark_memory): Do not check with -faddress-sanitizer - when building with Clang. - -2012-06-26 Stefan Monnier - - * eval.c (Fapply): Allow calling it with a single argument. - -2012-06-26 Eli Zaretskii - - * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to - _stricmp and _strnicmp. - (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1. - -2012-06-26 Dmitry Antipov - - * alloc.c (allocate_window): Zero out non-Lisp part of newly - allocated window. - (allocate_process): Likewise for new process. - (allocate_terminal): Change to use offsetof. - (allocate_frame): Likewise. - * frame.c (make_frame): Omit redundant initialization. - * window.c (make_parent_window): Use memset. - (make_window): Omit redundant initialization. - * process.c (make_process): Omit redundant initialization. - * terminal.c (create_terminal): Likewise. - -2012-06-26 Dmitry Antipov - - * term.c (delete_tty): Remove redundant call to memset. - -2012-06-26 Dmitry Antipov - - * alloc.c: Remove build_string. - * lisp.h: Define build_string as static inline. This provides - a better opportunity to optimize away calls to strlen when the - function is called with compile-time constant argument. - * image.c (imagemagick_error): Convert to build_string. - * w32proc.c (sys_spawnve): Likewise. - * xterm.c (x_term_init): Likewise. - -2012-06-26 Paul Eggert - - Use sprintf return value instead of invoking strlen on result. - In the old days this wasn't portable, since some sprintf - implementations returned char *. But they died out years ago and - Emacs already assumes sprintf returns int. - Similarly for float_to_string. - This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64. - * ccl.c (ccl_driver): - * character.c (string_escape_byte8): - * data.c (Fnumber_to_string): - * doprnt.c (doprnt): - * print.c (print_object): - * xdisp.c (message_dolog): - * xfns.c (syms_of_xfns): - Use sprintf or float_to_string result to avoid need to call strlen. - * data.c (Fnumber_to_string): - Use make_unibyte_string, since the string must be ASCII. - * lisp.h, print.c (float_to_string): Now returns int length. - * term.c (produce_glyphless_glyph): - Use sprintf result rather than recomputing it. - - Clean out last vestiges of the old HAVE_CONFIG_H stuff. - * Makefile.in (ALL_CFLAGS): - * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H. - * gmalloc.c, regex.c: Include unconditionally. - -2012-06-25 Dmitry Antipov - - * dispextern.h (xstrcasecmp): Define to library function - strcasecmp if available. - * xfaces.c: Do not use xstrcasecmp if strcasecmp is available. - -2012-06-25 Andreas Schwab - - * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence): - Avoid comma operator. - * menu.c (push_submenu_start, push_submenu_end) - (push_left_right_boundary, push_menu_pane): Likewise. - * msdos.c (dos_rawgetc): Likewise. - -2012-06-25 Dmitry Antipov - - * xfns.c (xic_create_fontsetname): Remove redundant calls - to memset. - -2012-06-25 Paul Eggert - - * gtkutil.c (get_utf8_string): Remove redundant assignment. - sprintf already null-terminates its output. - - * xfns.c (x_window): Remove redundant cast. - -2012-06-25 Dmitry Antipov - - * xmenu.c (xmenu_show, xdialog_show): Explicit cast from - `const char *' to `char *' to avoid compiler warning. - -2012-06-24 Paul Eggert - - * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string - instead of truncating it to 63 (admittedly a generous limit). - - * process.c: Fix spelling and caps in comments. - -2012-06-24 Dan Nicolaescu - - * emacs.c (setpgrp): Remove definition, unused. - * sysdep.c (setpgrp): Remove definition, not used in this file. - -2012-06-24 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - -2012-06-24 Eli Zaretskii - - * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h. - (SYSTIME_H): Add nt/inc/sys/time.h. - - * systime.h [WINDOWSNT]: Include sys/time.h. - - * s/ms-w32.h (struct timespec): Definition moved from - nt/inc/sys/time.h. Suggested by Paul Eggert . - -2012-06-24 Paul Eggert - - Switch from NO_RETURN to C11's _Noreturn (Bug#11750). - * buffer.h (buffer_slot_type_mismatch): - * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]: - * eval.c (unwind_to_catch): - * image.c (my_png_error, my_error_exit): - * keyboard.c (quit_throw_to_read_char, user_error) - (Fexit_recursive_edit, Fabort_recursive_edit): - * lisp.h (die, args_out_of_range, args_out_of_range_3) - (wrong_type_argument, buffer_overflow, __executable_start) - (memory_full, buffer_memory_full, string_overflow, Fthrow) - (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error) - (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs) - (fatal): - (child_setup) [!DOS_NT]: - * lread.c (end_of_file_error, invalid_syntax): - * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]: - * puresize.h (pure_write_error): - * search.c (matcher_overflow): - * sound.c (sound_perror, alsa_sound_perror): - * sysdep.c, syssignal.h (croak): - * term.c (maybe_fatal, vfatal): - * textprop.c (text_read_only): - * undo.c (user_error): - * unexmacosx.c (unexec_error): - * xterm.c (x_ins_del_lines, x_delete_glyphs): - Use _Noreturn rather than NO_RETURN. - No need for separate decl merely because of _Noreturn. - * sound.c (sound_warning, parse_sound): - Remove unnecessary forward decls. - -2012-06-24 Paul Eggert - - Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000). - * lisp.h (WAIT_READING_MAX): New macro. - * dispnew.c (Fsleep_for, sit_for): - * keyboard.c (kbd_buffer_get_event): - * process.c (Faccept_process_output): - Use it to avoid bogus compiler warnings with obsolescent GCC versions. - This improves on the previous patch, which introduced a bug - when time_t is unsigned and as wide as intmax_t. - See . - -2012-06-23 Eli Zaretskii - - * dispnew.c (sit_for, Fsleep_for): - * keyboard.c (kbd_buffer_get_event): - * process.c (Faccept_process_output): Avoid compiler warnings when - comparing a 32-bit time_t with a 64-bit INTMAX_MAX. - -2012-06-23 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - - * w32.c (ltime): Add return type and declare static. - (w32_get_internal_run_time): Remove usused variable `time_100ns'. - -2012-06-23 Paul Eggert - - * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos. - Privately reported by Herbert J. Skuhra. - (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST. - All uses changed. - (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time, - not make_lisp_timeval, when the argument is of type EMACS_TIME. - -2012-06-23 Eli Zaretskii - - * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in - last argument of make_unibyte_string. - - * keyboard.c (kbd_buffer_get_event): Include the codepage and the - language ID in the event parameters. - - * w32term.c (w32_read_socket): Put the new keyboard codepage into - event.code, not the obscure "character set ID". - -2012-06-23 Chong Yidong - - * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select. - -2012-06-23 Eli Zaretskii - - Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu. - * w32.c (fdutimens): New function. - - * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type. - - * s/ms-w32.h (pselect): Redirect to sys_select. - - * sysselect.h [WINDOWSNT]: Don't include sys/select.h. - - * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko - in the logic of incrementing and decrementing the value of - use_relocatable_buffers. - -2012-06-23 Paul Eggert - - * sysdep.c [__FreeBSD__]: Fix recently-introduced typos. - Privately reported by Herbert J. Skuhra. - [__FreeBSD__]: Remove "*/" typo after "#include". - (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function. - (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro. - (TIMEVAL, system_process_attributes) [__FreeBSD__]: - Don't assume EMACS_TIME and struct timeval are the same type. - -2012-06-22 Paul Eggert - - Support higher-resolution time stamps (Bug#9000). - The time stamps are only nanosecond-resolution at the C level, - since that's the best that any real-world system supports now. - But they are picosecond-resolution at the Lisp level, as that's - easy, and leaves room for future OS improvements. - - * Makefile.in (LIB_CLOCK_GETTIME): New macro. - (LIBES): Use it. - - * alloc.c (Fgarbage_collect): Port to higher-res time stamps. - Don't get current time unless it's needed. - - * atimer.c: Include unconditionally, since gnulib - now provides it if it's absent. - (start_atimer): Port to higher-res time stamps. - Check for time stamp overflow. Don't get current time more - often than is needed. - - * buffer.h (struct buffer): Buffer modtime now has high resolution. - Include systime.h, not time.h. - (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros. - - * dired.c: Include stat-time.h. - (Ffile-attributes): File times now have higher resolution. - - * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h. - (struct image): Timestamp now has higher resolution. - - * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always - has at least microseconds now. All uses removed. - (update_frame, update_single_window, update_window, update_frame_1) - (Fsleep_for, sit_for): Port to higher-resolution time stamps. - (duration_to_sec_usec): Remove; no longer needed. - - * editfns.c (time_overflow): Now extern. - (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument) - (float-time, Fformat_time_string, Fcurrent_time_string) - (Fcurrent_time_zone): Accept and generate higher-resolution - time stamps. - (make_time_tail, make_lisp_time, dissassemble_lisp_time) - (decode_time_components, lisp_seconds_argument): New functions. - (make_time): Now static. - (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec. - Report an error if the time is invalid, rather than having the caller - do that. - - * fileio.c: Include - (Fcopy_file): Copy higher-resolution time stamps. - Prefer to set the time stamp via a file descriptor if that works. - (Fset_file_times, Finsert_file_contents, Fwrite_region) - (Fverify_visited_file_modtime, Fclear_visited_file_modtime) - (Fvisited_file_modtime, Fset_visited_file_modtime): - Support higher-resolution time stamps. - - * fns.c (Frandom): Use nanoseconds, not microseconds, for seed. - - * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps. - - * image.c (prepare_image_for_display, clear_image_cache) - (lookup_image): Port to higer-resolution time stamps. - - * keyboard.c (start_polling, bind_polling_period): - Check for time stamp overflow. - (read_char, kbd_buffer_get_event, timer_start_idle) - (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check) - (Fcurrent_idle_time, init_keyboard, set_waiting_for_input): - Port to higher-resolution time stamps. Do not assume time_t is signed. - (decode_timer): New function. Timers are now vectors of length 9, - not 8, to accommodate the picosecond component. - (timer_check_2): Use it. - - * nsterm.m (select_timeout, timeval_subtract): Remove. - (ns_timeout): Use Emacs's facilities for time stamp arithmetic, - as they're a bit more accurate and handle overflow better. - (ns_select): Change prototype to be compatible with pselect. - (ns_select, ns_term_shutdown): Port to ns-resolution time stamps. - * nsterm.h (ns_select): Adjust prototype. - - * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes - us-resolution time stamps. - (sys_select): Use the new EMACS_TIME_SIGN macro instead. - - * lread.c (read_filtered_event): Port to ns-resolution time stamps. - - * lisp.h (time_overflow): New decl. - (wait_reading_process_output): First arg is now intmax_t, not int, - to accommodate larger waits. - - * process.h (struct Lisp_Process.read_output_delay): - Now counts nanoseconds, not microseconds. - * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about - EMACS_HAS_USECS. - (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output) - (wait_reading_process_output): - Port to ns-resolution time stamps. - (Faccept_process_output, wait_reading_process_output): - Check for time stamp overflow. Do not assume time_t is signed. - (select_wrapper): Remove; we now use pselect. - (Fprocess_attributes): Now generates ns-resolution time stamps. - - * sysdep.c: Include utimens.h. Don't include utime.h - or worry about struct utimbuf; gnulib does that for us now. - (gettimeofday): Remove; gnulib provides a substitute. - (make_timeval): New function. - (set_file_times): Now sets ns-resolution time stamps. - New arg FD; all uses changed. - (time_from_jiffies, ltime_from_jiffies, get_up_time) - (system_process_attributes): - Now returns ns-resolution time stamp. All uses changed. - Check for time stamp overflow. - - * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib - provides a substitute now. - - * systime.h: Include timespec.h rather than sys/time.h and time.h, - since it guarantees struct timespec. - (EMACS_TIME): Now struct timespec, so that we can support - ns-resolution time stamps. - (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros. - (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now. - (EMACS_USECS): Remove. - (EMACS_SET_USECS): The underlying time stamp now has ns resolution, - so multiply the arg by 1000 before storing it. - (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS): - New macros. - (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): - Port to ns-resolution time stamps. - (EMACS_TIME_NEG_P): Remove; replaced by.... - (EMACS_TIME_SIGN): New macro. - (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P) - (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros. - (set_file_times, make_time, lisp_time_argument): Adjust signature. - (make_timeval, make_lisp_time, decode_time_components): New decls. - (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in - that it mishandled time_t overflow. You can't compare by subtracting! - (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE) - (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp. - - * term.c: Include . - (timeval_to_Time): New function, for proper overflow wraparound. - (term_mouse_position, term_mouse_click): Use it. - - * undo.c (record_first_change): Support higher-resolution time stamps - in the undo buffer. - (Fprimitive_undo): Use them when restoring time stamps. - - * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull) - (w32_get_internal_run_time): - Port to higher-resolution Emacs time stamps. - (ltime): Now accepts single 64-bit integer, as that's more convenient - for callers. - - * xdisp.c (start_hourglass): Port to ns-resolution time stamps. - - * xgselect.c, xgselect.h (xg_select): Add sigmask argument, - for compatibility with pselect. Support ns-resolution time stamps. - - * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps. - - * xselect.c (wait_for_property_change, x_get_foreign_selection): - Check for time stamp overflow, and support ns-resolution time stamps. - - * xterm.c: Don't include sys/time.h; gnulib does that for us now. - Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set. - (timeval_subtract): Remove; no longer needed. - (XTflash, XTring_bell, x_wait_for_event): - Port to ns-resolution time stamps. Don't assume time_t is signed. - -2012-06-22 Chong Yidong - - * xdisp.c (x_consider_frame_title): Revert last change. - -2012-06-22 Eli Zaretskii - - * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled - with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER - aborts in staticpro during startup. (Without -DBYTE_CODE_METER, - staticidx goes up to 1597 out of 1600 = 0x640.) - -2012-06-20 Paul Eggert - - * fileio.c (Fdefault_file_modes): Block input while fiddling with umask. - Otherwise, the umask might be mistakenly 0 while handling input signals. - -2012-06-19 Stefan Monnier - - * minibuf.c (Fread_string): Bind minibuffer-completion-table. - -2012-06-19 Dmitry Antipov - - * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c: - * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c: - * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct - access to `contents' member of Lisp_Vector objects with AREF and ASET - where appropriate. - -2012-06-19 Chong Yidong - - * frame.c (delete_frame): When selecting a frame on a different - text terminal, do not alter the terminal's top-frame. - - * xdisp.c (format_mode_line_unwind_data): Record the target - frame's selected window and its terminal's top-frame. - (unwind_format_mode_line): Restore them. - (x_consider_frame_title, display_mode_line, Fformat_mode_line): - Callers changed. - (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM, - since tty frames can be explicitly named. - (prepare_menu_bars): Likewise. - - * term.c (Ftty_top_frame): New function. - -2012-06-18 Paul Eggert - - Port byte-code-meter to modern targets. - * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume - !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with - CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in - . - (METER_1, METER_2): Simplify. - -2012-06-18 Stefan Monnier - - * data.c (Fdefalias): Return `symbol' (bug#11686). - -2012-06-18 Martin Rudalics - - * buffer.c (Fkill_buffer): Don't throw an error when the buffer - gets killed during executing of this function (Bug#11665). - Try to always return Qt when the buffer has been actually killed. - (Vkill_buffer_query_functions): In doc-string say that functions - run by this hook should not change the current buffer. - -2012-06-18 Paul Eggert - - Fix recently-introduced process.c problems found by static checking. - * process.c (write_queue_push, write_queue_pop, send_process): - Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets. - (write_queue_pop): Fix pointer signedness problem. - (send_process): Remove unused local. - -2012-06-17 Chong Yidong - - * xdisp.c (redisplay_internal): No need to redisplay terminal - frames that are not on top. - -2012-06-17 Troels Nielsen - - * process.c (make_process): Initialize write_queue. - (write_queue_push, write_queue_pop): New functions. - (send_process): Use them to maintain correct ordering of process - writes (Bug#10815). - -2012-06-17 Paul Eggert - - * lisp.h (eassert): Assume C89 or later. - This removes the need for CHECK. - (CHECK): Remove. Its comments about always evaluating its - argument were confusing, as 'eassert' typically does not evaluate - its argument. - - * coding.c (produce_chars): Use ptrdiff_t, not int. - - * xterm.c (x_draw_underwave): Check for integer overflow. - This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64. - -2012-06-17 Jan Djärv - - * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't - referenced (Bug#11583). - -2012-06-16 Aurelien Aptel - - Implement wave-style variant of underlining. - * dispextern.h (face_underline_type): New enum. - (face): Add field for underline type. - * nsterm.m (ns_draw_underwave): New function. - (ns_draw_text_decoration): Use it. - * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave): - New functions. - (x_draw_glyph_string): Use them. - * xfaces.c (Qline, Qwave): New Lisp objects. - (check_lface_attrs, merge_face_ref) - (Finternal_set_lisp_face_attribute, realize_x_face): - Handle wave-style underline face attributes. - * xterm.c (x_draw_underwave): New function. - (x_draw_glyph_string): Use it. - -2012-06-16 Juanma Barranquero - - * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O)) - ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O)) - ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O)) - ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O)) - ($(BLD)/w32select.$(O)): Update dependencies. - -2012-06-16 Andreas Schwab - - * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline. - (BUF_FETCH_MULTIBYTE_CHAR): Likewise. - * character.c (_fetch_multibyte_char_p): Remove. - * alloc.c: Include "character.h" before "buffer.h". - * bidi.c: Likewise. - * buffer.c: Likewise. - * bytecode.c: Likewise. - * callint.c: Likewise. - * callproc.c: Likewise. - * casefiddle.c: Likewise. - * casetab.c: Likewise. - * category.c: Likewise. - * cmds.c: Likewise. - * coding.c: Likewise. - * composite.c: Likewise. - * dired.c: Likewise. - * dispnew.c: Likewise. - * doc.c: Likewise. - * dosfns.c: Likewise. - * editfns.c: Likewise. - * emacs.c: Likewise. - * fileio.c: Likewise. - * filelock.c: Likewise. - * font.c: Likewise. - * fontset.c: Likewise. - * fringe.c: Likewise. - * indent.c: Likewise. - * insdel.c: Likewise. - * intervals.c: Likewise. - * keyboard.c: Likewise. - * keymap.c: Likewise. - * lread.c: Likewise. - * macros.c: Likewise. - * marker.c: Likewise. - * minibuf.c: Likewise. - * nsfns.m: Likewise. - * nsmenu.m: Likewise. - * print.c: Likewise. - * process.c: Likewise. - * regex.c: Likewise. - * region-cache.c: Likewise. - * search.c: Likewise. - * syntax.c: Likewise. - * term.c: Likewise. - * textprop.c: Likewise. - * undo.c: Likewise. - * unexsol.c: Likewise. - * w16select.c: Likewise. - * w32fns.c: Likewise. - * w32menu.c: Likewise. - * window.c: Likewise. - * xdisp.c: Likewise. - * xfns.c: Likewise. - * xmenu.c: Likewise. - * xml.c: Likewise. - * xselect.c: Likewise. - -2012-06-16 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end. - If all the glyphs of the glyph row came from strings, and we have no - cursor positioning clues, put the cursor on the first glyph of the - row. - (handle_face_prop): Use chunk-relative overlay string index when - indexing into it->string_overlays array. (Bug#11653) - (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not - the rightmost. (Bug#11720) - -2012-06-16 Andreas Schwab - - * category.h (CHAR_HAS_CATEGORY): Define as inline. - (CATEGORY_MEMBER): Enforce 1/0 value. - * category.c (_temp_category_set): Remove. - -2012-06-16 Eli Zaretskii - - * window.c (Fdelete_other_windows_internal) - (Fdelete_window_internal): Don't access frame's mouse highlight - info of the initial frame. (Bug#11677) - -2012-06-14 Paul Eggert - - * .gdbinit (xgetint): Fix recently-introduced paren typo. - Assume USE_2_TAGS_FOR_INTS. - (xreload): Adjust $tagmask width to match recent lisp.h change. - - Simplify lisp.h in minor ways that should not affect code. - * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined. - (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P) - (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number): - Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined. - (INTTYPEBITS): New macro, for clarity. - (INTMASK, MOST_POSITIVE_FIXNUM): Use it. - (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P): - Simplify now that USE_LSB_TAG is always defined. - (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast. - (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler. - -2012-06-13 Juanma Barranquero - - * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies. - -2012-06-13 Glenn Morris - - * s/bsd-common.h (BSD4_3): - * s/usg5-4-common.h (USG5_4): No longer define; unused. - -2012-06-13 Andreas Schwab - - * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct - instead of union. - (XLI, XIL): Define. - (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG): - Use them. - * emacs.c (gdb_use_struct): Rename from gdb_use_union. - * .gdbinit: Check gdb_use_struct instead of gdb_use_union. - * alloc.c (widen_to_Lisp_Object): Remove. - (mark_memory): Use XIL instead of widen_to_Lisp_Object. - * frame.c (delete_frame): Remove outdated comment. - * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking - USE_LISP_UNION_TYPE. - (Fw32_unregister_hot_key): Likewise. - (Fw32_toggle_lock_key): Likewise. - * w32menu.c (add_menu_item): Likewise. - (w32_menu_display_help): Use XIL instead of checking - USE_LISP_UNION_TYPE. - * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE. - (init_heap): Likewise. - * w32term.c (w32_read_socket): Update comment. - -2012-06-13 Glenn Morris - - * s/usg5-4-common.h, src/s/unixware.h: - Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04). - - * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04). - -2012-06-13 Paul Eggert - - USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604) - * alloc.c (make_number) [!defined make_number]: - Remove, as lisp.h always defines this now. - (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now. - (roundup_size): Verify that it is a power of 2. - * data.c (Fmake_variable_buffer_local, Fmake_local_variable): - * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO. - * lisp.h (USE_LSB_TAG): Allow the builder to compile with - -DUSE_LSB_TAG=0, to override the automatically-selected default. - USE_LSB_TAG now is always defined to be either 0 or 1. - All uses changed. - (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the - code works fine either way, and efficiency is not a concern here, - as the union type is for debugging, not for production. - (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]: - Use an inline function on all platforms when using the union type, - since this is simpler and 'static inline' can be used portably - within Emacs now. - (LISP_INITIALLY_ZERO): New macro. - (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove. - (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize. - -2012-06-12 Glenn Morris - - * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files. - - * s/gnu-linux.h (HAVE_PROCFS): Move to configure. - - * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h: - Move BROKEN_SIGIO to configure. - - * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h: - Move NO_TERMIO to configure. - -2012-06-12 Chong Yidong - - * image.c (imagemagick_load_image): Use MagickFlattenImage if - MagickMergeImageLayers is undefined. Use pixel pusher loop if - MagickExportImagePixels is undefined. - -2012-06-12 Paul Eggert - - * image.c (imagemagick_load_image): Remove unused label. - -2012-06-11 Glenn Morris - - * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: - * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h: - * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h: - * s/usg5-4-common.h: Move SYSTEM_TYPE to configure. - -2012-06-11 Stefan Monnier - - * alloc.c (make_byte_code): New function. - (Fmake_byte_code): Use it. Don't purify here. - * lread.c (read1): Use it as well to avoid extra allocation. - -2012-06-11 Chong Yidong - - * image.c (imagemagick_load_image): Implement transparency. - -2012-06-10 Andreas Schwab - - * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly - account for preceding backslashes. (Bug#11663) - -2012-06-09 Chong Yidong - - * term.c: Support italics in capable terminals (Bug#9652). - (no_color_bit): Replace unused NC_BLINK with NC_ITALIC. - (turn_on_face): Output using TS_enter_italic_mode if available. - Don't handle unused blinking and alt-charset cases. - (turn_off_face): Handle italic case; discard unused tty_blinking_p - and tty_alt_charset_p cases. - (tty_capable_p, init_tty): Support italics. - - * termchar.h (struct tty_display_info): Add field for italics. - Remove unused blink field. - - * xfaces.c (tty_supports_face_attributes_p, realize_tty_face): - Handle slant. - - * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC. - (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and - tty_alt_charset_p. Add tty_italic_p. - -2012-06-09 Michael Albinus - - * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and - dbus_type_is_basic if available. - (xd_extract_signed, xd_extract_unsigned): Rename from - extract_signed and extract_unsigned, respectively. Adapt callers. - -2012-06-09 Chong Yidong - - * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066). - - * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive - case (Bug#9752). - -2012-06-08 Paul Eggert - - * xdisp.c (vmessage): Treat frame message as multibyte. - Without this change, (let ((§ 1)) (make-variable-buffer-local '§)) - would generate the diagnostic "Making \302\247 buffer-local while - let-bound!". - -2012-06-08 Eli Zaretskii - - * dispnew.c (showing_window_margins_p): Undo last change, which - was done due to an inadvertent commit. - (adjust_frame_glyphs_for_frame_redisplay): Do call - showing_window_margins_p. - -2012-06-08 Stefan Monnier - - * eval.c (Fmake_var_non_special): New primitive. - (syms_of_eval): Defsubr it. - * lread.c (syms_of_lread): Mark `values' as lexically scoped. - -2012-06-08 Juanma Barranquero - - * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused - function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org). - -2012-06-08 Eli Zaretskii - - * alloc.c (allocate_vectorlike): Fix last change. - -2012-06-08 Dmitry Antipov - - Block-based vector allocation of small vectors. - * lisp.h (struct vectorlike_header): New field `nbytes', - adjust comment accordingly. - * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK' - to denote vector blocks. Adjust users (live_vector_p, - mark_maybe_pointer, valid_lisp_object_p) accordingly. - (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG. - (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES), - (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX), - (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST), - (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros. - (roundup_size): New constant. - (struct vector_block): New data type. - (vector_blocks, vector_free_lists, zero_vector): New variables. - (all_vectors): Rename to `large_vectors'. - (allocate_vector_from_block, init_vectors, allocate_vector_from_block) - (sweep_vectors): New functions. - (allocate_vectorlike): Return `zero_vector' as the only vector of - 0 items. Allocate new vector from block if vector size is less than - or equal to VBLOCK_BYTES_MAX. - (Fgarbage_collect): Move all vector sweeping code to sweep_vectors. - (init_alloc_once): Add call to init_vectors. - -2012-06-08 Stefan Monnier - - * eval.c (Fmacroexpand): Stop if the macro returns the same form. - -2012-06-07 Paul Eggert - - * doprnt.c (doprnt): Truncate multibyte char correctly. - Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP) - would mishandle a string argument "Xc" if X was a multibyte - character of length 2: it would truncate after X's first byte - rather than including all of X. - -2012-06-06 Chong Yidong - - * buffer.c (word_wrap): Doc fix. - -2012-06-04 Paul Eggert - - * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall. - -2012-06-03 Glenn Morris - - * xdisp.c (tool-bar-style): Doc fix. - -2012-06-03 Ulrich Müller - - * Makefile.in (PAXCTL): Define. - (temacs$(EXEEXT)): Disable memory randomization for the temacs - binary via PaX flags if the paxctl utility is available. - (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): - Restore PaX flags to their default. (Bug#11398) - -2012-06-03 Chong Yidong - - * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte - buffer (Bug#11226). - -2012-06-03 Chong Yidong - - * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value. - (note_mode_line_or_margin_highlight): If there is no help echo, - use mode-line-default-help-echo. Handle the case where the mouse - position is past the end of the mode line string. - - * buffer.c (buffer_local_value_1): New function, split from - Fbuffer_local_value; can return Qunbound. - (Fbuffer_local_value): Use it. - (Vmode_line_format): Docstring tweaks. - -2012-06-02 Paul Eggert - - * sysdep.c (system_process_attributes): Improve comment. - -2012-06-02 Stefan Monnier - - * keyboard.c: Export real-this-command to Elisp. - (syms_of_keyboard): Rename real_this_command to Vreal_this_command - and DEFVAR it. Update all users. - -2012-06-02 Paul Eggert - - * minibuf.c (Fassoc_string): Remove duplicate declaration. - - * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]: - Convert pctcpu and pctmem to Lisp float properly. - Let the compiler fold better, as 100.0/0x8000 is exact. - -2012-06-02 Andreas Schwab - - * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of - cons_block. - -2012-06-01 Paul Eggert - - * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change. - -2012-06-01 Dmitry Antipov - - For a 'struct window', replace some Lisp_Object fields to - bitfields where appropriate, remove unused fields. - * window.h (struct window): Remove unused 'last_mark_x' and - 'last_mark_y' fields. Rename 'mini_p' field to 'mini', - change its type from Lisp_Object to bitfield. - Change type of 'force_start', 'optional_new_start', - 'last_had_star', 'update_mode_line' and 'start_at_line_beg' - fields from Lisp_Object to bitfield. Adjust users accordingly. - -2012-05-31 Paul Eggert - - Pacify gcc -Wdouble-precision when using Xaw. - * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb) - [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]: - Use 'float' consistently, rather than 'float' in most places - and 'double' in a couple of places. - -2012-05-31 Eli Zaretskii - - * xdisp.c (handle_stop): Detect whether we have overlay strings - loaded by testing it->current.overlay_string_index to be - non-negative, instead of checking whether n_overlay_strings is - positive. (Bug#11587) - -2012-05-31 Chong Yidong - - * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169). - - * doc.c (Fsubstitute_command_keys): Doc fix. - -2012-05-31 Eli Zaretskii - - * search.c (search_buffer): Remove calls to - r_alloc_inhibit_buffer_relocation, as it is now called by - maybe_unify_char, which was the cause of relocation of buffer text - in bug#11519. - -2012-05-31 Eli Zaretskii - - * charset.c (maybe_unify_char): Inhibit relocation of buffer text - for the duration of call to load_charset, to avoid problems with - callers of maybe_unify_char that access buffer text through C - pointers. - - * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and - decrement the inhibition flag, instead of just setting or - resetting it. - -2012-05-31 Paul Eggert - - Remove obsolete '#define static' cruft. - * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef. - This #undef was "temporary" in 2000; it is no longer needed - now that '#define static' has gone away. - * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height) - (gray_bitmap_bits): Remove; no longer needed. - All uses replaced with definiens. - * xterm.c: Include "bitmaps/gray.xbm". - -2012-05-30 Paul Eggert - - Clean up __executable_start, monstartup when --enable-profiling. - The following changes affect the code only when profiling. - * dispnew.c (__executable_start): Rename from safe_bcopy. - Define only on platforms that need it. - * emacs.c: Include when profiling. - (_mcleanup): Remove decl, since does it now. - (__executable_start): Remove decl, since lisp.h does it now. - (safe_bcopy): Remove decl; no longer has that name. - (main): Coalesce #if into single bit of code, for simplicity. - Cast pointers to uintptr_t, since standard libraries want integers - and not pointers. - * lisp.h (__executable_start): New decl. - -2012-05-31 Glenn Morris - - * image.c (Fimagemagick_types): Doc fix. - -2012-05-30 Jim Meyering - - * callproc.c (Fcall_process_region): Include directory component - in mkstemp error message (Bug#11586). - -2012-05-30 Paul Eggert - - * alloc.c, lisp.h (make_pure_vector): Now static. - -2012-05-30 Stefan Monnier - - * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function): - Move to byte-run.el. - (Fautoload): Do the hash-doc more carefully. - * data.c (Fdefalias): Purify definition, except for keymaps. - (Qdefun): Move from eval.c. - * lisp.h (Qdefun): Remove. - * lread.c (read1): Tiny simplification. - -2012-05-29 Troels Nielsen - - Do not create empty overlays with the evaporate property (Bug#9642). - * buffer.c (Fmove_overlay): Reinstate the earlier fix for - Bug#9642, but explicitly check that the buffer the overlay would - be moved to is live and rearrange lines to make sure that errors - will not put the overlay in an inconsistent state. - (Fdelete_overlay): Cosmetics. - -2012-05-28 Eli Zaretskii - - * w32term.c (my_bring_window_to_top): New function. - (x_raise_frame): Use handle returned by DeferWindowPos, which - could be different from the original one. - Call my_bring_window_to_top instead of my_set_foreground_window. - (Bug#11513) - - * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP - by calling BringWindowToTop. - - * w32term.h (WM_EMACS_BRINGTOTOP): New message. - (WM_EMACS_END): Increase by one. - -2012-05-28 Paul Eggert - - * bidi.c (bidi_mirror_char): Put eassert before conversion to int. - This avoids undefined behavior that might cause the eassert - to not catch an out-of-range value. - -2012-05-28 Juanma Barranquero - - * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)): - Update dependencies. - -2012-05-27 Eli Zaretskii - - * bidi.c (bidi_mirror_char): Fix last change. - -2012-05-27 Andreas Schwab - - * unexmacosx.c (copy_data_segment): Truncate after 16 characters - when referring to sectname field in printf format. - -2012-05-27 Paul Eggert - - * lisp.h [REL_ALLOC]: Omit duplicate prototypes. - Only r_alloc_inhibit_buffer_relocation needed to be added; - the others were already declared. - - * bidi.c (bidi_mirror_char): Don't possibly truncate the integer - before checking whether it's out of range. Put the check inside - eassert. See - . - -2012-05-27 Ken Brown - - * callproc.c (Fcall_process): Restore a line that was accidentally - commented out in the 2011-02-13 change (bug#11547). - -2012-05-27 Eli Zaretskii - - * lisp.h [REL_ALLOC]: Add prototypes for external functions - defined on ralloc.c. - - * buffer.c [REL_ALLOC]: Remove prototypes of - r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free, - they are now on lisp.h. - - * ralloc.c (r_alloc_inhibit_buffer_relocation): New function. - - * search.c (search_buffer): Use it to inhibit relocation of buffer - text while re_search_2 is doing its job, because re_search_2 is - passed C pointers to buffer text. (Bug#11519) - - * msdos.c (internal_terminal_init) : - Update value to 24. - - * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator - state after an additional call to move_it_in_display_line_to, keep - the values of it->max_ascent and it->max_descent found for the - entire line. - (pos_visible_p): Revert the comparison against bottom_y to what it - was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb. - (Bug#11464) - -2012-05-26 Paul Eggert - - Fix coding-related core dumps with gcc -ftrapv. - The code was computing A - B, where A and B are pointers, and B is - random garbage. This can lead to core dumps on platforms that - have special pointer registers, and it also leads to core dumps on - x86-64 when compiled with gcc -ftrapv. The fix is to compute - A - B only when B is initialized properly. - * coding.c (coding_set_source, coding_set_destination): Return void. - (coding_change_source, coding_change_destinations): New functions, - with the old behaviors of coding_set_source and coding_set_destination. - All callers that need an offset changed to use these new functions. - -2012-05-26 Glenn Morris - - * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791) - -2012-05-26 Eli Zaretskii - - Extend mouse support on W32 text-mode console. - * xdisp.c (draw_row_with_mouse_face): - Call tty_draw_row_with_mouse_face for WINDOWSNT as well. - - * w32console.c: Include window.h. - (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face): - New functions. - (initialize_w32_display): Initialize mouse-highlight data. - - * w32inevt.c: Include termchar.h and window.h. - (do_mouse_event): Support mouse-autoselect-window. When the mouse - moves, call note_mouse_highlight. If help_echo changed, call - gen_help_event to produce help-echo message in the echo area. - Call clear_mouse_face if mouse_face_hidden is set in the mouse - highlight info. - -2012-05-26 Paul Eggert - - * lread.c (read1): Simplify slightly to avoid an overflow warning - with GCC 4.7.0 on x86-64. - -2012-05-26 Eli Zaretskii - - * bidi.c (bidi_mirror_char): Revert last change: an int is - definitely wide enough here. - -2012-05-25 Paul Eggert - - Fix integer width and related bugs (Bug#9874). - * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): - (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE) - (string_bytes, check_sblock, allocate_string_data): - (compact_small_strings, Fmake_bool_vector, make_string) - (make_unibyte_string, make_multibyte_string) - (make_string_from_bytes, make_specified_string) - (allocate_vectorlike, Fmake_vector, find_string_data_in_pure) - (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy) - (mark_vectorlike): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (allocate_pseudovector): - Use int, not EMACS_INT, where int is wide enough. - (inhibit_garbage_collection, Fgarbage_collect): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where - int might not be wide enough. - (bidi_cache_search, bidi_cache_find, bidi_init_it) - (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char) - (bidi_at_paragraph_end, bidi_find_paragraph_start) - (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * buffer.c (copy_overlays, Fgenerate_new_buffer_name) - (Fkill_buffer, Fset_buffer_major_mode) - (advance_to_char_boundary, Fbuffer_swap_text) - (Fset_buffer_multibyte, overlays_at, overlays_in) - (overlay_touches_p, struct sortvec, record_overlay_string) - (overlay_strings, recenter_overlay_lists) - (adjust_overlays_for_insert, adjust_overlays_for_delete) - (fix_start_end_in_overlays, fix_overlays_before, modify_overlay) - (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change) - (Foverlay_recenter, last_overlay_modification_hooks_used) - (report_overlay_modification, evaporate_overlays, enlarge_buffer_text): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (validate_region): Omit unnecessary test for b <= e, - since that's guaranteed by the previous test. - (adjust_overlays_for_delete): Avoid pos + length overflow. - (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist) - (report_overlay_modification): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): - Omit pointer cast, which isn't needed anyway, and doesn't work - after the EMACS_INT -> ptrdiff_t change. - (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow. - * buffer.h: Adjust decls to match defn changes elsewhere. - (struct buffer_text, struct buffer): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - Use EMACS_INT, not int, where int might not be wide enough. - * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t, - not int, to avoid needless 32-bit limit on 64-bit hosts. - (exec_byte_code): Use tighter memory-full test, one that checks - for alloca overflow. Don't compute the address of the object just - before an array, as that's not portable. Use EMACS_INT, not - ptrdiff_t or int, where ptrdiff_t or int might not be wide enough. - * callint.c (Fcall_interactively): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * callproc.c (call_process_kill, Fcall_process): - Don't assume pid_t fits into an Emacs fixnum. - (call_process_cleanup, Fcall_process, child_setup): - Don't assume pid_t fits into int. - (call_process_cleanup, Fcall_process, delete_temp_file) - (Fcall_process_region): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Fcall_process): Simplify handling of volatile integers. - Use int, not EMACS_INT, where int will do. - * casefiddle.c (casify_object, casify_region, operate_on_word) - (Fupcase_word, Fdowncase_word, Fcapitalize_word): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (casify_object): Avoid integer overflow when overallocating buffer. - * casetab.c (set_identity, shuffle): Prefer int to unsigned when - either works. Use lint_assume to convince GCC 4.6.1 that it's OK. - * category.c (Fchar_category_set): Don't assume fixnum fits in int. - * category.h (CATEGORYP): Don't assume arg is nonnegative. - * ccl.c (GET_CCL_INT): Remove; no longer needed, since the - integers are now checked earlier. All uses replaced with XINT. - (ccl_driver): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - For CCL_MapSingle, check that content and value are in int range. - (ccl_driver, Fregister_code_conversion_map): - Check that Vcode_version_map_vector is a vector. - (resolve_symbol_ccl_program): Check that vector header is in range. - Always copy the vector, so that we can check its contents reliably - now rather than having to recheck each instruction as it's being - executed. Check that vector words fit in 'int'. - (ccl_get_compiled_code, Fregister_ccl_program) - (Fregister_code_conversion_map): Use ptrdiff_t, not int, for - program indexes, to avoid needless 32-bit limit on 64-bit hosts. - (Fccl_execute, Fccl_execute_on_string): Check that initial reg - contents are in range. - (Fccl_execute_on_string): Check that status is in range. - * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int. - * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers): - Accept and return EMACS_INT, not int, because callers can pass values - out of 'int' range. - (c_string_width, strwidth, lisp_string_width, chars_in_text) - (multibyte_chars_in_text, parse_str_as_multibyte) - (str_as_multibyte, count_size_as_multibyte, str_to_multibyte) - (str_as_unibyte, str_to_unibyte, string_count_byte8) - (string_escape_byte8, Fget_byte): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to - avoid mishandling large integers. - * character.h: Adjust decls to match defn changes elsewhere. - * charset.c (load_charset_map_from_file, find_charsets_in_text) - (Ffind_charset_region): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (load_charset_map_from_file): Redo idx calculation to avoid overflow. - (load_charset_map_from_vector, Fdefine_charset_internal): - Don't assume fixnum fits in int. - (load_charset_map_from_vector, Fmap_charset_chars): - Remove now-unnecessary CHECK_NATNUMs. - (Fdefine_charset_internal): Check ranges here, more carefully. - Don't rely on undefined behavior with signed left shift overflow. - Don't assume unsigned int fits into fixnum, or that fixnum fits - into unsigned int. Don't require max_code to be a valid fixnum; - that's not true for gb10830 4-byte on a 32-bit host. Allow - invalid_code to be a cons, for the same reason. Require code_offset - to be a character. Avoid int overflow if max_char is close - to INT_MAX. - (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned; - this is intended anyway and avoids some undefined behavior. - (load_charset_map): Pass unsigned, not int, as 2nd arg of - INDEX_TO_CODE_POINT, as that's what it expects. - (Funify_charset, encode_char): Don't stuff unsigned vals into int vars. - * charset.h (DECODE_CHAR): Return int, not unsigned; - this is what was intended anyway, and it avoids undefined behavior. - (CHARSET_OFFSET): Remove unused macro, instead of fixing its - integer-overflow issues. - (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts. - Formerly, it returned EMACS_INT on 64-bit hosts in the common case - where the argument is EMACS_INT, and this behavior is not intended. - * chartab.c (Fmake_char_table, Fset_char_table_range) - (uniprop_get_decoder, uniprop_get_encoder): - Don't assume fixnum fits in int. - * cmds.c (move_point): New function, that does the gist of - Fforward_char and Fbackward_char, but does so while checking - for integer overflow more accurately. - (Fforward_char, Fbackward_char): Use it. - (Fforward_line, Fend_of_line, internal_self_insert) - (internal_self_insert): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - Fix a FIXME, by checking for integer overflow when calculating - target_clm and actual_clm. - * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR) - (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P) - (ASSURE_DESTINATION, coding_alloc_by_realloc) - (coding_alloc_by_making_gap, alloc_destination) - (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16) - (encode_coding_utf_16, detect_coding_emacs_mule) - (decode_coding_emacs_mule, encode_coding_emacs_mule) - (detect_coding_iso_2022, decode_coding_iso_2022) - (encode_invocation_designation, encode_designation_at_bol) - (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5) - (decode_coding_sjis, decode_coding_big5, encode_coding_sjis) - (encode_coding_big5, detect_coding_ccl, decode_coding_ccl) - (encode_coding_ccl, encode_coding_raw_text) - (detect_coding_charset, decode_coding_charset) - (encode_coding_charset, detect_eol, decode_eol, produce_chars) - (produce_composition, produce_charset, produce_annotation) - (decode_coding, handle_composition_annotation) - (handle_charset_annotation, consume_chars, decode_coding_gap) - (decode_coding_object, encode_coding_object, detect_coding_system) - (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region) - (code_convert_region, code_convert_string) - (Fdefine_coding_system_internal) - (coding_set_source, coding_set_destination): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (setup_iso_safe_charsets, consume_chars, Funencodable_char_position) - (Fdefine_coding_system_internal): - Don't assume fixnums fit in int. - (decode_coding_gap, decode_coding_object, encode_coding_object) - (Fread_coding_system, Fdetect_coding_region) - (Funencodable_char_position, Fcheck_coding_systems_region) - (get_translation, handle_composition_annotation, consume_chars): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (consume_chars): Rewrite to not calculate an address outside buffer. - (Ffind_operation_coding_system): NATNUMP can eval its arg twice. - Don't access memory outside of the args array. - (Fdefine_coding_system_internal): Check for charset-id overflow. - (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned - result of ENCODE_CHAR. - * coding.h: Adjust decls to match defn changes elsewhere. - (struct coding_system): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * composite.c (get_composition_id, find_composition) - (run_composition_function, update_compositions) - (compose_text, composition_gstring_put_cache) - (composition_gstring_p, composition_gstring_width) - (fill_gstring_header, fill_gstring_body, autocmp_chars) - (composition_compute_stop_pos, composition_reseat_it) - (composition_update_it, struct position_record) - (find_automatic_composition, composition_adjust_point) - (Fcomposition_get_gstring, Ffind_composition_internal): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (update_compositions): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * composite.h: Adjust decls to match defn changes elsewhere. - (struct composition): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p): - Do not attempt to compute the address of the object just before a - buffer; this is not portable. - (Faref, Faset): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Faset): Use int, not EMACS_INT, where int is wide enough. - (Fstring_to_number): Don't assume fixnums fit in int. - (Frem): Don't assume arg is nonnegative. - * dbusbind.c (xd_append_arg): Check for integers out of range. - (Fdbus_call_method): Don't overflow the timeout int. - (extract_signed, extract_unsigned): New functions. - (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned. - (xd_get_connection_references): Return ptrdiff_t, not int. - All uses changed. - (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal) - (xd_read_message_1): - Use int, not unsigned, where the dbus API uses int. - (Fdbus_message_internal): Don't overflow mtype. - (syms_of_dbusbind): Allocate right-sized buffer for integers. - * dired.c (directory_files_internal, file_name_completion, scmp) - (file_name_completion_stat): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (file_name_completion): Don't overflow matchcount. - (file_name_completion_stat): Use SAFE_ALLOCA, not alloca. - * dispextern.h: Adjust decls to match defn changes elsewhere. - (struct text_pos, struct glyph, struct bidi_saved_info) - (struct bidi_string_data, struct bidi_it, struct composition_it) - (struct it): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (struct display_pos, struct composition_it, struct it): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * dispnew.c (increment_matrix_positions) - (increment_row_positions, mode_line_string) - (marginal_area_string): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (duration_to_sec_usec): New function, to check for overflow better. - (Fsleep_for, sit_for): Use it. - * doc.c (get_doc_string, store_function_docstring): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (get_doc_string, Fsnarf_documentation): - Use int, not EMACS_INT, where int is wide enough. - (get_doc_string): - Use SAFE_ALLOCA, not alloca. - Check for overflow when converting EMACS_INT to off_t. - * doprnt.c (doprnt): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid): - Don't assume uid_t fits into fixnum. - (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field) - (Ffield_string, Ffield_string_no_properties, Ffield_beginning) - (Ffield_end, Fconstrain_to_field, Fline_beginning_position) - (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before) - (general_insert_function) - (Finsert_char, make_buffer_string, make_buffer_string_both) - (update_buffer_properties, Fbuffer_substring) - (Fbuffer_substring_no_properties, Fcompare_buffer_substrings) - (Fsubst_char_in_region, check_translation) - (Ftranslate_region_internal, save_restriction_restore, Fformat) - (transpose_markers, Ftranspose_regions): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (clip_to_bounds): Move to lisp.h as an inline function). - (Fconstrain_to_field): Don't assume integers are nonnegative. - (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer): - (Fsubst_char_in_region, Fsave_restriction): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Femacs_pid): Don't assume pid_t fits into fixnum. - (lo_time): Use int, not EMACS_INT, when int suffices. - (lisp_time_argument): Check for usec out of range. - (Fencode_time): Don't assume fixnum fits in int. - (Fuser_login_name, Fuser_full_name): Signal an error - if a uid argument is out of range, rather than relying on - undefined behavior. - (Fformat_time_string): Remove now-unnecessary check. - lisp_time_argument checks for out-of-range usec now. - Use ptrdiff_t, not size_t, where ptrdiff_t will do. - * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT. - (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT. - (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT. - (init_cmdargs, Fdump_emacs): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Fkill_emacs): Don't assume fixnum fits in int; instead, take just - the bottom (typically) 32 bits of the fixnum. - * eval.c (specpdl_size, call_debugger): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (when_entered_debugger, Fbacktrace_debug): - Don't assume fixnum can fit in int. - (Fdefvaralias, Fdefvar): Do not attempt to compute the address of - the object just before a buffer; this is not portable. - (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda) - (grow_specpdl, unbind_to): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum. - (grow_specpdl): Simplify allocation by using xpalloc. - (Fprog1, Fprog2): Don't assume list length fits in int. Simplify. - * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file) - (Finsert_file_contents, Fwrite_region, Fdo_auto_save): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents) - (a_write, e_write): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fcopy_file, non_regular_nbytes, read_non_regular) - (Finsert_file_contents): - Use int, not EMACS_INT, where int is wide enough. - (READ_BUF_SIZE): Verify that it fits in int. - (Finsert_file_contents): Check that counts are in proper range, - rather than assuming fixnums fit into ptrdiff_t etc. - Don't assume fixnums fit into int. - * floatfns.c (Fexpt): Avoid undefined signed * signed overflow. - * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat) - (string_char_byte_cache_charpos, string_char_byte_cache_bytepos) - (string_char_to_byte, string_byte_to_char) - (string_make_multibyte, string_to_multibyte) - (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte) - (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties) - (substring_both, Fdelete, internal_equal, Ffillarray) - (Fclear_string, mapcar1) - (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1) - (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1) - (larger_vector, make_hash_table, maybe_resize_hash_table) - (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table) - (Fmaphash, secure_hash): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (concat): Check for string index and length overflow. - (Fmapconcat): Don't assume fixnums fit into ptrdiff_t. - (Frequire): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (larger_vector): New API (vec, incr_min, size_max) replaces old - one (vec, new_size, init). This catches size overflow. - INIT was removed because it was always Qnil. - All callers changed. - (INDEX_SIZE_BOUND): New macro, which calculates more precisely - the upper bound on a hash table index size. - (make_hash_table, maybe_resize_hash_table): Use it. - (secure_hash): Computer start_byte and end_byte only after - they're known to be in ptrdiff_t range. - * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring) - (Ffont_get_glyphs, Ffont_at): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (font_style_to_value, font_prop_validate_style, font_expand_wildcards) - (Flist_fonts, Fopen_font): - Don't assume fixnum can fit in int. - (check_gstring): Don't assume index can fit in int. - (font_match_p): Check that fixnum is a character, not a nonnegative - fixnum, since the later code needs to stuff it into an int. - (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca. - (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid - conversion overflow issues. - (Fopen_font): Check for integer out of range. - (Ffont_get_glyphs): Don't assume index can fit in int. - * font.h: Adjust decls to match defn changes elsewhere. - * fontset.c (reorder_font_vector): Redo score calculation to avoid - integer overflow. - (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not - printmax_t, where ptrdiff_t is wide enough. - (Finternal_char_font): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * frame.c (Fset_mouse_position, Fset_mouse_pixel_position) - (Fset_frame_height, Fset_frame_width, Fset_frame_size) - (Fset_frame_position, x_set_frame_parameters) - (x_set_line_spacing, x_set_border_width) - (x_set_internal_border_width, x_set_alpha, x_figure_window_size): - Check that fixnums are in proper range for system types. - (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fmodify_frame_parameters): Don't assume fixnum fits in int. - Use SAFE_ALLOCA_LISP, not alloca. - * frame.h (struct frame): Use intptr_t, not EMACS_INT, where - intptr_t is wide enough. - * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap) - (Fdefine_fringe_bitmap): Don't assume fixnum fits in int. - (Ffringe_bitmaps_at_pos): Don't assume index fits in int. - Check for fixnum out of range. - * ftfont.c (ftfont_list): Don't assume index fits in int. - Check that fixnums are in proper range for system types. - (ftfont_shape_by_flt): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot): - Check that fixnums are in proper range for system types. - * gnutls.h: Adjust decls to match defn changes elsewhere. - * gtkutil.c (xg_dialog_run): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (update_frame_tool_bar): - Check that fixnums are in proper range for system types. - * image.c (parse_image_spec): Redo count calculation to avoid overflow. - (lookup_image): Check that fixnums are in range for system types. - * indent.c (last_known_column, last_known_column_point): - (current_column_bol_cache): - (skip_invisible, current_column, check_display_width): - (check_display_width, scan_for_column, current_column_1) - (Findent_to, Fcurrent_indentation, position_indentation) - (indented_beyond_p, Fmove_to_column, compute_motion): - (Fcompute_motion, Fvertical_motion): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (last_known_column_modified): Use EMACS_INT, not int. - (check_display_width): - (Fcompute_motion): - Check that fixnums and floats are in proper range for system types. - (compute_motion): Don't assume index or fixnum fits in int. - (compute_motion, Fcompute_motion): - Use int, not EMACS_INT, when it is wide enough. - (vmotion): Omit local var start_hpos that is always 0; that way - we don't need to worry about overflow in expressions involving it. - * indent.h: Adjust decls to match defn changes elsewhere. - (struct position): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - Use int, not EMACS_INT, where int is wide enough. - Remove unused members ovstring_chars_done and tab_offset; - all uses removed. - * insdel.c (move_gap, move_gap_both, gap_left, gap_right) - (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point) - (adjust_markers_for_replace, make_gap_larger, make_gap_smaller) - (make_gap, copy_text, insert, insert_and_inherit) - (insert_before_markers, insert_before_markers_and_inherit) - (insert_1, count_combining_before, count_combining_after) - (insert_1_both, insert_from_string) - (insert_from_string_before_markers, insert_from_string_1) - (insert_from_gap, insert_from_buffer, insert_from_buffer_1) - (adjust_after_replace, adjust_after_insert, replace_range) - (replace_range_2, del_range, del_range_1, del_range_byte) - (del_range_both, del_range_2, modify_region) - (prepare_to_modify_buffer, signal_before_change) - (signal_after_change, Fcombine_after_change_execute): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * intervals.c (traverse_intervals, rotate_right, rotate_left) - (balance_an_interval, split_interval_right, split_interval_left) - (find_interval, next_interval, update_interval) - (adjust_intervals_for_insertion, delete_node, delete_interval) - (interval_deletion_adjustment, adjust_intervals_for_deletion) - (static_offset_intervals, offset_intervals) - (merge_interval_right, merge_interval_left, make_new_interval) - (graft_intervals_into_buffer, temp_set_point_both) - (temp_set_point, set_point, adjust_for_invis_intang) - (set_point_both, move_if_not_intangible, get_property_and_range) - (get_local_map, copy_intervals, copy_intervals_to_string) - (compare_string_intervals, set_intervals_multibyte_1): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * intervals.h: Adjust decls to match defn changes elsewhere. - (struct interval): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * keyboard.c (this_command_key_count, this_single_command_key_start) - (before_command_key_count, before_command_echo_length, echo_now) - (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse) - (command_loop_1, safe_run_hooks, read_char, timer_check_2) - (menu_item_eval_property, read_key_sequence, Fread_key_sequence) - (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (last_non_minibuf_size, last_point_position, echo_truncate) - (command_loop_1, adjust_point_for_property, read_char, gen_help_event) - (make_lispy_position, make_lispy_event, parse_modifiers_uncached) - (parse_modifiers, modify_event_symbol, Fexecute_extended_command) - (stuff_buffered_input): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (last_auto_save, command_loop_1, read_char): - Use EMACS_INT, not int, to avoid integer overflow. - (record_char): Avoid overflow in total_keys computation. - (parse_modifiers_uncached): Redo index calculation to avoid overflow. - * keyboard.h: Adjust decls to match defn changes elsewhere. - * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1) - (Fkey_description, Fdescribe_vector, Flookup_key): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (click_position): New function, to check that positions are in range. - (Fcurrent_active_maps): - (describe_command): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Faccessible_keymaps, Fkey_description): - (preferred_sequence_p): - Don't assume fixnum can fit into int. - (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca. - Check for integer overflow in size calculations. - (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to - avoid mishandling large integers. - * lisp.h: Adjust decls to match defn changes elsewhere. - (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String) - (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table) - (struct Lisp_Marker): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (clip_to_bounds): Now an inline function, moved here from editfns.c. - (GLYPH_CODE_P): Check for overflow in system types, subsuming the - need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves. - All callers changed. - (GLYPH_CODE_CHAR, GLYPH_CODE_FACE): - Assume the arg has valid form, since it always does. - (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide - unsigned integer system type. - (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros. - (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum. - (duration_to_sec_usec): New decl. - * lread.c (read_from_string_index, read_from_string_index_byte) - (read_from_string_limit, readchar, unreadchar, openp) - (read_internal_start, read1, oblookup): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fload, readevalloop, Feval_buffer, Feval_region): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (openp): Check for out-of-range argument to 'access'. - (read1): Use int, not EMACS_INT, where int is wide enough. - Don't assume fixnum fits into int. - Fix off-by-one error that can read outside a buffer. - (read_filtered_event): Use duration_to_sec_usec - to do proper overflow checking on durations. - * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow - in size calculation. - (Fexecute_kbd_macro): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * marker.c (cached_charpos, cached_bytepos, CONSIDER) - (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos) - (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted) - (set_marker_both, set_marker_restricted_both, marker_position) - (marker_byte_position, Fbuffer_has_markers_at): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int. - * menu.c (ensure_menu_items): Rename from grow_menu_items. - It now merely ensures that the menu is large enough, without - necessarily growing it, as this avoids some integer overflow issues. - All callers changed. - (keymap_panes, parse_single_submenu, Fx_popup_menu): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int. - Use SAFE_ALLOCA_LISP, not alloca. - (find_and_return_menu_selection): Avoid unnecessary casts of pointers - to EMACS_INT. Check that fixnums are in proper range for system types. - * minibuf.c (minibuf_prompt_width, string_to_object) - (Fminibuffer_contents, Fminibuffer_contents_no_properties) - (Fminibuffer_completion_contents, Ftry_completion, Fall_completions): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (get_minibuffer, read_minibuf_unwind): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil; - this simplifies overflow checking. All callers changed. - (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions) - (Ftest_completion): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long. - (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame): - Check that fixnums are in proper range for system types. - (Fx_create_frame, Fx_show_tip): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * nsfont.m (ns_findfonts, nsfont_list_family): - Don't assume fixnum fits in long. - * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is - wide enough. - * nsselect.m (ns_get_local_selection, clean_local_selection_data): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte) - (PRINTDECLARE, PRINTPREPARE): - (strout, print_string): - (print, print_preprocess, print_check_string_charset_prop) - (print_object): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (PRINTDECLARE): - (temp_output_buffer_setup, Fprin1_to_string, print_object): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough. - (printchar, strout): Use xpalloc to catch size calculation overflow. - (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion. - (print_error_message): Use SAFE_ALLOCA, not alloca. - (print_object): Use int, not EMACS_INT, where int is wide enough. - (print_depth, new_backquote_output, print_number_index): - Use ptrdiff_t, not int, where int might not be wide enough. - * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT. - (Fset_process_window_size, Fformat_network_address) - (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process) - (sigchld_handler): - Check that fixnums are in proper range for system types. - (Fsignal_process): Simplify by avoiding a goto. - Check for process-ids out of pid_t range rather than relying on - undefined behavior. - (process_tick, update_tick): Use EMACS_INT, not int. - (Fformat_network_address, read_process_output, send_process) - (Fprocess_send_region, status_notify): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fformat_network_address, Fmake_serial_process, Fmake_network_process) - (wait_reading_process_output, read_process_output, exec_sentinel): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (conv_lisp_to_sockaddr): Don't assume fixnums fit into int. - (Faccept_process_output): Use duration_to_sec_usec to do proper - overflow checking on durations. - (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal): - Don't assume pid_t fits in int. - * process.h (struct Lisp_Process): Members tick and update_tick - are now of type EMACS_INT, not int. - * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts - configured --with-wide-int. - * scroll.c (calculate_scrolling, calculate_direct_scrolling) - (line_ins_del): Use int, not EMACS_INT, where int is wide enough. - * search.c (looking_at_1, string_match_1): - (fast_string_match, fast_c_string_match_ignore_case) - (fast_string_match_ignore_case, fast_looking_at, scan_buffer) - (scan_newline, find_before_next_newline, search_command) - (trivial_regexp_p, search_buffer, simple_search, boyer_moore) - (set_search_regs, wordify): - (Freplace_match): - (Fmatch_data): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (string_match_1, search_buffer, set_search_regs): - (Fmatch_data): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (wordify): Check for overflow in size calculation. - (Freplace_match): Avoid potential buffer overflow in search_regs.start. - (Fset_match_data): Don't assume fixnum fits in ptrdiff_t. - Check that fixnums are in proper range for system types. - * sound.c (struct sound_device) - (wav_play, au_play, vox_write, alsa_period_size, alsa_write): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fplay_sound_internal): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * syntax.c (struct lisp_parse_state, find_start_modiff) - (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward): - (Fparse_partial_sexp): - Don't assume fixnums can fit in int. - (struct lisp_parse_state, find_start_pos, find_start_value) - (find_start_value_byte, find_start_begv) - (update_syntax_table, char_quoted, dec_bytepos) - (find_defun_start, prev_char_comend_first, back_comment): - (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment) - (scan_lists, Fbackward_prefix_chars, scan_sexps_forward): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Finternal_describe_syntax_value): Check that match_lisp is a - character, not an integer, since the code stuffs it into int. - (scan_words, scan_sexps_forward): - Check that fixnums are in proper range for system types. - (Fforward_word): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (scan_sexps_forward): - Use CHARACTERP, not INTEGERP, since the value must fit into int. - (Fparse_partial_sexp): Fix doc; element 8 is not ignored. - * syntax.h: Adjust decls to match defn changes elsewhere. - (struct gl_state_s): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not - MOST_POSITIVE_FIXNUM. - * sysdep.c (wait_for_termination_1, wait_for_termination) - (interruptible_wait_for_termination, mkdir): - Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit. - (emacs_read, emacs_write): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT, - and double all fit in int. - * term.c (set_tty_color_mode): - Check that fixnums are in proper range for system types. - * termhooks.h (struct input_event): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * textprop.c (validate_interval_range, interval_of) - (Fadd_text_properties, set_text_properties_1) - (Fremove_text_properties, Fremove_list_of_text_properties) - (Ftext_property_any, Ftext_property_not_all) - (copy_text_properties, text_property_list, extend_property_ranges) - (verify_interval_modification): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fnext_single_char_property_change) - (Fprevious_single_char_property_change): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (copy_text_properties): - Check for integer overflow in index calculation. - * undo.c (last_boundary_position, record_point, record_insert) - (record_delete, record_marker_adjustment, record_change) - (record_property_change): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int. - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip) - (Fx_hide_tip, Fx_file_dialog): - * w32menu.c (set_frame_menubar): - Use ptrdiff_t, not int, for consistency with rest of code. - * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos) - (select_window, Fdelete_other_windows_internal) - (window_scroll_pixel_based, window_scroll_line_based) - (Frecenter, Fset_window_configuration): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (Fset_window_hscroll, run_window_configuration_change_hook) - (set_window_buffer, temp_output_buffer_show, scroll_command) - (Fscroll_other_window, Frecenter): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right): - Don't assume fixnum fits in int. - (Fset_window_scroll_bars): - Check that fixnums are in proper range for system types. - * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead) - (string_pos, c_string_pos, number_of_chars, init_iterator) - (in_ellipses_for_invisible_text_p, init_from_display_pos) - (compute_stop_pos, next_overlay_change, compute_display_string_pos) - (compute_display_string_end, handle_face_prop) - (face_before_or_after_it_pos, handle_invisible_prop) - (handle_display_prop, handle_display_spec, handle_single_display_spec) - (display_prop_intangible_p, string_buffer_position_lim) - (string_buffer_position, handle_composition_prop, load_overlay_strings) - (get_overlay_strings_1, get_overlay_strings) - (iterate_out_of_display_property, forward_to_next_line_start) - (back_to_previous_visible_line_start, reseat, reseat_to_string) - (get_next_display_element, set_iterator_to_next) - (get_visually_first_element, compute_stop_pos_backwards) - (handle_stop_backwards, next_element_from_buffer) - (move_it_in_display_line_to, move_it_in_display_line) - (move_it_to, move_it_vertically_backward, move_it_by_lines) - (add_to_log, message_dolog, message_log_check_duplicate) - (message2, message2_nolog, message3, message3_nolog - (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1) - (current_message_1, truncate_echo_area, truncate_message_1) - (set_message, set_message_1, store_mode_line_noprop) - (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos) - (text_outside_line_unchanged_p, check_point_in_composition) - (reconsider_clip_changes) - (redisplay_internal, set_cursor_from_row, try_scrolling) - (try_cursor_movement, set_vertical_scroll_bar, redisplay_window) - (redisplay_window, find_last_unchanged_at_beg_row) - (find_first_unchanged_at_end_row, row_containing_pos, try_window_id) - (trailing_whitespace_p, find_row_edges, display_line) - (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction) - (display_mode_element, store_mode_line_string) - (pint2str, pint2hrstr, decode_mode_spec) - (display_count_lines, display_string, draw_glyphs) - (x_produce_glyphs, x_insert_glyphs) - (rows_from_pos_range, mouse_face_from_buffer_pos) - (fast_find_string_pos, mouse_face_from_string_pos) - (note_mode_line_or_margin_highlight, note_mouse_highlight): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (safe_call, init_from_display_pos, handle_fontified_prop) - (handle_single_display_spec, load_overlay_strings) - (with_echo_area_buffer, setup_echo_area_for_printing) - (display_echo_area, echo_area_display) - (x_consider_frame_title, prepare_menu_bars, update_menu_bar) - (update_tool_bar, hscroll_window_tree, redisplay_internal) - (redisplay_window, dump_glyph_row, display_mode_line) - (Fformat_mode_line, decode_mode_spec, on_hot_spot_p): - (handle_display_spec, display_prop_string_p): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (handle_single_display_spec, build_desired_tool_bar_string) - (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix) - (get_specified_cursor_type): - Check that fixnums are in proper range for system types. - (struct overlay_entry, resize_mini_window, Fdump_glyph_row) - (Flookup_image_map): - Don't assume fixnums fit in int. - (compare_overlay_entries): - Avoid mishandling comparisons due to subtraction overflow. - (load_overlay_strings): Use SAFE_NALLOCA, not alloca. - (last_escape_glyph_face_id, last_glyphless_glyph_face_id): - (handle_tool_bar_click): - Use int, not unsigned, since we prefer signed and the signedness - doesn't matter here. - (get_next_display_element, next_element_from_display_vector): - Use int, not EMACS_INT, when int is wide enough. - (start_hourglass): Use duration_to_sec_usec to do proper - overflow checking on durations. - * xfaces.c (Fbitmap_spec_p): - Check that fixnums are in proper range for system types. - (compare_fonts_by_sort_order): - Avoid mishandling comparisons due to subtraction overflow. - (Fx_family_fonts, realize_basic_faces): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Fx_family_fonts): - Don't assume fixnum fits in int. - Use SAFE_ALLOCA_LISP, not alloca. - (merge_face_heights): Remove unnecessary cast to EMACS_INT. - (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID. - (face_at_buffer_position, face_for_overlay_string) - (face_at_string_position): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - (merge_faces): Use int, not EMACS_INT, where int is wide enough. - * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify) - (Fx_show_tip): - Check that fixnums are in proper range for system types. - (Fx_create_frame, x_create_tip_frame, Fx_show_tip) - (Fx_hide_tip, Fx_file_dialog, Fx_select_font): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (Fx_change_window_property): Don't assume fixnums fit in int. - * xfont.c (xfont_chars_supported): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * xmenu.c (Fx_popup_dialog, set_frame_menubar) - (create_and_show_popup_menu, create_and_show_dialog, xmenu_show): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * xml.c (parse_region): - * xrdb.c (magic_file_p): - Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. - * xselect.c (TRACE1): Don't assume pid_t promotes to int. - (x_get_local_selection, x_reply_selection_request) - (x_handle_selection_request, wait_for_property_change): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - (selection_data_to_lisp_data): Use short, not EMACS_INT, where - short is wide enough. - (x_send_client_event): Don't assume fixnum fits in int. - * xterm.c (x_x_to_emacs_modifiers): - Don't assume EMACS_INT overflows nicely into int. - (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values - may come from Lisp. - (handle_one_xevent): NATNUMP can eval its arg twice. - (x_connection_closed): - Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. - * xterm.h: Adjust decls to match defn changes elsewhere. - (struct scroll_bar): Use struct vectorlike_header - rather than rolling our own approximation. - (SCROLL_BAR_VEC_SIZE): Remove; not used. - -2012-05-25 Glenn Morris - - * lisp.mk (lisp): Update for more files being compiled now. - -2012-05-25 Stefan Monnier - - * lread.c: Remove `read_pure' which makes no difference. - (read_pure): Remove var. - (unreadpure): Remove function. - (readevalloop): Don't call read_list with -1 flag. - (read1, read_vector): Don't test read_pure any more. - (read_list): Simplify. - - * fileio.c, character.h: Minor style tweaks. - -2012-05-24 Dmitry Antipov - - * window.h (clip_changed): Remove useless declaration. - -2012-05-22 Juanma Barranquero - - * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu. - (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h. - -2012-05-22 Paul Eggert - - Remove src/m/*. - This directory predates autoconf and is no longer needed nowadays. - Move its few remaining bits of functionality to where they're needed. - * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h: - * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h: - * m/template.h: Remove. - * Makefile.in (M_FILE): Remove. All uses removed. - * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): - * lisp.h (USE_LSB_TAG): - * mem-limits.h (EXCEEDS_LISP_PTR): - Use VAL_MAX, not VALBITS, in #if. - * lisp.h (EMACS_INT_MAX): New macro, useful in #if. - (EMACS_UINT): Define unconditionally now. - (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG) - (BITS_PER_EMACS_INT): New constants, replacing - what used to be in config.h, but not useful in #if. - (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't - define them any more. - (VAL_MAX): New macro. - (VALMASK): Use it. - * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not - BITS_PER_EMACS_INT, in #if. - * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY) - (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed. - * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]: - * s/ms-w32.h (DATA_START): - Move here from removed file m/intel386.h. - * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this. - * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this. - -2012-05-21 Paul Eggert - - Assume C89 or later. - * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void. - * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc) - (xrealloc): - * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts. - * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL): - * textprop.c, tparam.c (NULL): Remove. - * ralloc.c, vm-limit.c (POINTER): Assume void * works. - * regex.c (SIGN_EXTEND_CHAR): Assume signed char works. - * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes. - * unexelf.c (ElfBitsW): Assume c89 preprocessor or better. - * xterm.c (input_signal_count): Assume volatile works. - -2012-05-21 Ken Brown - - * xgselect.c (xg_select): Fix first argument in call to 'select' - (bug#11508). - -2012-05-20 Ken Brown - - * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock) - [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase. - -2012-05-19 Ken Brown - - * xfns.c (x_in_use): Remove `static' qualifier. - * xterm.h (x_in_use): Declare. - * xgselect.c: Include xterm.h. - (xg_select): Test `x_in_use' instead of `inhibit_window_system' - and `display_arg' (bug#9754). - -2012-05-19 Paul Eggert - - * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed. - - * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed. - * s/ms-w32.h (HAVE_FTIME): Remove; not needed. - -2012-05-18 Eli Zaretskii - - Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows. - - * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font. - (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c. - - * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken - reference to image_cache->refcount. - (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE. - -2012-05-17 Juri Linkov - - * search.c (Fword_search_regexp, Fword_search_backward) - (Fword_search_forward, Fword_search_backward_lax) - (Fword_search_forward_lax): Move functions to isearch.el - (bug#10145, bug#11381). - -2012-05-16 Paul Eggert - - * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754). - -2012-05-15 Stefan Monnier - - * lread.c (init_obarray): Declare Qt and Qnil as special. - -2012-05-14 Glenn Morris - - * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec"). - Put "libexec" before "bin", for the sake of init_callproc_1. - -2012-05-14 Paul Eggert - - * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local. - - * unexaix.c: Port to more-recent AIX compilers. - (report_error, report_error_1, make_hdr, copy_sym) - (mark_x, adjust_lnnoptrs, unrelocate_symbols): - Make arguments const char *, not char *, to avoid violations of C - standard and to fix some AIX warnings reported by Gilles Pion. - -2012-05-14 Eli Zaretskii - - * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we - already have overlays loaded. - (handle_single_display_spec): Before returning without displaying - fringe bitmap, synchronize the bidi iterator with the main display - iterator, by calling iterate_out_of_display_property. - (iterate_out_of_display_property): Detect buffer iteration by - testing that it->string is a Lisp string. - (get_next_display_element): When the current object is exhausted, - and there's something on it->stack, call set_iterator_to_next to - proceed with what's on the stack, instead of returning zero. - (set_iterator_to_next): If called at the end of a Lisp string, - proceed to consider_string_end without incrementing string - position. Don't increment display vector index past the end of - the display vector. (Bug#11417) - (pos_visible_p): Don't report a position visible when move_it_to - stopped at the last line of window, which happens to be scanned - backwards by the bidi iteration. (Bug#11464) - -2012-05-14 Eli Zaretskii - - * xdisp.c (handle_single_display_spec): Return 1 for left-margin - and right-margin display specs even if the spec is invalid or we - are on a TTY, and thus unable to display on the fringes. - That's because the text with the property will not be displayed anyway, - so we need to signal to the caller that this is a "replacing" - display spec. This fixes display when the spec is invalid or we - are on a TTY. - -2012-05-14 Paul Eggert - - * unexaix.c (make_hdr): Fix typo in prototype. - This bug broke the build on AIX. Problem reported by Gilles Pion. - -2012-05-14 Michael Albinus - - * keyboard.c (kbd_buffer_get_event): Read special events also in - batch mode. (Bug#11415) - -2012-05-12 Glenn Morris - - * ns.mk: Update for ns_appbindir no longer having trailing "/". - -2012-05-12 Eli Zaretskii - - * lisp.mk (lisp): Add newcomment.elc. - -2012-05-12 Glenn Morris - - * Makefile.in (MKDIR_P): New, set by configure. - * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P. - -2012-05-11 Paul Eggert - - Remove unused function hourglass_started. - * dispextern.h (hourglass_started): - * w32fns.c (hourglass_started): - * xdisp.c (hourglass_started): Remove. - -2012-05-10 Juanma Barranquero - - * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)): - Update dependencies. - -2012-05-10 Paul Eggert - - * xgselect.c (xg_select): Put maxfds+1 into a var. - This is slightly clearer, and pacifies Ubuntu 12.04 gcc. - - * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA. - -2012-05-10 Dave Abrahams - - * filelock.c (syms_of_filelock): New boolean create-lockfiles. - (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227) - -2012-05-09 Michael Albinus - - * dbusbind.c (xd_registered_buses): New internal Lisp object. - Rename all occurences of Vdbus_registered_buses to xd_registered_buses. - (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses. - Initialize xd_registered_buses. - -2012-05-09 Paul Eggert - - Untag more efficiently if USE_LSB_TAG. - This is based on a proposal by YAMAMOTO Mitsuharu in - . - For an admittedly artificial (nth 8000 longlist) benchmark on - Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks - Emacs's overall text size by 1%. - * lisp.h (XUNTAG): New macro. - (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW) - (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR) - (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it. - * eval.c (Fautoload): - * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT): - * frame.h (XFRAME): Use XUNTAG. - - Port recent dbusbind.c changes to 32-bit --with-wide-int. - * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal): - Remove unportable assumptions about print widths of types like - dbus_uint32_t. - (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to - intptr_t when converting between pointer and integer, to avoid GCC - warnings about wrong width. - -2012-05-09 Eli Zaretskii - - * w32proc.c (new_child): Force Windows to reserve only 64KB of - stack for each reader_thread, instead of defaulting to 8MB - determined by the linker. This avoids failures in creating - subprocesses on Windows 7, see the discussion in this thread: - http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html. - -2012-05-07 Jérémy Compostella - - Fix up display of the *Minibuf-0* buffer in the mini window. - * keyboard.c (read_char): Don't clear the echo area if there's no - message to clear. - * xdisp.c (redisplay_internal): Redisplay the mini window (with the - contents of *Minibuf-0*) if there's no message displayed in its stead. - -2012-05-07 Michael Albinus - - * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in - batch mode. - -2012-05-06 Chong Yidong - - * lisp.mk (lisp): Update. - -2012-05-05 Jim Meyering - - * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372). - -2012-05-04 Stefan Monnier - - * data.c (PUT_ERROR): New macro. - (syms_of_data): Use it. Add new error type `user-error'. - * undo.c (user_error): New function. - (Fprimitive_undo): Use it. - * print.c (print_error_message): Adjust print style for `user-error'. - * keyboard.c (user_error): New function. - (Fexit_recursive_edit, Fabort_recursive_edit): Use it. - -2012-05-03 Paul Eggert - - Do not limit current-time-string to years 1000..9999. - * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove. - (Fcurrent_time_string): Support any year that is supported by the - underlying localtime representation. Don't use asctime, as it - has undefined behavior for years outside the range -999..9999. - -2012-05-02 Paul Eggert - - Fix race conditions involving setenv, gmtime, localtime, asctime. - Without this fix, interrupts could mess up code that uses these - nonreentrant functions, since setting TZ invalidates existing - tm_zone or tzname values, and since most of these functions return - pointers to static storage. - * editfns.c (format_time_string, Fdecode_time, Fencode_time) - (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule): - Grow the critical sections to include not just invoking - localtime/gmtime, but also accessing these functions' results - including their tm_zone values if any, and any related TZ setting. - (format_time_string): Last arg is now struct tm *, not struct tm **, - so that the struct tm is saved in the critical section. - All callers changed. Simplify allocation of initial buffer, partly - motivated by the fact that memory allocation needs to be outside - the critical section. - -2012-05-02 Dmitry Antipov - - * intervals.c (adjust_intervals_for_insertion): Initialize `newi' - with RESET_INTERVAL. - - * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): - Remove duplicated buffer name initialization. - -2012-05-02 Jim Meyering - - * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373). - - * xfns.c (x_window): Use xstrdup (Bug#11375). - -2012-05-02 Eli Zaretskii - - * xdisp.c (pos_visible_p): If already at a newline from the - display string before the 'while' loop, don't walk back the glyphs - from it3.glyph_row. Solves assertion violation when the display - string begins with a newline (egg.el). (Bug#11367) - -2012-05-01 Stefan Monnier - - * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings): - Move to simple.el. - -2012-05-01 Glenn Morris - - * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in - s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h), - and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10). - All were removed before 23.1. - - * dispnew.c: Remove HAVE_LIBNCURSES test; - it is always true on relevant platforms. - - * Makefile.in (LD_SWITCH_X_SITE_RPATH): - Rename from LD_SWITCH_X_SITE_AUX_RPATH. - - * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used. - -2012-04-30 Andreas Schwab - - * .gdbinit (xpr): Remove checks for no longer existing misc types. - (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal): - Remove. - -2012-04-28 Paul Eggert - - Do not avoid creating empty evaporating overlays (Bug#9642). - * buffer.c (Fmove_overlay): Revert the change of 2012-04-23. - That is, do not delete an evaporating overlay if it becomes - empty after its bounds are adjusted to fit within its buffer. - This fix caused other problems, and I'm reverting it until we get - to the bottom of them. - -2012-04-27 Chong Yidong - - * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315). - -2012-04-27 Eli Zaretskii - - * xdisp.c (pos_visible_p): If the window start position is beyond - ZV, start the display from buffer beginning. Prevents assertion - violation in init_iterator when the minibuffer window is scrolled - via the scroll bar. - - * window.c (window_scroll_pixel_based): Likewise. - -2012-04-27 Chong Yidong - - * keymap.c (where_is_internal): Doc fix (Bug#10872). - -2012-04-27 Glenn Morris - - * fileio.c (Fcopy_file, Fset_file_selinux_context): - Ignore ENOTSUP failures from setfilecon functions. (Bug#11245) - -2012-04-27 Eli Zaretskii - - * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): - Don't overrun array limits of glyph row's used[] array. (Bug#11288) - -2012-04-26 Eli Zaretskii - - * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded - display element, check also the underlying string or buffer - character. (Bug#11341) - - * w32menu.c: Include w32heap.h. - (add_menu_item): If the call to AppendMenuW (via - unicode_append_menu) fails, disable Unicode menus only if we are - running on Windows 9X/Me. - -2012-04-24 Andreas Schwab - - * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS. - (xgetint): Add missing shift for LSB tags. - -2012-04-24 Martin Rudalics - - * keyboard.c (read_char): Don't wipe echo area for select window - events: These might get delayed via `mouse-autoselect-window' - (Bug#11304). - -2012-04-24 Juanma Barranquero - - * gnutls.c (init_gnutls_functions): Protect against (unlikely) - manipulation of :loaded-from data. - -2012-04-23 Juanma Barranquero - - * gnutls.c (init_gnutls_functions): The value of :loaded-from is - now a cons (bug#11311). - -2012-04-23 Paul Eggert - - Do not create empty overlays with the evaporate property (Bug#9642). - * buffer.c (Fmove_overlay): Delete an evaporating overlay - if it becomes empty after its bounds are adjusted to fit within - its buffer. Without this fix, in a nonempty buffer (let ((o - (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1)) - yields an empty overlay that has the evaporate property, which is - not supposed to happen. - - Fix minor GTK3 problems found by static checking. - * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed) - (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed) - (struct _EmacsFixedClass, emacs_fixed_get_type): - Move decls here from emacsgtkfixed.h, since they needn't be public. - (emacs_fixed_get_type): Now static. - (emacs_fixed_class_init): Omit unused local. - (emacs_fixed_child_type): Remove; unused. - * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed) - (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed) - (struct _EmacsFixedClass): Move to emacsgtkfixed.c. - (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS) - (EMACS_FIXED_GET_CLASS): Remove; unused. - * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local. - - * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO. - Problem reported by Juanma Barranquero for Windows -Wunused-function. - -2012-04-22 Paul Eggert - - Modernize and clean up gmalloc.c to assume C89 (Bug#9119). - * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t) - (__malloc_size_t, __malloc_ptrdiff_t): - Remove. All uses removed, replaced by the definiens if needed, - since we can assume C89 or better now. - Include , for PTRDIFF_MAX, uintptr_t. - (protect_malloc_state, align, get_contiguous_space) - (malloc_atfork_handler_prepare, malloc_atfork_handler_parent) - (malloc_atfork_handler_child, malloc_enable_thread) - (malloc_initialize_1, __malloc_initialize, morecore_nolock) - (_malloc_internal_nolock, _malloc_internal, malloc, _malloc) - (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree) - (special_realloc, _realloc_internal_nolock, _realloc_internal) - (realloc, calloc, __default_morecore, memalign, valloc, checkhdr) - (freehook, mallochook, reallochook, mabort, mcheck, mprobe): - Define using prototypes, not old style. - (align, _malloc_internal_nolock, _free_internal_nolock, memalign): - Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long. - (align): Don't assume that signed integer overflow wraps around. - Omit unused local var. - (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock) - (_free_internal_nolock, memalign, mallochook, reallochook): - Omit no-longer-needed casts. - (valloc): Use getpagesize, not __getpagesize. - (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit. - (struct hdr): The 'magic' member is now size_t, not unsigned long. - - * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed. - -2012-04-22 Michael Albinus - - Move functions from C to Lisp. Make non-blocking method calls - the default. Implement further D-Bus standard interfaces. - - * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare. - (QCdbus_request_name_allow_replacement) - (QCdbus_request_name_replace_existing) - (QCdbus_request_name_do_not_queue) - (QCdbus_request_name_reply_primary_owner) - (QCdbus_request_name_reply_in_queue) - (QCdbus_request_name_reply_exists) - (QCdbus_request_name_reply_already_owner): Move to dbus.el. - (QCdbus_registered_serial, QCdbus_registered_method) - (QCdbus_registered_signal): New Lisp objects. - (XD_DEBUG_MESSAGE): Use sizeof. - (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING) - (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT) - (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH) - (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros. - (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL. - (xd_signature, xd_append_arg): Allow float for integer types. - (xd_get_connection_references): New function. - (xd_get_connection_address): Rename from xd_initialize. - Return cached address. - (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS. - (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp - level. - (Fdbus_init_bus): New optional arg PRIVATE. Cache address. - Return number of refcounts. - (Fdbus_get_unique_name): Make stronger parameter check. - (Fdbus_message_internal): New defun. - (Fdbus_call_method, Fdbus_call_method_asynchronously) - (Fdbus_method_return_internal, Fdbus_method_error_internal) - (Fdbus_send_signal, Fdbus_register_service) - (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el. - (xd_read_message_1): Obey new structure of Vdbus_registered_objects. - (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses. - (Vdbus_compiled_version, Vdbus_runtime_version) - (Vdbus_message_type_invalid, Vdbus_message_type_method_call) - (Vdbus_message_type_method_return, Vdbus_message_type_error) - (Vdbus_message_type_signal): New defvars. - (Vdbus_registered_buses, Vdbus_registered_objects_table): - Adapt docstring. - -2012-04-22 Paul Eggert - - Fix GC_MALLOC_CHECK debugging output on 64-bit hosts. - * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]: - Do not assume ptrdiff_t is the same width as 'int'. - - * alloc.c: Handle unusual debugging option combinations. - (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK, - since the two debugging options are incompatible. - (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS - is defined. - (mem_init, mem_insert, mem_insert_fixup): - Define if GC_MARK_STACK || GC_MALLOC_CHECK. - (NEED_MEM_INSERT): Remove; no longer needed. - -2012-04-22 Leo Liu - - * sysdep.c (list_system_processes): Support Darwin (Bug#5725). - -2012-04-22 Paul Eggert - - * sysdep.c [__FreeBSD__]: Minor cleanups. - (list_system_processes, system_process_attributes) [__FreeBSD__]: - Use Emacs indenting style more consistently. Avoid some casts. - Use 'double' consistently rather than mixing 'float' and 'double'. - -2012-04-21 Eduard Wiebe - - * sysdep.c (list_system_processes, system_process_attributes): - Add implementation for FreeBSD (Bug#5243). - -2012-04-21 Andreas Schwab - - * lisp.mk (lisp): Update. - -2012-04-20 Paul Eggert - - * keyboard.c (process_pending_signals): Define only if SYNC_INPUT. - It is never used otherwise. - -2012-04-20 Stefan Monnier - - * print.c (print_preprocess): Only check print_depth if print-circle - is nil. - (print_object): Check for cycles even when print-circle is nil and - print-gensym is t, but only check print_depth if print-circle is nil. - -2012-04-20 Chong Yidong - - * process.c (wait_reading_process_output): If EIO occurs on a pty, - set the status to "failed" and ensure that sentinel is run. - -2012-04-20 Glenn Morris - - * process.c (Fset_process_inherit_coding_system_flag) - (Fset_process_query_on_exit_flag): Doc fix (mention return value). - (Fmake_network_process, Fmake_serial_process): Doc fix. - -2012-04-20 Eli Zaretskii - - * xdisp.c (string_buffer_position_lim): Limit starting position to - BEGV. - (set_cursor_from_row): If called for a mode-line or header-line - row, return zero immediately. - (try_cursor_movement): If inside continuation line, don't back up - farther than the first row after the header line, if any. - Don't consider the header-line row as "partially visible", even if - MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261) - -2012-04-20 Atsuo Ohki (tiny change) - - * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n" - (bug#11238). - -2012-04-20 Teodor Zlatanov -2012-04-18 Paul Eggert - - configure: new option --enable-gcc-warnings (Bug#11207) - * Makefile.in (C_WARNINGS_SWITCH): Remove. - (WARN_CFLAGS, WERROR_CFLAGS): New macros. - (ALL_CFLAGS): Use new macros rather than old. - * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904. - * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore - -Wunused-but-set-variable, -Wunused-function, -Wunused-macros, - -Wunused-result, -Wunused-variable. This should go away once - the Emacs and Gnulib regex code is merged. - (xmalloc, xrealloc): Now static. - -2012-04-17 Paul Eggert - - * dired.c (Fsystem_groups): Remove unused local. - -2012-04-17 Glenn Morris - - * dired.c (Fsystem_users): Doc fix. - -2012-04-17 Dmitry Antipov - - * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900) - (syms_of_dired): Add them. - -2012-04-16 Paul Eggert - - Fix minor alloc.c problems found by static checking. - * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]: - New extern decls, to avoid calling undeclared functions. - (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT) - && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined - GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used. - (NEED_MEM_INSERT): New macro. - (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused. - Remove one incorrect comment and fix another. - - Fix minor ralloc.c problems found by static checking. - See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html - * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE) - (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused. - (r_alloc_sbrk): Now static. - - Improve ralloc.c interface checking. - See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html - * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc) - (r_alloc_free) [REL_ALLOC]: Move decls from here ... - * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable) - [REL_ALLOC]: ... to here, to check interface. - * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]: - Remove decls. This fixes an "It stinks!". - - * alloc.c (which_symbols): Fix alignment issue / type clash. - -2012-04-15 Andreas Schwab - - * lisp.h (struct Lisp_Symbol): Remove explicit padding. - (struct Lisp_Misc_Any): Likewise. - (struct Lisp_Free): Likewise. - * alloc.c (union aligned_Lisp_Symbol): Define. - (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union - aligned_Lisp_Symbol instead of struct Lisp_Symbol. - (union aligned_Lisp_Misc): Define. - (MARKER_BLOCK_SIZE, struct marker_block): Use union - aligned_Lisp_Misc instead of union Lisp_Misc. - (Fmake_symbol, allocate_misc, gc_sweep): Adjust. - -2012-04-14 Paul Eggert - - Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926). - * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS. - * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h: - * s/netbsd.h, s/sol2-6.h: - Remove definition of GC_MARK_STACK, since the default now works. - * s/aix4-2.h, s/hpux10-20.h, s/unixware.h: - Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's - no longer the default. - * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default. - -2012-04-14 Atsuo Ohki (tiny change) - - * lread.c (lisp_file_lexically_bound_p): - Fix hang at ";-*-\n" (bug#11238). - -2012-04-14 Eli Zaretskii - - * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row - "unchanged" if its end.pos is beyond ZV. (Bug#11199) - -2012-04-14 Jan Djärv - - * nsterm.m (constrainFrameRect): Always constrain when there is only - one screen (Bug#10962). - -2012-04-13 Ken Brown - - * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor. - -2012-04-13 Reuben Thomas - - * indent.c (Fmove_to_column): Change interactive spec (Bug#739). - -2012-04-11 Daniel Colascione - - * s/cygwin.h: The vfork the #define in cygwin.h was protecting - against is gone. It's better to use vfork now so that when Cygwin - gains a new, working vfork, we use it automatically (bug#10398). - -2012-04-11 Stefan Monnier - - * window.c (save_window_save): Obey window-point-insertion-type. - -2012-04-11 Glenn Morris - - * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM. - -2012-04-11 Stefan Monnier - - * alloc.c (lisp_align_malloc): Remove unneeded prototype. - -2012-04-10 Jason S. Cornez (tiny change) - - * keyboard.c: Override inhibit-quit after the third C-g (bug#6585). - (force_quit_count): New var. - (handle_interrupt): Use it. - -2012-04-10 Juanma Barranquero - - * w32.c (w32_delayed_load): Record the full path of the library - being loaded (bug#10424). - -2012-04-09 Glenn Morris - - * doc.c (Fsnarf_documentation): Check variables, functions are bound, - not just in the obarray, before snarfing them. (Bug#11036) - - * Makefile.in ($(leimdir)/leim-list.el): - Pass EMACS rather than BUILT_EMACS. - -2012-04-09 Teodor Zlatanov - - * process.c (make_process): - * process.h: Add integer `gnutls_handshakes_tried' member to - process struct. - - * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. - Add convenience `GNUTLS_LOG2i' macro. - - * gnutls.c (gnutls_log_function2i): Convenience log function. - (emacs_gnutls_read): Use new log functions, - `gnutls_handshakes_tried' process member, and - `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake - attempts per process (connection). - -2012-04-09 Chong Yidong - - * eval.c (Fuser_variable_p, user_variable_p_eh) - (lisp_indirect_variable): Functions deleted. - (Fdefvar): Caller changed. - - * callint.c (Finteractive, Fcall_interactively): - * minibuf.c (Fread_variable): Callers changed. - -2012-04-09 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): If the display string appears in - the buffer at position that is closer to point than the position - after the display string, display the cursor on the first glyph of - the display string. Fixes cursor display when a 'display' text - property immediately follows invisible text. (Bug#11094) - -2012-04-09 Paul Eggert - - composite.c: use 'double' consistently - * composite.c (get_composition_id): Use 'double' consistently - instead of converting 'float' to 'double' and vice versa; this is - easier to understand and avoids a GCC warning. - -2012-04-09 Glenn Morris - - * Makefile.in: Generate leim-list with bootstrap-emacs, in - preparation for dumping it with emacs. (Bug#4789) - (leimdir): New variable. - ($(leimdir)/leim-list.el): New rule. - (emacs$(EXEEXT)): Depend on leim-list.el. - - * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821) - (Fget_buffer_create): Don't call Qucs_set_table_for_input. - (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input. - -2012-04-08 Andreas Schwab - - * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure - proper alignment. - -2012-04-07 Juanma Barranquero - - * xml.c (init_libxml2_functions) [WINDOWSNT]: - Remove unused local variable. - -2012-04-07 Paul Eggert - - Avoid unnecessary pointer scanning in garbage collection (Bug#10780). - * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro. - (mark_memory): Mark Lisp_Objects only if pointers might hide in - objects, as mark_maybe_pointer will catch them otherwise. - (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed. - * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise. - -2012-04-07 Paul Eggert - - Fix typo that broke non-Windows builds. - * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'. - -2012-04-07 Eli Zaretskii - - Support building on MS-Windows with libxml2. - - * makefile.w32-in (OBJ2): Add xml.$(O). - (GLOBAL_SOURCES): Add xml.c. - ($(BLD)/xml.$(O)): New dependency list. - - * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros. - (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement) - (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion) - [!WINDOWSNT]: New macros. - (init_libxml2_functions, libxml2_loaded_p): New functions. - (parse_region): Call fn_xmlCheckVersion instead of using the macro - LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros. - (xml_cleanup_parser): New function, export for fn_xmlCleanupParser. - Calls xmlCleanupParser only if libxml2 was loaded (or statically - linked in). - (Flibxml_parse_html_region, Flibxml_parse_xml_region): - Call init_libxml2_functions before calling libxml2 functions. - (syms_of_xml) : DEFSYM it. - - * emacs.c: Don't include libxml/parser.h. - (shut_down_emacs): Call xml_cleanup_parser, instead of calling - xmlCleanupParser directly. - - * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser. - -2012-04-07 Eli Zaretskii - - * indent.c (Fvertical_motion): If there is a display string at - point, use it.vpos to compute how many lines to backtrack after - move_it_to point. (Bug#11133) - -2012-04-06 Eli Zaretskii - - * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR): - * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments - about subtle differences between FETCH_CHAR* and STRING_CHAR* - macros related to unification of CJK characters. For the details, - see the discussion following the message here: - http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14. - -2012-04-04 Chong Yidong - - * keyboard.c (Vdelayed_warnings_list): Doc fix. - -2012-04-01 Eli Zaretskii - - * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA - instead of alloca. (Bug#11138) - -2012-04-01 Andreas Schwab - - * w32menu.c (is_simple_dialog): Properly check lisp types. - (Bug#11141) - -2012-03-31 Eli Zaretskii - - * xdisp.c (move_it_by_lines): When DVPOS is positive, and the - position we get to after a call to move_it_to fails the - IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position - only if we wind up in a string from display property. (Bug#11063) - - * window.c (Fdelete_other_windows_internal): Invalidate the row - and column information about mouse highlight, so that redisplay - restores it after reallocating the glyph matrices. (Bug#7464) - - * xdisp.c (set_cursor_from_row): If `cursor' property on a display - string comes from a `display' text property, use the buffer - position of that property as if we actually saw that position in - the row's glyphs. - (move_it_by_lines): Remove the assertion that - "it->current_x == 0 && it->hpos == 0" which can be legitimately - violated when there's a before-string at the beginning of a line. - (Bug#11063) - -2012-03-30 Eli Zaretskii - - * xdisp.c (append_space_for_newline): If the default face was - remapped, use the remapped face for the appended newline. - (extend_face_to_end_of_line): Use the remapped default face for - extending the face to the end of the line. - (display_line): Call extend_face_to_end_of_line when the default - face was remapped. (Bug#11068) - -2012-03-29 Eli Zaretskii - - * s/ms-w32.h: Discourage from defining HAVE_GETCWD. - -2012-03-28 Stefan Monnier - - * keyboard.c (safe_run_hooks_error): Don't unquote strings. - -2012-03-27 Glenn Morris - - * search.c (Fword_search_backward_lax, Fword_search_forward_lax): - Doc fixes. - -2012-03-26 Kenichi Handa - - * dispextern.h (struct glyph): Fix previous change. Change the - bit length of glyphless.ch to 25 (Bug#11082). - -2012-03-26 Chong Yidong - - * keyboard.c (Vselection_inhibit_update_commands): New variable. - (command_loop_1): Use it; inhibit selection update for - handle-select-window too (Bug#8996). - -2012-03-25 Fabrice Popineau - - * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code. - -2012-03-25 Kenichi Handa - - * dispextern.h (struct glyph): Change the bit length of - glyphless.ch to 22 to make the member glyphless fit in 32 bits. - -2012-03-24 Eli Zaretskii - - * s/ms-w32.h (tzname): Include time.h before redirecting to - _tzname. Fixes the MSVC build. (Bug#9960) - -2012-03-24 Andreas Schwab - - * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6 - characters. - - * xterm.c (XTread_socket): Only modify handling_signal if - !SYNC_INPUT. (Bug#11080) - -2012-03-23 Eli Zaretskii - - * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of - FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes - when fetching a multibyte character consumes more bytes than - CHAR_BYTES returns, due to unification of CJK characters in - string_char. (Bug#11073) - -2012-03-23 Troels Nielsen (tiny change) - - * process.c (wait_reading_process_output): Handle pty disconnect - by refraining from sending oneself a SIGCHLD (bug#10933). - -2012-03-22 Chong Yidong - - * dispextern.h (struct it): New member string_from_prefix_prop_p. - - * xdisp.c (push_prefix_prop): Rename from push_display_prop. - Mark string as coming from a prefix property. - (handle_face_prop): Use default face for prefix strings (Bug#4281). - (pop_it, reseat_1): Save and restore string_from_prefix_prop_p. - -2012-03-21 Chong Yidong - - * xfaces.c (Vface_remapping_alist): Doc fix. - -2012-03-20 Eli Zaretskii - - * w32proc.c (Fw32_set_console_codepage) - (Fw32_set_console_output_codepage, Fw32_get_codepage_charset): - Doc fixes. - -2012-03-20 Chong Yidong - - * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc - to reflect default non-nil value of redisplay-dont-pause. - -2012-03-19 Kenichi Handa - - * ftfont.c (ftfont_drive_otf): Mask bits of character code to make - it fit in a valid range (Bug#11003). - -2012-03-18 Eli Zaretskii - - * xdisp.c (cursor_row_p): Even if the glyph row ends in a string - that is not from display property, accept the row as a "cursor - row" if one of the string's character has a non-nil `cursor' - property. Fixes cursor positioning when there are newlines in - overlay strings, e.g. in icomplete.el. (Bug#11035) - -2012-03-12 Paul Eggert - - * buffer.c (compare_overlays): Don't assume args differ (Bug#6830). - -2012-03-12 Chong Yidong - - * eval.c (inhibit_lisp_code): Rename from - inhibit_window_configuration_change_hook; move from window.c. - - * xfns.c (unwind_create_frame_1, Fx_create_frame): - * window.c (run_window_configuration_change_hook) - (syms_of_window): Callers changed. - -2012-03-11 Chong Yidong - - * keymap.c (Fkey_description): Doc fix (Bug#9700). - - * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452). - -2012-03-10 Chong Yidong - - * frame.c (other_visible_frames): Don't assume the selected frame - is visible (Bug#10955). - -2012-03-09 Stefan Monnier - - * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830). - -2012-03-08 Jan Djärv - - * gtkutil.c (x_wm_set_size_hint): Use one row in call to - FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than - zero (Bug#10954). - -2012-03-03 Glenn Morris - - * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes. - -2012-03-02 Eli Zaretskii - - * xdisp.c (try_window_reusing_current_matrix): Don't move cursor - position past the first glyph_row that ends at ZV. (Bug#10902) - (redisplay_window, next_element_from_string): Fix typos in - comments. - (redisplay_window): Pass to move_it_vertically the margin in - pixels, not in screen lines. - -2012-03-02 Glenn Morris - - * buffer.c (buffer-list-update-hook): Doc fix. - -2012-02-29 Eli Zaretskii - - * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call - push_it before setting up the iterator for the first overlay - string, even if we have an empty string loaded. - (next_overlay_string): If there's an empty string on the iterator - stack, pop the stack. (Bug#10903) - -2012-02-25 Paul Eggert - - Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780). - Suggested by Stefan Monnier in - . - * alloc.c (widen_to_Lisp_Object): New static function. - (mark_memory): Also mark Lisp_Objects by fetching pointer words - and widening them to Lisp_Objects. This would work even if - USE_LSB_TAG is defined and wide integers are used, which might - happen in a future version of Emacs. - -2012-02-25 Chong Yidong - - * fileio.c (Ffile_selinux_context, Fset_file_selinux_context): - Doc fix. - - * xselect.c (Fx_selection_exists_p): Doc fix. - (x_clipboard_manager_save_all): Print an informative message - before saving to clipboard manager. - -2012-02-24 Chong Yidong - - * keyboard.c (process_special_events): Handle all X selection - requests in kbd_buffer, not just the next one (Bug#8869). - -2012-02-23 Chong Yidong - - * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook - call when setting menu-bar-lines and tool-bar-lines parameters. - (unwind_create_frame_1): New helper function. - - * window.c (inhibit_window_configuration_change_hook): New var. - (run_window_configuration_change_hook): Obey it. - (syms_of_window): Initialize it. - -2012-02-22 Chong Yidong - - * xterm.c (x_draw_image_relief): Add missing type check for - Vtool_bar_button_margin (Bug#10743). - -2012-02-21 Chong Yidong - - * fileio.c (Vfile_name_handler_alist): Doc fix. - - * buffer.c (Fget_file_buffer): Protect against invalid file - handler return value. - -2012-02-20 Paul Eggert - - * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long' - when computing $valmask. - - Fix crash due to non-contiguous EMACS_INT (Bug#10780). - * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it. - (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0. - It's useless in that case, and it can cause problems on hosts - that allocate halves of EMACS_INT values separately. - Reported by Dan Horák. Diagnosed by Andreas Schwab in - . - * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where - UINTPTR_MAX >> VALBITS == 0. This is required by the above change; - it avoids undefined behavior on hosts where shifting right by more - than the word width has undefined behavior. - -2012-02-19 Chong Yidong - - * fileio.c (Ffile_name_directory, Ffile_name_nondirectory) - (Funhandled_file_name_directory, Ffile_name_as_directory) - (Fdirectory_file_name, Fexpand_file_name) - (Fsubstitute_in_file_name): Protect against invalid file handler - return values (Bug#10845). - -2012-02-18 Eli Zaretskii - - * .gdbinit (pitx): Fix incorrect references to fields of the - iterator stack. - -2012-02-17 Chong Yidong - - * syntax.c (Fscan_lists): Doc fix (Bug#10833). - -2012-02-15 Paul Eggert - - * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see - . - -2012-02-15 Chong Yidong - - * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is - marked as special. Also, starting docstrings with * is obsolete. - -2012-02-13 Andreas Schwab - - * gnutls.c (emacs_gnutls_write): Fix last change. - -2012-02-13 Lars Ingebrigtsen - - * gnutls.c (emacs_gnutls_write): Set errno appropriately for - send_process. - -2012-02-13 Stefan Monnier - - * keymap.c (Fsingle_key_description): Handle char ranges. - -2012-02-12 Chong Yidong - - * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here, - as that creates a dangerous corner case. - - * window.c (Fdelete_window_internal): Invalidate the mouse - highlight (Bug#9904). - -2012-02-12 Glenn Morris - - * xselect.c (Fx_own_selection_internal) - (Fx_get_selection_internal, Fx_disown_selection_internal) - (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes. - * nsselect.m (Fx_own_selection_internal) - (Fx_disown_selection_internal, Fx_selection_exists_p) - (Fx_selection_owner_p, Fx_get_selection_internal): - Sync docs and argument specs with the xselect.c versions. - -2012-02-11 Lars Ingebrigtsen - - * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails. - -2012-02-11 Eli Zaretskii - - * w32select.c (Fx_selection_exists_p): Sync doc string and - argument list with xselect.c. (Bug#10783) - - * w16select.c (Fx_selection_exists_p): Sync doc string and - argument list with xselect.c. (Bug#10783) - -2012-02-10 Glenn Morris - - * fns.c (Fsecure_hash): Doc fix. - -2012-02-09 Kenichi Handa - - * coding.c (produce_chars): Fix updating of src_end (Bug#10701). - -2012-02-07 Chong Yidong - - * buffer.c (Fbuffer_local_variables) - (buffer_lisp_local_variables): Handle unbound vars correctly; - don't let Qunbound leak into Lisp. - -2012-02-07 Glenn Morris - - * image.c (Fimagemagick_types): Doc fix. - - * image.c (imagemagick-render-type): Change it from a lisp object - to an integer. Move the doc here from the lisp manual. - Treat all values not equal to 0 the same. - -2012-02-06 Chong Yidong - - * doc.c (store_function_docstring): Avoid applying docstring of - alias to base function (Bug#2603). - -2012-02-04 Andreas Schwab - - * .gdbinit (pp1, pv1): Remove redundant defines. - (pr): Use pp. - -2012-02-04 Chong Yidong - - * nsterm.m: Declare a global (Bug#10694). - -2012-02-04 Eli Zaretskii - - * w32.c (get_emacs_configuration_options): - Include --enable-checking, if specified, in the return value. - -2012-02-04 Martin Rudalics - - * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols - after rounding frame sizes. (Bug#9723) - -2012-02-04 Eli Zaretskii - - * keyboard.c (adjust_point_for_property): Don't position point - before BEGV. (Bug#10696) - -2012-02-03 Paul Eggert - - Handle overflow when computing char display width (Bug#9496). - * character.c (char_width): Return EMACS_INT, not int. - (char_width, c_string_width): Check for overflow when - computing the width; this is possible now that individual - characters can have unbounded width. Problem introduced - by merge from Emacs 23 on 2012-01-19. - -2012-02-02 Michael Albinus - - * dbusbind.c (Fdbus_register_method): Mention the return value - :ignore in the docstring. - -2012-02-02 Glenn Morris - - * callproc.c (Fcall_process, Fcall_process_region): Doc fix. - - * nsterm.m (syms_of_nsterm) : - Unconditionally set to t. (Bug#10673) - * nsterm.m (syms_of_nsterm) : - * w32term.c (syms_of_w32term) : - * xterm.c (syms_of_xterm) : Doc fix. - -2012-02-02 Kenichi Handa - - (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is - 0, do not call append_composite_glyph. - -2012-02-02 Kenichi Handa - - * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to - NULL (Bug#6988). - (x_produce_glyphs): If the component of a composition is a null - string, set it->pixel_width to 1 to avoid zero-width glyph. - -2012-02-01 Eli Zaretskii - - * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its - first 2 arguments are identical. This makes inserting large - output from a subprocess an order of magnitude faster on - MS-Windows, where all sbrk'ed memory is always contiguous. - -2012-01-31 Glenn Morris - - * nsterm.m (syms_of_nsterm) : - * w32term.c (syms_of_w32term) : - * xterm.c (syms_of_xterm) : Sync docs. - -2012-01-29 Glenn Morris - - * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS). - -2012-01-28 Samuel Thibault (tiny change) - - * s/gnu.h: Define POSIX_SIGNALS (Bug#10552). - -2012-01-28 Chong Yidong - - * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550). - -2012-01-26 Chong Yidong - - * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503). - - * search.c (Fsearch_forward, Fsearch_backward): Document negative - repeat counts (Bug#10507). - -2012-01-26 Glenn Morris - - * lread.c (syms_of_lread): Doc fix. - -2012-01-25 HIROSHI OOTA (tiny change) - - * coding.c (encode_designation_at_bol): Change return value to - EMACS_INT. - -2012-01-25 Chong Yidong - - * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p. - -2012-01-21 Chong Yidong - - * floatfns.c (Fcopysign): Make the second argument non-optional, - since nil is not allowed anyway. - -2012-01-21 Andreas Schwab - - * process.c (read_process_output): Use p instead of XPROCESS (proc). - (send_process): Likewise. - -2012-01-19 Martin Rudalics - - * window.c (save_window_save, Fcurrent_window_configuration) - (Vwindow_persistent_parameters): Do not use Qstate. - Rewrite doc-strings. - -2012-01-19 Kenichi Handa - - * character.c (char_width): New function. - (Fchar_width, c_string_width, lisp_string_width): - Use char_width (Bug#9496). - -2012-01-16 Martin Rudalics - - * window.c (Vwindow_persistent_parameters): New variable. - (Fset_window_configuration, save_window_save): Handle persistent - window parameters. - -2012-01-14 Eli Zaretskii - - * w32fns.c (signal_user_input): Don't do a QUIT, to avoid - thrashing the stack of the thread. (Bug#9087) - -2012-01-12 Paul Eggert - - * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses. - -2012-01-11 Eli Zaretskii - - * xdisp.c (rows_from_pos_range): Handle the case where the - highlight ends on a newline. (Bug#10464) - (mouse_face_from_buffer_pos): Fix off-by-one error in calculating - he end column for display of highlight that ends on a newline - before a R2L line. - -2012-01-11 Glenn Morris - - * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs - from load-path also when installation-directory is nil. (Bug#10208) - -2012-01-10 Glenn Morris - - * emacs.c (syms_of_emacs) : Doc fix. - - * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC): - Update template values to be closer to their typical values these days. - -2012-01-09 Eli Zaretskii - - * xdisp.c (rows_from_pos_range): Accept additional argument - DISP_STRING, and accept any glyph in a row whose object is that - string as eligible for mouse highlight. Fixes mouse highlight of - display strings from overlays. (Bug#10464) - -2012-01-07 Paul Eggert - - emacs: fix an auto-save permissions race condition (Bug#10400) - * fileio.c (auto_saving_dir_umask): New static var. - (Fmake_directory_internal): Use it. - (do_auto_save_make_dir): Set it, instead of invoking chmod after - creating the directory. The old code temporarily assigns - too-generous permissions to the directory. - (do_auto_save_eh): Clear it. - (Fdo_auto_save): Catch all errors, not just file errors, so - that the var is always cleared. - -2012-01-07 Eli Zaretskii - - * search.c (scan_buffer): Pass character positions to - know_region_cache, not byte positions. (Bug#6540) - -2012-01-07 LynX <_LynX@bk.ru> (tiny change) - - * w32.c (sys_rename): Report EXDEV when rename of a directory - fails because the target is on another logical disk. (Bug#10284) - -2012-01-07 David Benjamin (tiny change) - - * xterm.c (x_embed_request_focus): New function. - - * xterm.h: Add prototype. - - * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977). - -2012-01-05 Glenn Morris - - * emacs.c (emacs_copyright): Update short copyright year to 2012. - -2012-01-01 Eli Zaretskii - - * gnutls.c (init_gnutls_functions): Load gnutls_check_version. - Load gnutls_transport_set_lowat only if GnuTLS version is below - 2.11.1. - (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for - GnuTLS versions below 2.11.1. - -2011-12-31 Antoine Levitt - - * xdisp.c (syms_of_xdisp) : Add warning - to the doc string advising against its use for altering the way - windows are scrolled. - -2011-12-28 Kenichi Handa - - * coding.c (Fdefine_coding_system_internal): Make an utf-8 base - coding-system ASCII compatible only when it does not produce BOM - on encoding (Bug#10383). - -2011-12-26 Jan Djärv - - * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus - can scroll. - (create_and_show_popup_menu): Always use menu_position_func for - Gtk3 (Bug#10361). - -2011-12-24 Andreas Schwab - - * callint.c (Fcall_interactively): Don't truncate prompt string. - -2011-12-23 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): Handle correctly an invisible - property that ends at ZV, so that the bidi iteration could be - resumed from there (after widening). (Bug#10360) - -2011-12-22 Jan Djärv - - * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc. - -2011-12-21 Jan Djärv - - * nsterm.m (x_free_frame_resources): - Release f->output_data.ns->miniimage. - (ns_index_color): Fix indentation. Do not retain - color_table->colors[i]. - - * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree - before returning. - - * nsfns.m (x_set_background_color): Assign return value from - ns_index_color to face-background instead of NSColor*. - (ns_implicitly_set_icon_type): Fix indentation. - Change assignment in for loop to comparison. - - * emacs.c (ns_pool): New variable. - (main): Assign ns_pool. - (Fkill_emacs): Call ns_release_autorelease_pool. - - * nsfont.m (ns_spec_to_descriptor): Fix indentation, - autorelease fdesc, release fdAttrs and tdict. - (ns_get_covering_families): Release charset. - (ns_findfonts): Release NSFontDescriptor created with new. - (ns_uni_to_glyphs): Fix indentation. - (setString): Release attrStr before assigning new value. - -2011-12-18 Jan Djärv - - * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5 - and NS_IMPL_COCOA. - (trackingNotification): Surround with ifdef NS_IMPL_COCOA. - (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA. - -2011-12-18 David Reitter - - * nsterm.m (ns_term_init): Subscribe for notifications - NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification - to method trackingNotification in EmacsMenu. - - * nsmenu.m (trackingMenu): New variable. - (trackingNotification): New method (from Aquamacs). - (menuNeedsUpdate): Expand comment and return if trackingMenu is 0, - from Aquamacs (Bug#7030). - -2011-12-18 Jan Djärv - - * nsselect.m (CUT_BUFFER_SUPPORT): Remove define. - (symbol_to_nsstring): Fix indentation. - (ns_symbol_to_pb): New function. - (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal. - (Fns_rotate_cut_buffers_internal): Remove. - (Fns_store_selection_internal): Rename from - Fns_store_cut_buffer_internal. - (ns_get_foreign_selection, Fx_own_selection_internal) - (Fx_disown_selection_internal, Fx_selection_exists_p) - (Fns_get_selection_internal, Fns_store_selection_internal): - Use ns_symbol_to_pb and check if return value is nil. - (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr - Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal - renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal - renamed to Sns_store_selection_internal. - (ns_handle_selection_request): Move code to Fx_own_selection_internal - and remove this function. - (ns_handle_selection_clear): Remove, never used. - (Fx_own_selection_internal): Move code from ns_handle_selection_request - here. - -2011-12-17 Ken Brown - - * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or - GID is unknown (Bug#10257). - -2011-12-17 Paul Eggert - - * s/gnu-linux.h: Fix mark_memory typo (Bug#10286). - (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory, - which caused a build failure on GNU/Linux IA-64. This problem was - introduced by my 2011-10-07 patch. - -2011-12-15 Juri Linkov - - * image.c (imagemagick_error): New function. (Bug#10112) - (imagemagick_load_image): Comment out `MagickSetResolution' call. - Use `imagemagick_error' where ImageMagick functions return - `MagickFalse'. - (Fimagemagick_types): Add `Fnreverse' to return the list in the - proper order. - -2011-12-15 YAMAMOTO Mitsuharu - - * xftfont.c (xftfont_draw): Use the font metrics of s->font to - fill background (Bug#8992). - -2011-12-13 Martin Rudalics - - * window.c (Vwindow_combination_resize) - (Vwindow_combination_limit): Use t instead of non-nil in - doc-strings. - (Vrecenter_redisplay): Add first sentence of doc-string on - separate line. - (Frecenter): Fix doc-string typo. - -2011-12-11 Kenichi Handa - - * coding.c (Funencodable_char_position): Pay attention to the - buffer text relocation (Bug#9389). - -2011-12-10 Jan Djärv - - * xterm.c (x_term_init): Move call to gdk_window_add_filter before - gtk_init (Bug#10100). - -2011-12-10 Eli Zaretskii - - * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if - IT->string is nil. (Bug#10263) - -2011-12-10 Jan Djärv - - * nsterm.h (x_free_frame_resources): Declare. - - * nsfns.m (ns_get_defaults_value): New function (Bug#10103). - (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value. - - * nsterm.h (ns_get_defaults_value): Declare. - - * nsterm.m (ns_default): Call ns_get_defaults_value. - -2011-12-09 Eli Zaretskii - - * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero. - (Bug#10170) - -2011-12-09 YAMAMOTO Mitsuharu - - * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case - that where the value of an _OBJC_* symbol points to is in the .bss - section (Bug#10240). - -2011-12-08 Kazuhiro Ito (tiny change) - - * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end) - after the loop to call ccl_driver at least once (Bug#8619). - -2011-12-08 Kenichi Handa - - * ftfont.c (get_adstyle_property): Fix previous change - (Bug#10233). - -2011-12-07 Juanma Barranquero - - * w32.c (init_environment): If no_site_lisp, remove site-lisp - dirs from the default value of EMACSLOADPATH (bug#10208). - -2011-12-07 Glenn Morris - - * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in - installation and source directories as well. (Bug#10208) - -2011-12-06 Chong Yidong - - * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228). - -2011-12-06 Glenn Morris - - * process.c (start_process_unwind): Treat any pid <= 0, except -2, - as an error, not just -1. (Bug#10217) - -2011-12-05 Chong Yidong - - * keyboard.c (process_special_events): New function. - (swallow_events, Finput_pending_p): Use it (Bug#10195). - -2011-12-05 Paul Eggert - - * coding.c (encode_designation_at_bol): Don't use uninitialized - local variable (Bug#9318). - -2011-12-05 Kenichi Handa - - * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF, - return Qnil (Bug#8046, Bug#10193). - -2011-12-05 Kenichi Handa - - * coding.c (encode_designation_at_bol): New args charbuf_end and - dst. Return the number of produced bytes. Callers changed. - (coding_set_source): Return how many bytes coding->source was - relocated. - (coding_set_destination): Return how many bytes - coding->destination was relocated. - (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET) - (CODING_CHAR_CHARSET_P): Adjust for the avove changes. - -2011-12-05 Kazuhiro Ito (tiny change) - - * coding.c (CODING_CHAR_CHARSET_P): New macro. - (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above - macro (Bug#9318). - -2011-12-05 Andreas Schwab - - The following changes are to fix Bug#9318. - - * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros. - (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER) - (encode_coding_iso_2022, encode_coding_sjis) - (encode_coding_big5, encode_coding_charset): Use the above macros. - -2011-12-05 Juanma Barranquero - - * lisp.h (process_quit_flag): Fix external declaration. - -2011-12-04 Stefan Monnier - - Don't macro-inline non-performance-critical code. - * eval.c (process_quit_flag): New function. - * lisp.h (QUIT): Use it. - -2011-12-04 Jan Djärv - - * nsfns.m (get_geometry_from_preferences): New function. - (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103). - -2011-12-04 Andreas Schwab - - * emacs.c (Qkill_emacs): Define. - (syms_of_emacs): Initialize it. - * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set - Qquit_flag to `kill-emacs' instead. - (quit_throw_to_read_char): Add parameter `from_signal'. - All callers changed. Call Fkill_emacs if requested and safe. - * lisp.h (QUIT): Call Fkill_emacs if requested. - -2011-12-03 Jan Djärv - - * widget.c (update_wm_hints): Return if wmshell is null. - (widget_update_wm_size_hints): New function. - - * widget.h (widget_update_wm_size_hints): Declare. - - * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call - widget_update_wm_size_hints (Bug#10104). - -2011-12-03 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): If the invisible text ends just - before a newline, prepare the bidi iterator for consuming the - newline, and keep the current paragraph direction. (Bug#10183) - (redisplay_window): Don't let `margin' become negative. (Bug#10192) - -2011-12-02 Juri Linkov - - * search.c (Fword_search_regexp): New Lisp function created from - `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'. - (Fword_search_backward, Fword_search_forward) - (Fword_search_backward_lax, Fword_search_forward_lax): - Use `Fword_search_regexp' instead of `wordify'. Doc fix. - (syms_of_search): Define `Sword_search_regexp'. (Bug#10145) - -2011-12-01 Stefan Monnier - - * fileio.c (Finsert_file_contents): Move after-change-function call - to before the "handled:" label, since all "goto handled" appear in - cases where the *-change-functions have already been properly called - (bug#10117). - -2011-12-01 Andreas Schwab - - * keyboard.c (interrupt_signal): Don't call kill-emacs when - waiting for input. (Bug#10169) - -2011-11-30 Eli Zaretskii - - * dispnew.c (adjust_glyph_matrix): Remove the assertion that - verifies glyph row's hash code--we have just reallocated the - glyphs, so their contents can be complete garbage. (Bug#10164) - -2011-11-30 Juanma Barranquero - - * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check. - -2011-11-30 Eli Zaretskii - - * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's - attributes are tested _before_ calling verify_row_hash, to protect - against GCC re-ordering of the tests. (Bug#10164) - -2011-11-29 Jan Djärv - - * xterm.h (struct x_output): net_wm_state_hidden_seen is new. - - * xterm.c (handle_one_xevent): Only set async_visible and friends - if net_wm_state_hidden_seen is non-zero (Bug#10002) - (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if - _NET_WM_STATE_HIDDEN is in NET_WM_STATE. - -2011-11-28 Paul Eggert - - Remove GCPRO-related macros that exist only to avoid shadowing locals. - * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR) - (GCPRO6_VAR, UNGCPRO_VAR): Remove. See - . - All uses changed to use GCPRO1 etc. - (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO): - Revert to old implementation (i.e., before 2011-03-11). - -2011-11-28 YAMAMOTO Mitsuharu - - * dispnew.c (scrolling_window): Truncate overlaps in copy destination - of scroll runs so as to avoid assigning disabled bogus rows and - unnecessary graphics copy operations. - -2011-11-27 Eli Zaretskii - - * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define. - (snprintf) [_MSC_VER]: Redirect to _snprintf. - (strtoll) [_MSC_VER]: Redirect to _strtoi64. - (malloc, free, realloc, calloc): Redirect to e_* only when - compiling Emacs. - - * lisp.h (GCTYPEBITS): Move before first use. - (ALIGN_GCTYPEBITS) [_MSC_VER]: Define. - (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in - this macro definition. - - * s/ms-w32.h (tzname): Redirect to _tzname for all values of - _MSC_VER. - -2011-11-27 Jan Djärv - - * gtkutil.c (xg_create_frame_widgets): - Call gtk_window_set_has_resize_grip (FALSE) if that function is - present with Gtk+ 2.0. - -2011-11-26 Paul Eggert - - * fileio.c (Finsert_file_contents): Undo previous change; see - . - -2011-11-26 Paul Eggert - - Rename locals to avoid shadowing. - * fileio.c (Finsert_file_contents): - Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing. - * process.c (wait_reading_process_output): - Rename inner 'proc' to 'p' to avoid shadowing. - Indent for consistency with usual Emacs style. - -2011-11-25 Eli Zaretskii - - * xdisp.c (redisplay_window): If cursor row is not fully visible - after recentering, and scroll-conservatively is set to a large - number, scroll window by a few more lines to make the cursor fully - visible and out of scroll-margin. (Bug#10105) - (start_display): Don't move to the next line if the display should - start at a newline that is part of a display vector or an overlay - string. (Bug#10119) - -2011-11-24 Juri Linkov - - * image.c (imagemagick_load_image): Move `MagickSetResolution' down - after the `MagickPingImage' call. (Bug#10112) - -2011-11-23 Chong Yidong - - * window.c (Fcoordinates_in_window_p): Accept only live windows. - -2011-11-23 Martin Rudalics - - * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before - making another buffer current. (Bug#10114) - -2011-11-23 Glenn Morris - - * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526) - -2011-11-23 Chong Yidong - - * xdisp.c (compute_stop_pos): Check validity of end_charpos before - using it (Bug#5984). - -2011-11-22 Eli Zaretskii - - * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode- - and header-lines, as they don't have one computed for them. - (Bug#10098) - - * .gdbinit (prow): Make displayed values more self-explaining. - Add row's hash code. - -2011-11-21 Lars Magne Ingebrigtsen - - * process.c (wait_reading_process_output): Fix asynchrounous - GnuTLS socket handling on some versions of the GnuTLS library. - (wait_reading_process_output): Add comment and URL. - -2011-11-21 Jan Djärv - - * xterm.c (x_clear_frame): Reinstate the XClearWindow call. - -2011-11-21 Chong Yidong - - * window.c (Fnext_window, Fprevious_window): Doc fix. - -2011-11-20 Stefan Monnier - - * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup. - -2011-11-20 Juanma Barranquero - - * nsfont.m (syms_of_nsfont) : Fix typo. - -2011-11-20 Martin Rudalics - - * window.c (Fset_window_combination_limit): Rename argument - STATUS to LIMIT. - (Vwindow_combination_limit): Remove "status" from doc-string. - -2011-11-20 Andreas Schwab - - * m/ibms390.h: Remove. - * m/ibms390x.h: Don't include "ibms390.h". - -2011-11-20 Stefan Monnier - - * fileio.c (Finsert_file_contents): Add missing gcpro1 variable. - Suggested by Dmitry Antipov . - -2011-11-20 Juanma Barranquero - - * casetab.c (Fset_case_table): - * charset.c (Fcharset_after): Fix typos. - -2011-11-20 Paul Eggert - - Standardize on VIRT_ADDR_VARIES behavior (Bug#10042). - Otherwise, valgrind does not work on some platforms. - Problem reported by Andreas Schwab in - . - * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES - is set, removing the need for VIRT_ADDRESS_VARIES. - (PURE_P): Use a more-efficient implementation that needs just one - comparison, not two: on x86-64 with GCC 4.6.2, this cut down the - number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge) - to 4 (xorl, subq, cmpq, setbe). - * alloc.c (pure): Always extern now, since that's the - VIRT_ADDR_VARIES behavior. - (PURE_POINTER_P): Use a single comparison, not two, for - consistency with the new puresize.h. - * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed. - * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h: - Remove VIRT_ADDR_VARIES no longer needed. - -2011-11-19 Eli Zaretskii - - * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph) - (erase_phys_cursor, update_window_cursor, show_mouse_face) - (cursor_in_mouse_face_p): If the cursor position is out of bounds, - behave as if the cursor position were at the window margin. - - * window.c (get_phys_cursor_glyph): If the window is hscrolled, - and the cursor position is out of bounds, behave as if the cursor - position were at the window margin. (Bug#10075) - -2011-11-18 Chong Yidong - - * window.c (Fwindow_combination_limit): Make first argument - non-optional, since it is meaningless for live windows like the - selected window. - -2011-11-18 Dmitry Antipov - - * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs. - -2011-11-18 Stefan Monnier - - * intervals.c: Fix grafting over the whole buffer (bug#10071). - (graft_intervals_into_buffer): Simplify. - -2011-11-18 Eli Zaretskii - - * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the - hash values of the two rows. - (copy_row_except_pointers): Preserve the used[] arrays and the - hash values of the two rows. (Bug#10035) - (add_row_entry): Add xassert to verify that ROW's hash code is valid. - - * xdisp.c (row_hash): New function, body extracted from - compute_line_metrics. - (compute_line_metrics): Call row_hash, instead of computing the - hash code inline. - - * dispnew.c (verify_row_hash): Call row_hash for computing the - hash code of a row, instead of duplicating code from xdisp.c. - - * dispextern.h (row_hash): Add prototype. - -2011-11-18 Tassilo Horn - - * frame.c (delete_frame): Don't delete the terminal when the last - X frame is closed if emacs is built with GTK toolkit. - -2011-11-17 Juanma Barranquero - - * window.c (syms_of_window) : Fix typo. - -2011-11-17 Martin Rudalics - - * window.c (Vwindow_splits): Rename to - Vwindow_combination_resize. Suggested by Juri Linkov. - (Fsplit_window_internal): Use Vwindow_combination_resize instead - of Vwindow_splits. - -2011-11-16 Juanma Barranquero - - * nsfns.m (Fns_font_name): - * window.c (syms_of_window) : Fix typos. - -2011-11-16 Martin Rudalics - - * window.h (window): Rename slot "nest" to "combination_limit". - * window.c (Fwindow_nest): Rename to Fwindow_combination_limit. - (Fset_window_nest): Rename to Fset_window_combination_limit. - (Vwindow_nest): Rename to Vwindow_combination_limit. - (recombine_windows, make_parent_window, make_window) - (Fsplit_window_internal, saved_window) - (Fset_window_configuration, save_window_save): Rename all - occurrences of window_nest to window_combination_limit. - -2011-11-15 Juanma Barranquero - - * image.c (imagemagick_load_image): Fix typo. - -2011-11-14 Eli Zaretskii - - * xdisp.c (display_line): Move the call to - highlight_trailing_whitespace before the call to - compute_line_metrics, since the latter needs to see the final - faces of all the glyphs to compute ROW's hash value. - Fixes assertion violations in row_equal_p. (Bug#10035) - -2011-11-14 Juanma Barranquero - - * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0, - just return (bug#10044). - -2011-11-12 Eli Zaretskii - - * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs - with user-defined heap size. Bump the default size of the temacs - heap to 27MB, to avoid memory warning when running temacs. - ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value. - - * dispnew.c (scrolling_window): Fix incorrect indices in accessing - current_matrix and desired_matrix. (Bug#9990) - (verify_row_hash) [XASSERTS]: New function. - (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify - that the hash value of glyph rows is correct. - -2011-11-12 Martin Rudalics - - * window.h (window): Remove splits slot. - * window.c (Fwindow_splits, Fset_window_splits): Remove. - (Fdelete_other_windows_internal, make_parent_window) - (make_window, Fsplit_window_internal, Fdelete_window_internal) - (Fset_window_configuration, save_window_save): Don't deal with - split status of windows. - (saved_window): Remove splits slot. - (Vwindow_splits): Rewrite doc-string. - -2011-11-11 Jan Djärv - - * xfns.c (unwind_create_frame): - * nsfns.m (unwind_create_frame): - * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in - Vframe_list (Bug#9999). - -2011-11-11 Dmitry Antipov - - * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext. - -2011-11-11 Kenichi Handa - - * callproc.c (Fcall_process): Set the member dst_multibyte of - process_coding. - -2011-11-11 Johan Bockgård - - * xdisp.c (fill_composite_glyph_string): Always set s->face, to - avoid a crash (bug#9496). - -2011-11-09 Chong Yidong - - * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges) - (Fwindow_inside_absolute_pixel_edges): Only allow live windows. - -2011-11-08 Paul Eggert - - * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926). - -2011-11-08 Paul Eggert - - Avoid some portability problems by eschewing 'extern inline' functions. - The trivial performance wins aren't worth the portability hassles; see - - et seq. - * dispextern.h (window_box, window_box_height, window_text_bottom_y) - (window_box_width, window_box_left, window_box_left_offset) - (window_box_right, window_box_right_offset): Undo previous change, - by removing the "extern"s. - * intervals.c (adjust_intervals_for_insertion) - (adjust_intervals_for_deletion): Undo previous change, - making these static again. - (offset_intervals, temp_set_point_both, temp_set_point) - (copy_intervals_to_string): No longer inline. - * xdisp.c (window_text_bottom_y, window_box_width) - (window_box_height, window_box_left_offset) - (window_box_right_offset, window_box_left, window_box_right) - (window_box): No longer inline. - -2011-11-08 Chong Yidong - - * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix. - (Fwindow_body_height, Fwindow_body_width): Move from Lisp. - Signal an error if not a live window. - (Fwindow_total_width, Fwindow_total_height): Move from Lisp. - (Fwindow_total_size, Fwindow_body_size): Move to Lisp. - -2011-11-07 Juanma Barranquero - - * lisp.h (syms_of_abbrev): Remove declaration. - Reported by CHENG Gao . - -2011-11-07 Eli Zaretskii - - * w32.c (check_windows_init_file): Don't look for term/w32-win.el - if Vpurify_flag is non-nil. Fixes a crash when running w32 build - of temacs in GUI mode. - -2011-11-07 Martin Rudalics - - * window.h: Declare delete_all_child_windows instead of - delete_all_subwindows. - * window.c (Fwindow_nest, Fset_window_nest) - (Fset_window_new_total, Fset_window_new_normal) - (Fwindow_resize_apply): Don't use term subwindow in doc-strings. - (delete_all_subwindows): Rename to delete_all_child_windows. - (Fdelete_other_windows_internal, Fset_window_configuration): - Call delete_all_child_windows instead of delete_all_subwindows. - * frame.c (delete_frame): Call delete_all_child_windows instead - of delete_all_subwindows. - -2011-11-07 Paul Eggert - - * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926). - This is also needed for porting to any host where GC_MARK_STACK is - not GC_MAKE_GCPROS_NOOPS. - (which_symbols): Use it. - -2011-11-07 Kenichi Handa - - * coding.c (coding_set_destination): Check coding->src_pos only - when coding->src_object is a buffer (bug#9910). - - * process.c (send_process): Set the member src_multibyte of coding - to 0 (bug#9911) when sending a unibyte text. - - * callproc.c (Fcall_process): Set the member src_multibyte of - process_coding to 0 (bug#9912). - -2011-11-06 YAMAMOTO Mitsuharu - - * xmenu.c (cleanup_widget_value_tree): New function. - (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of - calling free_menubar_widget_value_tree directly (Bug#9830). - -2011-11-06 Paul Eggert - - Fix some portability problems with 'inline'. - * dispextern.h (window_box, window_box_height, window_text_bottom_y) - (window_box_width, window_box_left, window_box_left_offset) - (window_box_right, window_box_right_offset): Declare extern. - Otherwise, these inline functions do not conform to C99 and - are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in - . - * intervals.c (adjust_intervals_for_insertion) - (adjust_intervals_for_deletion): Now extern, because otherwise the - extern inline functions 'offset_intervals' couldn't refer to it. - (static_offset_intervals): Remove. - (offset_intervals): Rewrite using the old contents of - static_offset_intervals. The old version didn't conform to C99 - because an extern inline function contained a reference to an - identifier with static linkage. - -2011-11-06 Andreas Schwab - - * keyboard.c (interrupt_signal): Don't call kill-emacs while in - GC. - -2011-11-06 Eli Zaretskii - - * xdisp.c (init_iterator, reseat_to_string): Don't set the - iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963) - (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil, - return Qleft_to_right. - -2011-11-06 Chong Yidong - - * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window) - (Fminibuffer_window, Fwindow_buffer, Fwindow_splits) - (Fset_window_splits, Fwindow_nest, Fset_window_nest) - (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size) - (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line) - (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars) - (Fwindow_vscroll): Doc fix. - (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default - argument, since it makes no sense to pass a live window and for - consistency with window-child. - -2011-11-05 Christoph Scholtes - - * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to - support MSVC. - -2011-11-05 Jason Rumney - - * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts. - (add_font_entity_to_list): Filter out non-Japanese Shift-JIS - fonts (Bug#6029). - (add_font_entity_to_list): Fix logic errors in mixed boolean and - bitwise arithmetic preventing use of unicode-sip and non-truetype - opentype fonts. - -2011-11-05 Eli Zaretskii - - * s/ms-w32.h (fstat, stat, utime): Move redirections to - "emacs"-only part. - - * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange - initialization code to keep similarity to xfns.c after changes - from 2011-11-05. - -2011-11-05 Jan Djärv - - * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG. - (unwind_create_frame): New function (Bug#9943). - (Fx_create_frame): Restructure code to be more similar to the one in - xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943). - Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943). - Move terminal->reference_count++ just before making the frame official - (Bug#9943). - - * nsterm.m (x_free_frame_resources): New function. - (x_destroy_window): Move code to x_free_frame_resources. - - * xfns.c (unwind_create_frame): Fix comment. - (Fx_create_frame, x_create_tip_frame): - Move terminal->reference_count++ just before making the frame - official. Move initialization of image_cache_refcount and - dpyinfo_refcount before calling init_frame_faces (Bug#9943). - -2011-11-05 Eli Zaretskii - - Support MSVC build with newer versions of Visual Studio. - * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as - Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on - nt/gmake.defs. - - * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields, - which are not supported by MSVC. - (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay) - (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in - bitfields. - (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated - types in bitfields. - (DEFUN) [_MSC_VER]: Define in a different way for MSVC. - - * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version. - -2011-11-05 Fabrice Popineau (tiny change) - - Support MSVC build with newer versions of Visual Studio. - * w32.c: Don't include w32api.h for MSVC. - (init_environment) [_MSC_VER]: Call sys_access, not _access. - - * s/ms-w32.h [_MSC_VER]: Typedefs for MSVC. - [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h. - (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins. - (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the - e_* cousins. - (alloca) [_MSC_VER]: Define to _alloca. - - * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC. - - * regex.c [_MSC_VER]: A separate definition for MSVC. - -2011-11-04 Eli Zaretskii - - * xdisp.c (note_mouse_highlight): If either of - previous/next-single-property-change returns nil, treat that as - the beginning or the end of the buffer. (Bug#9955) - -2011-11-04 Jan Djärv - - * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or - label is not null (Bug#9951). - (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl - may be NULL. - -2011-11-04 Eli Zaretskii - - * window.c (Fwindow_body_size): Mention in the doc string that the - return value is in frame's canonical units. (Bug#9949) - -2011-11-03 Eli Zaretskii - - * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947) - - * w32fns.c (unwind_create_frame): If needed, free the glyph - matrices of the partially constructed frame. (Bug#9943) - * xfns.c (unwind_create_frame): Likewise. - -2011-11-01 Eli Zaretskii - - * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment. - Don't stop backward scan on the continuation glyph, even though - its CHARPOS is positive. - (mouse_face_from_buffer_pos, note_mouse_highlight): - Rename cover_string to disp_string. - -2011-11-01 Martin Rudalics - - * window.c (temp_output_buffer_show): Don't use - Vtemp_buffer_show_specifiers. - (Vtemp_buffer_show_specifiers): Remove unused variable. - -2011-10-30 Eli Zaretskii - - * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented - past the beginning of the current glyph matrix. - -2011-10-30 Adam Sjøgren (tiny change) - - * xterm.c: Include X11/Xproto.h if HAVE_GTK3. - (x_error_handler): Ignore BadMatch for X_SetInputFocus for - HAVE_GTK3 (Bug#9869). - - * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize - type to GDK_NOTHING so valgrind does not complain (Bug#9901). - - * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893). - - * xterm.c: Declare x_handle_net_wm_state to return int. - (handle_one_xevent): Check if we are iconified but don't have - _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893). - (get_current_wm_state): Return non-zero if not hidden, - check for _NET_WM_STATE_HIDDEN (Bug#9893). - (do_ewmh_fullscreen): Ignore return value from get_current_wm_state. - (x_handle_net_wm_state): Return what get_current_wm_state returns. - (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden. - -2011-10-29 Paul Eggert - - * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE, - so that this new function doesn't get optimized away by a - whole-program optimizer. Make the 2nd arg EMACS_INT, not int. - -2011-10-29 Andreas Schwab - - * frame.h (MOUSE_HL_INFO): Remove excess parens. - -2011-10-29 Eli Zaretskii - - Fix the `xbytecode' command. - * .gdbinit (xprintbytestr): New command. - (xwhichsymbols): Rename from `which'; all callers changed. - (xbytecode): Print the byte-code string as well. - -2011-10-29 Kim Storm - - * alloc.c (which_symbols): New function. - -2011-10-29 Andreas Schwab - - * minibuf.c (read_minibuf_noninteractive): Allow reading empty - line. (Bug#9903) - -2011-10-29 Glenn Morris - - * process.c (wait_reading_process_output): Revert 2009-08-30 change. - Not clear what it was for, and it causes various bugs. (Bug#9839) - -2011-10-28 Eli Zaretskii - - * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a - possible random value that matches one of those tested as - condition to clear the mouse face. - -2011-10-28 Chong Yidong - - * xdisp.c (note_mouse_highlight): Fix use of uninitialized var. - -2011-10-28 Dan Nicolaescu - - * window.c (make_window): Initialize phys_cursor_on_p. - -2011-10-28 Stefan Monnier - - * lisp.h (struct Lisp_Symbol): Update comments. - -2011-10-28 Juanma Barranquero - - * w32font.c (w32_load_unicows_or_gdi32): Add missing return. - -2011-10-28 Eli Zaretskii - - Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem - for helping to debug this. - - * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w) - (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w) - (g_b_init_get_glyph_outline_w): New static variables. - (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc) - (GetGlyphOutlineW_Proc): New typedefs. - (w32_load_unicows_or_gdi32, get_outline_metrics_w) - (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font): - New functions. - (w32font_open_internal, compute_metrics): - Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w - instead of calling the "wide" APIs directly. - - * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font. - - * w32.h (syms_of_w32font): Add prototype. - -2011-10-27 Juanma Barranquero - - * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end) - (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window) - (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings. - (Fmove_to_window_line): Doc fix. - -2011-10-27 Chong Yidong - - * process.c (make_process): Set gnutls_state to NULL. - - * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is - non-NULL, regardless of GNUTLS_INITSTAGE. - (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal - an error. Set process slots as soon as we allocate them. - - * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros. - -2011-10-27 Chong Yidong - - * gnutls.c (emacs_gnutls_deinit): New function. - Deallocate credentials structures as well as calling gnutls_deinit. - (Fgnutls_deinit, Fgnutls_boot): Use it. - - * process.c (make_process): Initialize GnuTLS credentials to NULL. - (deactivate_process): Call emacs_gnutls_deinit. - -2011-10-27 Juanma Barranquero - - * image.c (x_create_x_image_and_pixmap): - * w32.c (sys_rename, w32_delayed_load): - * w32font.c (fill_in_logfont): - * w32reg.c (x_get_string_resource): Silence compiler warnings. - -2011-10-26 Juanma Barranquero - - * w32fns.c (w32_default_color_map): New function, - extracted from Fw32_default_color_map. - (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785) - -2011-10-25 Paul Eggert - - * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2). - -2011-10-25 Stefan Monnier - - * keyboard.c (test_undefined): New function (bug#9751). - (read_key_sequence): Use it to detect when a key is bound to `undefined'. - -2011-10-25 Enami Tsugutomo - - * sysdep.c (init_sys_modes): Fix the check for the controlling - terminal (Bug#6649). - -2011-10-20 Eli Zaretskii - - * dispextern.h (struct bidi_it): New member next_en_type. - - * bidi.c (bidi_line_init): Initialize the next_en_type member. - (bidi_resolve_explicit_1): When next_en_pos is valid for the - current character, check also for next_en_type being WEAK_EN. - (bidi_resolve_weak): Don't enter the expensive loop if the current - position is before next_en_pos. Record the bidi type of the first - non-ET, non-BN character we find, in addition to its position. - (bidi_level_of_next_char): Invalidate next_en_type when - next_en_pos is over-stepped. - -2011-10-20 Paul Eggert - - Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794) - * editfns.c: Rewrite current-time-zone so that it invokes - the equivalent of (format-time-string "%Z") to get the time zone name. - This fixes a bug when the time zone name contains characters that - need converting from the system time locale to Emacs internal format. - This fixes a shortcoming that I introduced in my 1999-10-19 patch: - that patch fixed format-time-string to do the conversion, but - I forgot to fix current-time-zone. - (format_time_string): New function, containing most of - what Fformat_time_string used to contain. - (Fformat_time_string): Rewrite in terms of format_time_string. - This doesn't change this function's behavior. - (current-time-zone): Rewrite to use format_time_string. - This fixes the bug reported by Michael Schierl in - . - Jason Rumney's 2007-06-07 change worked around this bug, but - didn't fix it. - * systime.h (tzname, timezone): Remove no-longer-used declarations. - -2011-10-19 Eli Zaretskii - - * xdisp.c (start_display): If the character at POS is displayed - via a display vector, reset IT->current.dpvec_index to zero. - (try_window_reusing_current_matrix): If a line ends in a display - vector or the next line starts in a display vector, continue - redrawing the window even though the character position of - start_row was reached. - (Bug#9771, part 2) - -2011-10-18 Chong Yidong - - * xdisp.c (get_next_display_element): Handle U+2010 and U+2011 - with nobreak-char-display too. - -2011-10-18 Eli Zaretskii - - Fix part 3 of bug#9771. - * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1. - (bidi_resolve_neutral): Don't enter the expensive loop looking for - non-neutral characters if the current character is a paragraph - separator (a.k.a. Newline). This avoids running the same - expensive loop twice, once when we consume the preceding newline - and the other time when the line actually needs to be displayed. - Avoid the loop when we see neutrals on the base embedding level - following a character whose directionality is the same as the - paragraph's. This avoids running the expensive loop when a line - ends in a long sequence of neutrals, like control characters. - Add assertion against STRONG_AL type. Slightly rearrange code - that determines the type of a neutral given the first non-neutral - that follows it. - (bidi_level_of_next_char): Set next_en_pos to zero when - invalidating its info. - -2011-10-17 Eli Zaretskii - - * xdisp.c (push_display_prop): Determine whether to record string - or buffer position by IT->string, not by IT->method. Allow - GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4) - (move_it_vertically_backward): Don't look for character position - immediately after the newline when in a continuation line. - (Bug#9771, part 1) - -2011-10-15 Martin Rudalics - - * window.c (coordinates_in_window): Rewrite and delabelize - vertical border check. (Bug#5357) (Bug#9618) - -2011-10-14 Stefan Monnier - - * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained - errors in XSetWindowBorder (bug#9310). - -2011-10-13 Dmitry Antipov - - * editfns.c (Fset_time_zone_rule): Replace free with xfree to - avoid crash when xmalloc overrun checking is enabled. - -2011-10-13 Eli Zaretskii - - * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize - itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect - cursor motion with and arrow keys. - - * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as - some callers set that themselves. - -2011-10-12 Eli Zaretskii - - * xdisp.c (find_row_edges): Handle the case where ROW comes from a - display string and the previous row comes from the same string and - is empty. (Bug#9739) (Bug#9738) - -2011-10-12 Stefan Monnier - - * doc.c (get_doc_string): Encode file name (bug#9735). - -2011-10-12 Eli Zaretskii - - * bidi.c (bidi_level_of_next_char): - * xdisp.c (get_visually_first_element): Remove old incorrect - comments regarding the Unicode Line Separator character. - - * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR. - -2011-10-12 Dmitry Antipov - - * alloc.c (Fgc_status): Do not access beyond zombies array - boundary if nzombies > MAX_ZOMBIES. - * alloc.c (dump_zombies): Add missing format specifier. - -2011-10-12 Paul Eggert - - * xdisp.c (set_cursor_from_row): Simplify conditionals, - to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow. - - * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff. - Some packages use them to denote characters with modifiers. - -2011-10-11 Andreas Schwab - - * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR) - (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid - matching a pp-number. Rename parameter var to var1. - -2011-10-11 Stefan Monnier - - * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709). - -2011-10-08 Glenn Morris - - * callint.c (Fcall_interactively): Give a more explicit error for the - 'c' case with a non-character input. (Bug#8479) - -2011-10-08 Eli Zaretskii - - * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left - lines. - (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L - lines that are hscrolled on the left. - - * dispnew.c (buffer_posn_from_coords): Account for a possible - presence of header-line. (Bug#4426) - -2011-10-07 Stefan Monnier - - * buffer.c (syms_of_buffer) : - Don't advertise functionality which we discourage or doesn't work. - -2011-10-07 Paul Eggert - - * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__ - or sizeof. __alignof__ gives the wrong answer on Fedora x86-64 - with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int; - this makes Emacs dump core during garbage collection on rare - occasions. sizeof is obviously inferior to offsetof here, so - stick with offsetof. - (GC_POINTER_ALIGNMENT): New macro. - (mark_memory): Omit 3rd (offset) arg; caller changed. - Don't assume EMACS_INT alignment is the same as pointer alignment. - -2011-10-03 Stefan Monnier - - * keyboard.c (read_key_sequence_remapped): New var. - (read_key_sequence): Compute remapping in the right buffer. - (command_loop_1): Use read_key_sequence's remapping directly. - -2011-10-02 Stefan Monnier - - * dired.c (file_name_completion): Don't expand file name. - (Ffile_name_completion, Ffile_name_all_completions): Expand file name - before checking file name handler. - - * minibuf.c (Finternal_complete_buffer): Only show internal buffers if - they've been requested explicitly (bug#9591). - -2011-10-01 Andreas Schwab - - * keymap.c (Fsingle_key_description): Use make_specified_string - instead of build_string to build string from push_key_description. - (Bug#5193) - -2011-09-30 Paul Eggert - - * buffer.h (struct buffer): Use time_t, not int, for a time stamp. - This fixes a Y2038 bug on 64-bit hosts. - * buffer.c (reset_buffer): - * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved) - (Fclear_buffer_auto_save_failure): - Use 0, not -1, to represent an unset failure time, since time_t - might not be signed. - - Remove dependency on glibc malloc internals. - * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move back here from lisp.h, but with their new implementations. - (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) - (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here. - * charset.c (charset_table_init): New static var. - (syms_of_charset): Use it instead of xmalloc. This removes a - dependency on glibc malloc internals. See Eli Zaretskii's comment in - . - * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move back to alloc.c. - (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) - (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c. - -2011-09-30 Jan Djärv - - * nsterm.m (windowDidResize): Call x_set_window_size only when - ns_in_resize is true. Otherwise set pixelwidth/height and - call change_frame_size (Bug#9628). - -2011-09-30 Paul Eggert - - Port --enable-checking=all to Fedora 14 x86-64. - * charset.c (syms_of_charset): Also account for glibc malloc's - internal overhead when calculating the initial malloc maximum. - - Port --enable-checking=all to Fedora 14 x86. - * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move to lisp.h. - (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc) - (overrun_check_realloc, overrun_check_free): - Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t). - That way, xmalloc returns a properly-aligned pointer even if - XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened - to align OK on typical 64-bit hosts, but not on Fedora 14 x86. - * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD - into account when calculating the initial malloc maximum. - * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move here from alloc.c, so that charset.c can use it too. - Properly align; the old code wasn't right for common 32-bit hosts - when configured with --enable-checking=all. - (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) - (XMALLOC_OVERRUN_SIZE_SIZE): New macros. - -2011-09-29 Eli Zaretskii - - * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined, - use EDOM. - -2011-09-28 Eli Zaretskii - - * xdisp.c (compute_display_string_end): If there's no display - string at CHARPOS, return -1. - - * bidi.c (bidi_fetch_char): When compute_display_string_end - returns a negative value, treat the character as a normal - character not covered by a display string. (Bug#9624) - -2011-09-28 Juanma Barranquero - - * lread.c (Fread_from_string): Fix typo in docstring. - -2011-09-27 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): If invisible text ends on a - newline, reseat the iterator instead of bidi-iterating there one - character at a time. (Bug#9610) - (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past - TO_CHARPOS if the bidi iterator is at base embedding level. - -2011-09-27 Andreas Schwab - - * lread.c (readevalloop): Use correct code for NBSP. - (read1): Likewise. (Bug#9608) - -2011-09-25 Michael Albinus - - * dbusbind.c (Fdbus_register_signal): When service is not - registered, use nil in Vdbus_registered_objects_table. (Bug#9581) - -2011-09-25 Glenn Morris - - * buffer.c (truncate-lines): Doc fix. - -2011-09-24 Chong Yidong - - * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers) - (Fset_window_next_buffers): Doc fix. - -2011-09-24 Glenn Morris - - * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715) - -2011-09-24 Paul Eggert - - Fix minor problems found by static checking. - * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int. - * indent.c (Fvertical_motion): Fix == vs = typo. - -2011-09-24 Eli Zaretskii - - * dispnew.c (syms_of_display) : - Default value is now t. Doc fix. - - * indent.c (Fvertical_motion): Compute and apply the overshoot - logic when moving up, not only when moving down. Fix the - confusing name and values of the it_overshoot_expected variable; - logic changes accordingly. (Bug#9254) (Bug#9549) - - * xdisp.c (pos_visible_p): Produce correct pixel coordinates when - CHARPOS is covered by a display string which includes newlines. - (move_it_vertically_backward): Avoid inflooping when START_CHARPOS - is covered by a display string with embedded newlines. - -2011-09-24 Michael Albinus - - * dbusbind.c (Fdbus_register_signal): Add match rule to - Vdbus_registered_objects_table. (Bug#9581) - (Fdbus_register_method, Vdbus_registered_objects_table): - Fix docstring. - -2011-09-24 Jim Meyering - - do not ignore write error for any output size - The previous change was incomplete. - While it makes emacs --batch detect the vast majority of stdout - write failures, errors were still ignored whenever the output size is - k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096, - $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \ - && echo FAIL: ignored write error - FAIL: ignored write error - $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \ - && echo FAIL: ignored write error - FAIL: ignored write error - * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574) - -2011-09-23 Andreas Schwab - - * emacs.c (Fkill_emacs): In noninteractive mode exit - non-successfully if a write error occurred on stdout. (Bug#9574) - -2011-09-21 Eli Zaretskii - - * xdisp.c (pop_it): Allow it->object that is a cons cell to pass - the xassert test. - - * dispextern.h (struct it): Update the comment documenting what - can it->OBJECT be. - -2011-09-20 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): If the row ends in a newline from - a display string, extend search for cursor position to end of row. - (find_row_edges): If the row ends in a newline from a display - string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549) - Handle the case of a display string with multiple newlines. - (Fcurrent_bidi_paragraph_direction): Fix search for previous - non-empty line. Fixes confusing cursor motion with arrow keys at - the beginning of a line that starts with whitespace. - -2011-09-19 Lars Magne Ingebrigtsen - - * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is - (bug#9493). - -2011-09-18 Chong Yidong - - * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as - boolean (Bug#9154). - -2011-09-18 Eli Zaretskii - - * xdisp.c (display_line): Record maximum and minimum buffer - positions even if no glyphs were produced (e.g., by a zero-width - stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record - buffer positions that will be removed from the glyph row because - they don't fit. - (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the - column is beyond frame width: don't subtract 1 "pixel" when - computing width of the stretch. - (reseat_at_next_visible_line_start): Undo the change made on - 2011-09-17 that saved paragraph information and restored it after - the call to `reseat'. (Bug#9545) - -2011-09-18 YAMAMOTO Mitsuharu - - * xdisp.c (expose_window): Save original value of phys_cursor_on_p - and turn window cursor on if cleared (Bug#9415). - -2011-09-18 Andreas Schwab - - * search.c (boyer_moore): Take unibyte characters from pattern - literally. (Bug#9458) - -2011-09-18 Eli Zaretskii - - * xdisp.c (reseat_at_next_visible_line_start): Fix last change. - -2011-09-18 Paul Eggert - - Fix minor problem found by static checking. - * xdisp.c (reseat_at_next_visible_line_start): Mark locals as - initialized, to pacify gcc -Wuninitialized. - - * fileio.c: Report proper errno when syscall falls. - (Finsert_file_contents): Save and restore errno, - so that report_file_error outputs the correct diagnostic. - (Fwrite_region) [CLASH_DETECTION]: Likewise. - -2011-09-18 Eli Zaretskii - - * .gdbinit (pgx): Fix references to fields of `struct glyph'. - -2011-09-17 Eli Zaretskii - - * xdisp.c (produce_stretch_glyph): Another fix for changes made on - 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530) - -2011-09-17 Eli Zaretskii - - * xdisp.c (reseat_at_next_visible_line_start): Keep information - about the current paragraph and restore it after the call to reseat. - - * bidi.c (MAX_PARAGRAPH_SEARCH): New macro. - (bidi_find_paragraph_start): Search back for paragraph beginning - at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE. - (bidi_move_to_visually_next): Only trigger paragraph-related - computations when the last character is a newline or at EOB, not - just any NEUTRAL_B. (Bug#9470) - - * xdisp.c (set_cursor_from_row): Don't invoke special treatment of - truncated lines if point is covered by a display string. (Bug#9524) - -2011-09-16 Paul Eggert - - * xselect.c: Relax test for outgoing X longs (Bug#9498). - (cons_to_x_long): New function. - (lisp_data_to_selection_data): Use it. Correct the test for - short-versus-long data; it was negated. Break out of vector - loop, for efficiency, when a long datum is discovered. - -2011-09-16 Stefan Monnier - - * eval.c (Fquote): Document its non-consing behavior (bug#9482). - -2011-09-16 Eli Zaretskii - - * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see - GCC PR/17406) by declaring this function with external scope. - -2011-09-15 Paul Eggert - - * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514). - Don't mishandle (length (format "%%")) and (format "%4000s%%" ""). - -2011-09-15 Andreas Schwab - - * editfns.c (Fformat): Correctly handle text properties on "%%". - -2011-09-15 Eli Zaretskii - - * xterm.c (x_draw_composite_glyph_string_foreground): - * w32term.c (x_draw_composite_glyph_string_foreground): - * term.c (encode_terminal_code): - * composite.c (composition_update_it, get_composition_id): - * xdisp.c (get_next_display_element) - (fill_composite_glyph_string): Add comments about special meaning - of TAB characters in a composition. - -2011-09-15 Paul Eggert - - * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514). - This occurs when processing a multibyte format. - Problem reported by Wolfgang Jenker. - -2011-09-15 Johan Bockgård - - * xdisp.c (try_cursor_movement): Only check for exact match if - cursor hpos found by set_cursor_from_row is valid. (Bug#9495) - -2011-09-14 Paul Eggert - - Remove unused external symbols. - * dispextern.h (calc_pixel_width_or_height): Remove decl. - * xdisp.c (calc_pixel_width_or_height): Now static. - * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove. - * indent.c (check_display_width): - * w32term.c: Fix comment to match code. - * xterm.c, xterm.h (x_catching_errors): Remove. - -2011-09-14 Paul Eggert - - * xselect.c: Use signed conversions more consistently (Bug#9498). - (selection_data_to_lisp_data): Assume incoming selection data are - signed integers, not unsigned. This is to be consistent with - outgoing selection data, which was modified to use signed integers - in as part of the fix to Bug#9196 in response to Jan D.'s comment - in that X11 - expects long, not unsigned long. - -2011-09-14 Eli Zaretskii - - * xdisp.c (try_window_reusing_current_matrix): Fix incorrect - computation of loop end. Reported by Johan Bockgård - . - -2011-09-13 Chong Yidong - - * frame.c (Fother_visible_frames_p): Function deleted. - -2011-09-12 Eli Zaretskii - - * indent.c (compute_motion): Process display vector front to back - rather than the other way around. (Bug#2496) - -2011-09-12 Stefan Monnier - - * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0. - -2011-09-11 Chong Yidong - - * minibuf.c (Fread_from_minibuffer): Doc fix. - -2011-09-11 Eli Zaretskii - - * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from - 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475) - -2011-09-11 Lars Magne Ingebrigtsen - - * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a - value for non-existent files. - -2011-09-11 Eli Zaretskii - - * fileio.c (Finsert_file_contents): If the file cannot be opened, - set its "size" to -1. This will set the modtime_size field of - the corresponding buffer to -1, which is what - verify-visited-file-modtime expects for files that do not exist. - (Bug#9139) - -2011-09-11 Paul Eggert - - * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls - here ... - * lisp.h: ... from here. push_key_description is no longer - defined in keyboard.c, so its declaration should not be in - lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE - logically belongs with push_key_description. - -2011-09-10 Paul Eggert - - * buffer.h: Include instead of . - Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386. - Problem reported by Herbert J. Skuhra. - -2011-09-10 Lars Magne Ingebrigtsen - - * xml.c (parse_region): Make the parsing work for - non-comment-starting XML files again (bug#9144). - -2011-09-10 Andreas Schwab - - * image.c (gif_load): Fix calculation of bottom and right corner. - (Bug#9468) - -2011-09-10 Eli Zaretskii - - * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish - redisplay in small windows. - -2011-09-09 Eli Zaretskii - - * frame.c (x_report_frame_params): Cast to avoid compiler warnings. - -2011-09-08 Martin Rudalics - - * window.c (Fset_window_prev_buffers, Fset_window_next_buffers): - Operate on live windows only. - -2011-09-08 Juanma Barranquero - - * emacs.c (my_heap_start): #ifdef to avoid warnings when unused. - -2011-09-07 Eli Zaretskii - - * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it - only under bidi iteration. - -2011-09-07 Jan Djärv - - * gtkutil.c (xg_make_tool_item): Insert comment about eventbox. - -2011-09-06 Paul Eggert - - isnan: Fix porting problem to Solaris 10 with bundled gcc. - Without this fix, the command to link temacs failed due to an - undefined symbol __builtin_isnan. This is because - /usr/include/iso/math_c99.h #defines isnan(x) to - __builtin_isnan(x), but the bundled gcc, which identifies itself - as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have - a __builtin_isnan. - * floatfns.c (isnan): #undef, and then #define to a clone of - what's in data.c. - (Fisnan): Always define, since it's always available now. - (syms_of_floatfns): Always define isnan at the Lisp level. - -2011-09-06 Paul Eggert - - * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169). - -2011-09-06 Paul Eggert - - * fileio.c: Fix bugs with large file offsets (Bug#9428). - The previous code assumed that file offsets (off_t values) fit in - EMACS_INT variables, which is not true on typical 32-bit hosts. - The code messed up by falsely reporting buffer overflow in cases - such as (insert-file-contents "big" nil 1 2) into an empty buffer - when "big" contains more than 2**29 bytes, even though this - inserts just one byte and does not overflow the buffer. - (Finsert_file_contents): Store file offsets as off_t - values, not as EMACS_INT values. Check for overflow when - converting between EMACS_INT and off_t. When checking for - buffer overflow or for overlap, take the offsets into account. - Don't use EMACS_INT for small values where int suffices. - When checking for overlap, fix a typo: ZV was used where - ZV_BYTE was intended. - (Fwrite_region): Don't assume off_t fits into 'long'. - * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT. - -2011-09-05 Michael Albinus - - * dbusbind.c (xd_signature_cat): Rename from signature_cat. - -2011-09-04 Paul Eggert - - sprintf-related integer and memory overflow issues (Bug#9412). - - * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values. - (esprintf, exprintf, evxprintf): New functions. - * keyboard.c (command_loop_level): Now EMACS_INT, not int. - (cmd_error): Kbd macro iterations count is now EMACS_INT, not int. - (modify_event_symbol): Do not assume that the length of - name_alist_or_stem is safe to alloca and fits in int. - (Fexecute_extended_command): Likewise for function name and binding. - (Frecursion_depth): Wrap around reliably on integer overflow. - * keymap.c (push_key_description): First arg is now EMACS_INT, not int, - since some callers pass EMACS_INT values. - (Fsingle_key_description): Don't crash if symbol name contains more - than MAX_ALLOCA bytes. - * minibuf.c (minibuf_level): Now EMACS_INT, not int. - (get_minibuffer): Arg is now EMACS_INT, not int. - * lisp.h (get_minibuffer, push_key_description): Reflect API changes. - (esprintf, exprintf, evxprintf): New decls. - * window.h (command_loop_level, minibuf_level): Reflect API changes. - - * dbusbind.c (signature_cat): New function. - (xd_signature, Fdbus_register_signal): - Do not overrun buffer; instead, report string overflow. - - * dispnew.c (add_window_display_history): Don't overrun buffer. - Truncate instead; this is OK since it's just a log. - - * editfns.c (Fcurrent_time_zone): Don't overrun buffer - even if the time zone offset is outlandishly large. - Don't mishandle offset == INT_MIN. - - * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer - when creating daemon; the previous buffer-overflow check was incorrect. - - * eval.c (verror): Simplify by rewriting in terms of evxprintf, - which has the guts of the old verror function. - - * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name; - use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues. - - * font.c: Include , for DBL_MAX_10_EXP. - (font_unparse_xlfd): Don't blindly alloca long strings. - Don't assume XINT result fits in int, or that XFLOAT_DATA * 10 - fits in int, when using sprintf. Use single snprintf to count - length of string rather than counting it via multiple sprintfs; - that's simpler and more reliable. - (font_unparse_fcname): Use it to avoid sprintf buffer overrun. - (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not - sprintf, in case result does not fit in int. - - * fontset.c (num_auto_fontsets): Now printmax_t, not int. - (fontset_from_font): Print it. - - * frame.c (tty_frame_count): Now printmax_t, not int. - (make_terminal_frame, set_term_frame_name): Print it. - (x_report_frame_params): In X, window IDs are unsigned long, - not signed long, so print them as unsigned. - (validate_x_resource_name): Check for implausibly long names, - and don't assume name length fits in 'int'. - (x_get_resource_string): Don't blindly alloca invocation name; - use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does - not fit in int. - - * gtkutil.c: Include , for DBL_MAX_10_EXP. - (xg_check_special_colors, xg_set_geometry): - Make sprintf buffers a bit bigger, to avoid potential buffer overrun. - - * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA. - Use esprintf, not sprintf, in case result does not fit in int. - - * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int. - (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating - it as a large positive number. - (Fexecute_kbd_macro): Don't assume repeat count fits in int. - * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int. - - * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf, - in case result does not fit in int. - - * print.c (float_to_string): Detect width overflow more reliably. - (print_object): Make sprintf buffer a bit bigger, to avoid potential - buffer overrun. Don't assume list length fits in 'int'. Treat - print length of 0 as 0, not as infinity; to be consistent with other - uses of print length in this function. Don't overflow print length - index. Don't assume hash table size fits in 'long', or that - vectorlike size fits in 'unsigned long'. - - * process.c (make_process): Use printmax_t, not int, to format - process-name gensyms. - - * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function. - - * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger - to avoid potential buffer overrun. - - * xfaces.c (x_update_menu_appearance): Don't overrun buffer - if X resource line is longer than 512 bytes. - - * xfns.c (x_window): Make sprintf buffer a bit bigger - to avoid potential buffer overrun. - - * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer. - - * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF. - -2011-09-04 Paul Eggert - - Integer overflow fixes for scrolling, etc. - Without these, Emacs silently mishandles large integers sometimes. - For example, "C-u 4294967297 M-x recenter" was treated as if - it were "C-u 1 M-x recenter" on a typical 64-bit host. - - * xdisp.c (try_window_id): Check Emacs fixnum range before - converting to 'int'. - - * window.c (window_scroll_line_based, Frecenter): - Check that an Emacs fixnum is in range before assigning it to 'int'. - (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for - values converted from Emacs fixnums. - (Frecenter): Don't wrap around a line count if it is out of 'int' - range; instead, treat it as an extreme value. - (Fset_window_configuration, compare_window_configurations): - Use ptrdiff_t, not int, for index that might exceed 2 GiB. - - * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes - that can exceed INT_MAX. Check that EMACS_INT value is in range - before assigning it to the (possibly-narrower) index. - (match_limit): Don't assume that a fixnum can fit in 'int'. - - * print.c (print_object): Use ptrdiff_t, not int, for index that can - exceed INT_MAX. - - * indent.c (position_indentation): Now takes ptrdiff_t, not int. - (Fvertical_motion): Don't wrap around LINES values that don't fit - in 'int'. Instead, treat them as extreme values. This is good - enough for windows, which can't have more than INT_MAX lines anyway. - -2011-09-03 Lars Magne Ingebrigtsen - - * Require libxml/parser.h to avoid compilation warning. - - * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown. - - * xml.c (parse_region): Don't call xmlCleanupParser after parsing, - since this reportedly can destroy thread storage. - -2011-08-30 Chong Yidong - - * syntax.c (find_defun_start): Update all cache variables if - exiting early (Bug#9401). - -2011-08-30 Eli Zaretskii - - * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings. - - * xdisp.c (produce_stretch_glyph): No longer static, compiled also - when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY - frames. Call tty_append_glyph in the TTY case. (Bug#9402) - - * term.c (tty_append_glyph): New function. - (produce_stretch_glyph): Static function and its prototype deleted. - - * dispextern.h (produce_stretch_glyph, tty_append_glyph): - Add prototypes. - -2011-08-29 Paul Eggert - - * image.c (parse_image_spec): Check for nonnegative, not for positive, - when checking :margin (Bug#9390). - (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR): - Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, - so that the name doesn't mislead. All uses changed. - -2011-08-28 Johan Bockgård - - * term.c (init_tty) [HAVE_GPM]: Move mouse settings after - set_tty_hooks. - -2011-08-27 Eli Zaretskii - - * xdisp.c (move_it_to): Don't bail out early when reaching - position beyond to_charpos, if we are scanning backwards. - (move_it_vertically_backward): When DY == 0, make sure we get to - the first character in the line after the newline. - -2011-08-27 Paul Eggert - - * ccl.c: Improve and simplify overflow checking (Bug#9196). - (ccl_driver): Do not generate an out-of-range pointer. - (Fccl_execute_on_string): Remove unnecessary check for - integer overflow, noted by Stefan Monnier in - . - Remove a FIXME that didn't need fixing. - Simplify the newly-introduced buffer reallocation code. - -2011-08-27 Juanma Barranquero - - * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h. - -2011-08-26 Paul Eggert - - Integer and memory overflow issues (Bug#9196). - - * doc.c (get_doc_string): Rework so that - get_doc_string_buffer_size is the actual buffer size, rather than - being 1 less than the actual buffer size; this makes xpalloc more - convenient. - - * image.c (x_allocate_bitmap_record, cache_image): - * xselect.c (Fx_register_dnd_atom): - Simplify previous changes by using xpalloc. - - * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT, - since either will do and ptrdiff_t is convenient with xpalloc. - - * charset.c (charset_table_size) - (struct charset_sort_data.priority): Now ptrdiff_t. - (charset_compare): Don't overflow if priorities differ greatly. - (Fsort_charsets): Don't assume list length fits in int. - Check for size-calculation overflow when allocating sort data. - (syms_of_charset): Allocate an initial charset table that is - just under 64 KiB, to avoid problems with glibc malloc and mmap. - - * cmds.c (internal_self_insert): Check for size-calculation overflow. - - * composite.h (struct composition.glyph_len): Now int, not unsigned. - The actual value is always <= INT_MAX, and leaving it unsigned made - overflow checking harder. - - * dispextern.h (struct glyph_matrix.rows_allocated) - (struct face_cache.size): Now ptrdiff_t, for convenience in use - with xpalloc. The values are still always <= INT_MAX. - - * indent.c (compute_motion): Adjust to region_cache_forward sig change. - - * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls. - (SAFE_NALLOCA): New macro. - - * region-cache.c (struct boundary.pos, find_cache_boundary) - (move_cache_gap, insert_cache_boundary, delete_cache_boundaries) - (set_cache_region, invalidate_region_cache) - (revalidate_region_cache, know_region_cache, region_cache_forward) - (region_cache_backward, pp_cache): - Use ptrdiff_t, not EMACS_INT, since either will do. This is needed - so that ptrdiff_t * can be passed to xpalloc. - (struct region_cache): Similarly, for gap_start, gap_len, cache_len, - beg_unchanged, end_unchanged, buffer_beg, buffer_end members. - (pp_cache): Don't assume cache_len fits in int. - * region-cache.h: Adjust extern decls to match. - - * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not - EMACS_INT, since either will do, for xpalloc. - - * alloc.c: Include verify.h, and check that int fits in ptrdiff_t. - (xnmalloc, xnrealloc, xpalloc): New functions. - - * bidi.c (bidi_shelve_header_size): New constant. - (bidi_cache_ensure_space, bidi_shelve_cache): Use it. - (bidi_cache_ensure_space): Avoid integer overflow when allocating. - - * bidi.c (bidi_cache_shrink): - * buffer.c (overlays_at, overlays_in, record_overlay_string) - (overlay_strings): - Don't update size of array until after memory allocation succeeds, - because xmalloc/xrealloc may not return. - (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help - now that we have proper integer overflow checking. - (record_overlay_string, overlay_strings): Catch overflows when - calculating size of overlay_str_buf. - - * callproc.c (Fcall_process): Check for size overflow when - calculating size of args2. - (child_setup): Avoid overflow by using size_t rather than ptrdiff_t. - Normally we prefer signed values, but sticking with ptrdiff_t would - require adding more-complicated checks. - - * ccl.c (Fccl_execute_on_string): Check for memory overflow. - Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do. - Redo buffer-overflow calculations to avoid integer overflow. - Add a FIXME comment where memory seems to be over-allocated. - - * character.c (Fstring): Check for size-calculation overflow. - - * coding.c (produce_chars): Redo buffer-overflow calculations to avoid - unnecessary integer overflow. Check for size overflow. - (encode_coding_object): Don't update size until xmalloc succeeds. - - * composite.c (get_composition_id): Check for overflow in glyph - length calculations. - - Integer and memory overflow fixes for display code. - * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int. - * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool) - (scrolling_window): Check for overflow in size calculations. - (line_draw_cost, realloc_glyph_pool, add_row_entry): - Don't assume glyph table len fits in int. - (struct row_entry.bucket, row_entry_pool_size, row_entry_idx) - (row_table_size): Now ptrdiff_t, not int. - (scrolling_window): Avoid overflow in size calculations. - Don't update size until allocation succeeds. - * fns.c (concat): Check for overflow in size calculations. - (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT. - * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros. - (NEXT_ALMOST_PRIME_LIMIT): New constant. - - * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int. - (get_doc_string): Check for size calculation overflow. - Don't update size until allocation succeeds. - (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not - EMACS_INT, where ptrdiff_t will do. - (Fsubstitute_command_keys): Check for string overflow. - - * editfns.c (set_time_zone_rule): Don't assume environment length - fits in int. - (message_length): Now ptrdiff_t, not int. - (Fmessage_box): Don't update size until allocation succeeds. - Don't assume message length fits in int. - (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do. - - * emacs.c (main): Do not reallocate argv, since there is a null at - the end that can be overwritten, and this way there's no need to - worry about size-calculation overflow. - (sort_args): Check for size-calculation overflow. - - * eval.c (init_eval_once, grow_specpdl): Don't update size until - alloc succeeds. - (call_debugger, grow_specpdl): Redo calculations to avoid overflow. - - * frame.c (set_menu_bar_lines, x_set_frame_parameters) - (x_set_scroll_bar_width, x_figure_window_size): - Check for integer overflow. - (x_set_alpha): Do not assume XINT fits in int. - - * frame.h (struct frame): Use int, not EMACS_INT, where int works. - This is for the members text_lines, text_cols, total_lines, total_cols, - where the system imposes an 'int' limit. - - * fringe.c (Fdefine_fringe_bitmap): - Don't update size until alloc works. - - * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring) - (ftfont_shape_by_flt): Check for integer overflow in size calculations. - - * gtkutil.c (get_utf8_string, xg_store_widget_in_map): - Check for size-calculation overflow. - (get_utf8_string): Use ptrdiff_t, not size_t, where either will - do, as we prefer signed integers. - (id_to_widget.max_size, id_to_widget.used) - (xg_store_widget_in_map, xg_remove_widget_from_map) - (xg_get_widget_from_map, xg_get_scroll_id_for_window) - (xg_remove_scroll_bar, xg_update_scrollbar_pos): - Use and return ptrdiff_t, not int. - (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int. - * gtkutil.h: Change prototypes to match the above. - - * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these - are duplicate now that they've been promoted to lisp.h. - (x_allocate_bitmap_record, x_alloc_image_color) - (make_image_cache, cache_image, xpm_load): - Don't update size until alloc is done. - (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors) - (x_detect_edges): - Check for size calculation overflow. - (ct_colors_allocated_max): New constant. - (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid - overflow. - - * keyboard.c (read_char, menu_bar_items, tool_bar_items) - (read_char_x_menu_prompt, read_char_minibuf_menu_width) - (read_char_minibuf_menu_prompt, follow_key, read_key_sequence): - Use ptrdiff_t, not int, to count maps. - (read_char_minibuf_menu_prompt): Check for overflow in size - calculations. Don't update size until allocation succeeds. - Redo calculations to avoid overflow. - * keyboard.h: Change prototypes to match the above. - - * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int, - to count maps. - (current_minor_maps): Check for size calculation overflow. - * keymap.h: Change prototypes to match the above. - - * lread.c (read1, init_obarray): Don't update size until alloc done. - - * macros.c (Fstart_kbd_macro): Don't update size until alloc done. - (store_kbd_macro_char): Reorder multiplicands to avoid overflow. - - * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail): - Now ptrdiff_t, not int. - * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes. - (ns_draw_fringe_bitmap): Rewrite to avoid overflow. - - * process.c (Fnetwork_interface_list): Check for overflow - in size calculation. - - * region-cache.c (move_cache_gap): Check for size calculation overflow. - - * scroll.c (do_line_insertion_deletion_costs): Check for size calc - overflow. Don't bother calling xmalloc when xrealloc will do. - - * search.c (Freplace_match): Check for size calculation overflow. - (Fset_match_data): Don't assume list lengths fit in 'int'. - - * sysdep.c (system_process_attributes): Use ptrdiff_t, not int, - for command line length. Do not attempt to address one before the - beginning of an array, as that's not portable. - - * term.c (max_frame_lines): Remove; unused. - (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t, - not int. - (encode_terminal_code, calculate_costs): Check for size - calculation overflow. - (encode_terminal_code): Use ptrdiff_t, not int, to record glyph - table lengths and related sizes. Don't update size until alloc - done. Redo calculations to avoid overflow. - (calculate_costs): Don't bother calling xmalloc when xrealloc will do. - - * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of - subtracting pointers. - (gobble_line): Check for overflow more carefully. Don't update size - until alloc done. - - * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes. - Don't update size until alloc done. - Redo size calculations to avoid overflow. - Check for size calculation overflow. - (main) [DEBUG]: Fix typo in invoking tparam1. - - * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title): - Use ptrdiff_t, not int, for sizes. - (store_mode_line_noprop_char): Don't update size until alloc done. - - * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face): - Use ptrdiff_t, not int, for sizes. - (Finternal_make_lisp_face, cache_face): - Check for size calculation overflow. - (cache_face): Treat size calculation overflows as if they were - memory exhaustion (the usual treatment), rather than aborting. - - * xfns.c (x_encode_text, x_set_name_internal) - (Fx_change_window_property): Use ptrdiff_t, not int, to count - sizes, since they can exceed INT_MAX in size. Check for size - calculation overflow. - - * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc. - (xg_select): Check for size calculation overflow. - Don't update size until alloc done. - - * xrdb.c (get_environ_db): Don't assume path length fits in int, - as sprintf is limited to int lengths. - - * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX) - (X_LONG_MIN): New macros. - Use them to make the following changes clearer. - (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer. - This change doesn't affect the value now, but it may help remind - future maintainers not to raise the value too much later. - (SELECTION_QUANTUM): Remove, replacing with ... - (selection_quantum): ... new function, which avoids overflow. - All uses changed. - (struct selection_data.size): Now ptrdiff_t, not int, to avoid - assumption that selection length fits in 'int'. - (x_reply_selection_request, x_handle_selection_request) - (x_get_window_property, receive_incremental_selection) - (x_get_window_property_as_lisp_data, selection_data_to_lisp_data) - (lisp_data_to_selection_data, clean_local_selection_data): - Use ptrdiff_t, not int, to record length of selection. - (x_reply_selection_request, x_get_window_property) - (receive_incremental_selection, x_property_data_to_lisp): - Redo calculations to avoid overflow. - (x_reply_selection_request): When sending hint, ceiling it at - X_LONG_MAX rather than relying on wraparound overflow to send - something. - (x_get_window_property, receive_incremental_selection) - (lisp_data_to_selection_data, x_property_data_to_lisp): - Check for size-calculation overflow. - (x_get_window_property, receive_incremental_selection) - (lisp_data_to_selection_data, Fx_register_dnd_atom): - Don't store size until memory allocation succeeds. - (x_get_window_property): Plug memory leak on memory exhaustion. - Don't double-block input; malloc is safe here. Don't assume 2**34 - - 4 fits in unsigned long. Add an xassert to check - XGetWindowProperty overflow. Be more careful about overflow - calculations, and distinguish size from memory overflow better. - (receive_incremental_selection): When tracing, don't assume - unsigned int is less than INT_MAX. - (x_selection_data_to_lisp_data): Remove unnecessary (and in theory - harmful) conversions of unsigned short to int. - (lisp_data_to_selection_data): Don't assume that integers - in the range -65535 through -1 fit in an X unsigned short. - Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into - result parameters unless successful. Rely on cons_to_unsigned - to report problems with elements; the old code wasn't right anyway. - (x_check_property_data): Check for int overflow; we cannot use - a wider type due to X limits. - (x_handle_dnd_message): Use unsigned int, to avoid int overflow. - - * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow. - - * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent) - (x_term_init): Check for size calculation overflow. - (x_color_cells): Don't store size until memory allocation succeeds. - (handle_one_xevent): Use ptrdiff_t, not int, for byte counts. - Don't assume alloca size is less than MAX_ALLOCA. - (x_term_init): Don't assume length fits in int (sprintf is limited - to int size). - - Use ptrdiff_t for composition IDs. - * character.c (lisp_string_width): - * composite.c (composition_table_size, n_compositions) - (get_composition_id, composition_gstring_from_id): - * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id): - * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): - * window.c (Frecenter): - Use ptrdiff_t, not int, for composition IDs. - * composite.c (get_composition_id): Check for integer overflow. - * composite.h: Adjust prototypes to match the above changes. - - Use ptrdiff_t for hash table indexes. - * category.c (hash_get_category_set): - * ccl.c (ccl_driver): - * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID): - * coding.c (coding_system_charset_list, detect_coding_system): - * coding.h (struct coding_system.id): - * composite.c (get_composition_id, gstring_lookup_cache): - * fns.c (hash_lookup, hash_put, Fgethash, Fputhash): - * image.c (xpm_get_color_table_h): - * lisp.h (hash_lookup, hash_put): - * minibuf.c (Ftest_completion): - Use ptrdiff_t for hash table indexes, not int (which is too - narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on - 32-bit --with-wide-int hosts). - - * charset.c (Fdefine_charset_internal): Check for integer overflow. - Add a FIXME comment about memory leaks. - (syms_of_charset): Don't assume xmalloc returns. - - Don't assume that stated character widths fit in int. - * character.c (Fchar_width, c_string_width, lisp_string_width): - * character.h (CHAR_WIDTH): - * indent.c (MULTIBYTE_BYTES_WIDTH): - Use sanitize_char_width to avoid undefined and/or bad behavior - with outlandish widths. - * character.h (sanitize_tab_width): Rename from sanitize_width, - now that we have two such functions. All uses changed. - (sanitize_char_width): New inline function. - - Don't assume that tab-width fits in int. - * character.h (sanitize_width): New inline function. - (SANE_TAB_WIDTH): New macro. - (ASCII_CHAR_WIDTH): Use it. - * indent.c (sane_tab_width): Remove. All uses replaced by - SANE_TAB_WIDTH (current_buffer). - * xdisp.c (init_iterator): Use SANE_TAB_WIDTH. - - * fileio.c: Integer overflow issues with file modes. - (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int. - - * charset.c (read_hex): New arg OVERFLOW. All uses changed. - Remove unreachable code. - (read_hex, load_charset_map_from_file): Check for integer overflow. - - * xterm.c: Don't go over XClientMessageEvent limit. - (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed. - (x_send_scroll_bar_event): Likewise. Check that the size does not - exceed limits imposed by XClientMessageEvent, as well as the usual - ptrdiff_t and size_t limits. - - * keyboard.c: Overflow, signedness and related fixes. - (make_lispy_movement): Use same integer type in forward decl - that is used in the definition. - (read_key_sequence, keyremap_step): - Change bufsize argument back to int, undoing my 2011-03-30 change. - We prefer signed types, and int is wide enough here. - (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less - than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow - larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string - length, not size_t. Use ptrdiff_t for index, not int. - (keyremap_step, read_key_sequence): Redo bufsize check to avoid - possibility of integer overflow. - - Overflow, signedness and related fixes for images. - - * dispextern.h (struct it.stack[0].u.image.image_id) - (struct_it.image_id, struct image.id, struct image_cache.size) - (struct image_cache.used, struct image_cache.ref_count): - * gtkutil.c (update_frame_tool_bar): - * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p) - (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image) - (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image): - * nsmenu.m (update_frame_tool_bar): - * xdisp.c (calc_pixel_width_or_height): - * xfns.c (image_cache_refcount): - Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits - on typical 64-bit hosts. - - * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros. - (x_bitmap_pixmap, x_create_x_image_and_pixmap): - Omit unnecessary casts to int. - (parse_image_spec): Check that integers fall into 'int' range - when the callers expect that. - (image_ascent): Redo ascent calculation to avoid int overflow. - (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages. - (lookup_image): Remove unnecessary tests. - (xbm_image_p): Locals are now of int, not EMACS_INT, - since parse_image_check makes sure they fit into int. - (png_load, gif_load, svg_load_image): - Prefer int to unsigned where either will do. - (tiff_handler): New function, combining the cores of the - old tiff_error_handler and tiff_warning_handler. - This function is rewritten to use vsnprintf and thereby avoid - stack buffer overflows. It uses only the features of vsnprintf - that are common to both POSIX and native Microsoft. - (tiff_error_handler, tiff_warning_handler): Use it. - (tiff_load, gif_load, imagemagick_load_image): - Don't assume :index value fits in 'int'. - (gif_load): Omit unnecessary cast to double, and avoid double-rounding. - (imagemagick_load_image): Check that crop parameters fit into - the integer types that MagickCropImage accepts. Don't assume - Vimagemagick_render_type has a nonnegative value. Don't assume - size_t fits in 'long'. - (gs_load): Use printmax_t to print the widest integers possible. - Check for integer overflow when computing image height and width. - -2011-08-26 Eli Zaretskii - - * xdisp.c (redisplay_window): Don't force window start if point - will be invisible in the resulting window. (Bug#9324) - -2011-08-25 Eli Zaretskii - - * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when - the display spec is of the form `(space ...)'. - (handle_display_spec): Return the value returned by - handle_single_display_spec, not just 1 or zero. - (handle_single_display_spec): If the display spec is of the form - `(space ...)', and specifies display in the text area, return 2 - rather than 1. - (try_cursor_movement): Check for the need to scroll more - accurately, and prefer exact match for point under bidi. - Don't advance `row' beyond the last row of the window. - - * dispextern.h (struct bidi_it): Rename the disp_prop_p member - into disp_prop; all users changed. - - * bidi.c (bidi_fetch_char): If compute_display_string_pos returns - DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character - for the text covered by the display property. - -2011-08-25 Chong Yidong - - * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer. - Change return value to nil. - (Frecord_buffer): Delete unused function. - -2011-08-24 Eli Zaretskii - - * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte - buffers, return left-to-right. - (set_cursor_from_row): Consider candidate row a win if its glyph - represents a newline and point is on that newline. Fixes cursor - positioning on the newline at EOL of R2L text within L2R - paragraph, and vice versa. - (try_cursor_movement): Check continued rows, in addition to - continuation rows. Fixes unwarranted scroll when point enters a - continued line of R2L text within an L2R paragraph, or vice versa. - (cursor_row_p): Consider the case of point being equal to - MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving - from the end of a short line to the beginning of a continued line - of R2L text within L2R paragraph. - (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for - composed characters. - - * bidi.c (bidi_check_type): Use xassert. - (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p - members. - -2011-08-23 Eli Zaretskii - - * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of - a character. - -2011-08-23 Chong Yidong - - * nsfont.m (ns_otf_to_script): Fix typo. - -2011-08-22 Kenichi Handa - - * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a - extra slot even if the purpose is char-code-property-table. - -2011-08-23 Eli Zaretskii - - * xdisp.c (redisplay_window): When computing centering_position, - account for the height of the header line. (Bug#8874) - - * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos - instead of CHAR_TO_BYTE. Fixes a crash when a completion - candidate is selected by the mouse, and that candidate has a - composed character under the mouse. - - * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel - coordinates reported by pos-visible-in-window-p for a composed - character in column zero. - -2011-08-23 Stefan Monnier - - * cmds.c (Fself_insert_command): Mention post-self-insert-hook. - -2011-08-22 Eli Zaretskii - - * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition, - consider it a hit if to_charpos is anywhere in the range of the - composed buffer positions. - -2011-08-22 Chong Yidong - - * image.c (gif_load): Don't assume that each subimage has the same - dimensions as the base image. Handle disposal method that is - "undefined" by the gif spec (Bug#9335). - -2011-08-20 Chong Yidong - - * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329). - (Fcondition_case): Document `debug' symbol in error handler. - -2011-08-19 Eli Zaretskii - - * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of - face ID by FACE_FROM_ID, and avoid a crash when mouse is moved - from an Org mode buffer to a Speedbar frame. - - * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from - a composition, take its buffer position from IT->cmp_it.charpos. - Fixes cursor positioning at the beginning of a line that begins - with a composed character. - -2011-08-18 Eli Zaretskii - - * bidi.c (bidi_get_type): If bidi_type_table reports zero as the - character bidirectional type, use STRONG_L instead. Fixes crashes - in a buffer produced by `describe-categories'. - - * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p - members before the level stack, so they would be saved and - restored when copying iterator state. Fixes incorrect reordering - around TABs covered by display properties. - -2011-08-18 Andreas Schwab - - * process.c (Fnetwork_interface_list): Correctly determine buffer size. - -2011-08-17 Chong Yidong - - * eval.c (internal_condition_case, internal_condition_case_1) - (internal_condition_case_2, internal_condition_case_n): - Remove unnecessary aborts (Bug#9081). - -2011-08-17 Eli Zaretskii - - * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file - has no `load' handler, try opening the file locally. (Bug#9311) - -2011-08-16 Ken Brown - - * gmalloc.c: Expand comment. - -2011-08-16 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Don't accept a previous candidate - if it fails the cursor_row_p test. Fixes cursor positioning at ZV. - -2011-08-16 Ken Brown - - Fix memory allocation problems in Cygwin build (Bug#9273). - - * unexcw.c ( __malloc_initialized): Declare external variable. - (fixup_executable): Force the dumped emacs to reinitialize malloc. - - * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo): - New variables. - (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the - dumped emacs. - (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage - in the static heap. - [CYGWIN] (special_realloc): New function. - (_realloc_internal_nolock) [CYGWIN]: Use the new function on - requests to realloc storage in the static heap. - -2011-08-15 Paul Eggert - - * bidi.c (bidi_initialize): Remove unused local. - -2011-08-15 Eli Zaretskii - - * bidimirror.h: - * biditype.h: Remove file. - * makefile.w32-in ($(BLD)/bidi.$(O)): - * deps.mk (bidi.o): Remove biditype.h and bidimirror.h. - - * dispextern.h: Fix a typo in the comment to bidi_type_t. - - * chartab.c: Improve commentary for the uniprop_table API. - - * bidi.c (bidi_paragraph_init): Support zero value of - bidi_ignore_explicit_marks_for_paragraph_level. - (bidi_initialize): Use uniprop_table instead of including - biditype.h and bidimirror.h. - - * xdisp.c (move_it_in_display_line_to): Don't reset pixel - coordinates of the iterator when restoring from ppos_it. - (Bug#9296) - -2011-08-14 Kenichi Handa - - * process.c (create_process): Call setup_process_coding_systems - after the pid of the process is set to -1 (Bug#8162). - -2011-08-14 Eli Zaretskii - - * xdisp.c (move_it_in_display_line_to): Don't invoke - IT_RESET_X_ASCENT_DESCENT when iterator position was restored from - ppos_it. Fixes vertical cursor motion when line beginning is - covered by an image. (Bug#9296) - -2011-08-14 Jan Djärv - - * nsterm.h (ns_run_ascript): Declare. - (NSAPP_DATA2_RUNASSCRIPT): Define. - - * nsfns.m (as_script, as_result, as_status): New static variables. - (ns_run_ascript): New function. - (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined - event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start - the event loop. Get status from as_status (Bug#7276). - - * nsterm.m (sendEvent): If event is NSApplicationDefined and - data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit - the event loop (Bug#7276). - -2011-08-14 Andreas Schwab - - * gnutls.c (QCgnutls_bootprop_priority) - (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist) - (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks) - (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname) - (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags) - (QCgnutls_bootprop_verify_hostname_error) - (QCgnutls_bootprop_callbacks_verify): Rename from - Qgnutls_bootprop_..., all uses changed. - - * xfaces.c (QCignore_defface): Rename from Qignore_defface, all - uses changed. - -2011-08-14 Paul Eggert - - * xfaces.c (Qframe_set_background_mode): Now static. - * dispextern.h (Qframe_set_background_mode): Remove decl. - - * process.c (Fnetwork_interface_info): Declare local only if needed. - -2011-08-13 Jan Djärv - - * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477). - (Fnetwork_interface_list): Allocate in increments of bytes instead - of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting - bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct - sockaddr. - (struct ifflag_def): notrailers is smart on OSX. - (Fnetwork_interface_info): Handle case when ifr_flags is negative. - Get hardware address with getifaddrs if available. - -2011-08-12 Eli Zaretskii - - * xdisp.c (iterate_out_of_display_property): xassert that - IT->position is set to within IT->object's boundaries. Break from - the loop as soon as EOB is reached; avoids infloops in redisplay - when IT->position is set up wrongly due to some bug. - Set IT->current to match the bidi iterator unconditionally. - (push_display_prop): Allow GET_FROM_STRING as IT->method on - entry. Force push_it to save on the stack the current - buffer/string position, to be restored by pop_it. Fix flags in - the iterator structure wrt the object coming from a display - property, as `line-prefix' and `wrap-prefix' are not ``replacing'' - properties. (Bug#9284) - -2011-08-09 Andreas Schwab - - * fontset.c (fontset_get_font_group): Add proper type checks. - (Bug#9172) - -2011-08-09 YAMAMOTO Mitsuharu - - * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS - and LC_VERSION_MIN_MACOSX. - (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function. - (dump_it) [LC_FUNCTION_STARTS]: Use it. - -2011-08-08 Eli Zaretskii - - * xdisp.c (forward_to_next_line_start): Allow to use the - no-display-properties-and-no-overlays under bidi display. - Set disp_pos in the bidi iterator to avoid searches for display - properties and overlays. - -2011-08-08 Chong Yidong - - * editfns.c (Fset_time_zone_rule): Document relationship with the - setenv function. - - * ftfont.c (ftfont_pattern_entity): Copy the extras argument to - the font entity extracted from the cache (Bug#8109). - -2011-08-07 Chong Yidong - - * composite.c (autocmp_chars): Don't reset point. That is done by - restore_point_unwind (Bug#5984). - -2011-08-07 Juri Linkov - - * editfns.c (Fformat_time_string): Doc fix, add tag `usage:' - to show the arg `TIME' instead of `TIMEVAL'. - -2011-08-06 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Fix cursor positioning when a - display property strides EOL and includes a newline, as in - longlines-mode. (Bug#9254) - (move_it_in_display_line_to): Fix vertical-motion in a buffer with - word-wrap under bidirectional display. (Bug#9224) - - * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE - is non-zero, even if the data buffer is NULL. Fixes a crash in - vertical-motion with longlines-mode. (Bug#9254) - -2011-08-05 Eli Zaretskii - - * bidi.c : Now static. - (bidi_initialize): Initialize bidi_cache_total_alloc. - - * xdisp.c (display_line): Release buffer allocated for shelved bidi - cache. (Bug#9221) - - * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total - amount allocated this far in `bidi_cache_total_alloc'. - (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if - non-zero, only free the data buffer without restoring the cache - contents. All callers changed. - - * dispextern.h (bidi_unshelve_cache): Update prototype. - - * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to) - (move_it_in_display_line, move_it_to) - (move_it_vertically_backward, move_it_by_lines): Replace the call - to xfree to an equivalent call to bidi_unshelve_cache. - (move_it_in_display_line_to): Fix logic of returning - MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224) - -2011-08-05 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that - came from a string character with a `cursor' property. (Bug#9229) - -2011-08-04 Jan Djärv - - * Makefile.in (LIB_PTHREAD): New variable. - (LIBES): Add LIB_PTHREAD (Bug#9216). - - * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h: - Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216). - -2011-08-04 Andreas Schwab - - * regex.c (re_iswctype): Remove some redundant boolean conversions. - -2011-08-04 Jan Djärv - - * xterm.c (x_find_topmost_parent): New function. - (x_set_frame_alpha): Find topmost parent window with - x_find_topmost_parent and set the property there also (bug#9181). - (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify. - -2011-08-04 Paul Eggert - - * callproc.c (Fcall_process): Avoid vfork clobbering - the local vars buffer, coding_systems, current_dir. - -2011-08-03 Stefan Monnier - - * keymap.c (Fmake_composed_keymap): Move to subr.el. - -2011-08-03 Paul Eggert - - * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE - so that it is not optimized away. - - * xdisp.c (compute_display_string_pos): Remove unused local. - -2011-08-02 Eli Zaretskii - - Fix slow cursor motion and scrolling in large buffers with - selective display, like Org Mode buffers. (Bug#9218) - - * dispextern.h (struct bidi_it): New member disp_prop_p. - - * xdisp.c: Remove one-slot cache of display string positions. - (compute_display_string_pos): Accept an additional argument - DISP_PROP_P; callers changed. Scan at most 5K characters forward - for a display string or property. If found, set DISP_PROP_P - non-zero. - - * bidi.c (bidi_fetch_char): Accept an additional argument - DISP_PROP_P, and pass it to compute_display_string_pos. - Only handle text covered by a display string if DISP_PROP_P is returned - non-zero. All callers of bidi_fetch_char changed. - -2011-08-02 Stefan Monnier - - * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE. - -2010-12-03 Don March - - * keymap.c (Fdefine_key): Fix non-prefix key error message when - last character M-[char] is translated to ESC [char] (bug#7541). - -2011-08-02 Kenichi Handa - - * lisp.h (uniprop_table): Extern it. - - * chartab.c (uniprop_table): Make it non-static. - -2011-08-01 Eli Zaretskii - - * xdisp.c (forward_to_next_line_start): Accept additional argument - BIDI_IT_PREV, and store into it the state of the bidi iterator had - on the newline. - (reseat_at_next_visible_line_start): Use the bidi iterator state - returned by forward_to_next_line_start to restore the state of - it->bidi_it after backing up to previous newline. (Bug#9212) - -2011-07-30 Andreas Schwab - - * regex.c (re_comp): Protoize. - (re_exec): Fix return type. - (regexec): Fix type of `ret'. (Bug#9203) - -2011-07-28 Paul Eggert - - * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189). - This is needed if max-image-size is a floating-point number. - -2011-07-28 Andreas Schwab - - * print.c (print_object): Print empty symbol as ##. - - * lread.c (read1): Read ## as empty symbol. - -2011-07-28 Alp Aker - - * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when - setting frame foreground color (Bug#9175). - (x_set_background_color): Likewise. - - * nsmenu.m (-setText): Size tooltip dimensions precisely to - contents (Bug#9176). - (EmacsTooltip -init): Remove bezels and add shadows to - tooltip windows. - - * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe - or scroll bar (Bug#8470). - - * nsfont.m (nsfont_open): Remove assignment to voffset and - unnecessary vars hshink, expand, hd, full_height, min_height. - (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913). + * nsterm.m (x_free_frame_resources): + * term.c (tty_free_frame_resources): + * xterm.c (x_free_frame_resources): Do not check for non-NULL + face cache because it's implied by free_frame_faces anyway. + * w32term.c (x_free_frame_resources): Likewise. Do not call + free_frame_faces twice. - * nsterm.h (nsfont_info): Remove voffset field. +2013-12-11 Rüdiger Sonderfeld -2011-07-28 Alp Aker + * editfns.c (Fformat_time_string): Mention %F in the doc. - Implement strike-through and overline on NextStep (Bug#8863). +2013-12-11 Martin Rudalics - * nsfont.m (nsfont_open): Use underline position provided by font, - instead of hard-coded value of 2. - (nsfont_draw): Call ns_draw_text_decoration instead. + * window.c (resize_frame_windows): Don't return immediately when + the root window's size doesn't change - the minibuffer window + may still have to be repositioned/resized. + * xfns.c (Fx_create_frame): Always change the frame size after + initializing the frame's faces. + * xterm.c (handle_one_xevent): Don't set pixel sizes here, + change_frame_size should already have done it. + (x_new_font): Assign new tool- and menu-bar heights. + (x_set_window_size_1): Account for tool- and menu-bar heights + (Bug#16013). Don't set pixel sizes since change_frame_size + should already have done it. - * nsterm.h: Add declaration for ns_draw_text_decoration. +2013-12-11 Paul Eggert - * nsterm.m (ns_draw_text_decoration): New function for drawing - underline, overline, and strike-through. - (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to - ns_draw_text_decoration. Change treatment of cursor drawing to - accommodate underlining, etc. + Remove the option of using libcrypto. + * Makefile.in (LIB_CRYPTO): Remove. + (LIBES): Don't use it. -2011-07-28 Eli Zaretskii +2013-12-11 Juri Linkov - * buffer.c (init_buffer_once): Set bidi-display-reordering to t by - default. + * term.c (term_get_fkeys_1): Remove non-standard IBM terminfo + as obsolete to avoid conflicts with . (Bug#13471) -2011-07-28 Paul Eggert +2013-12-10 Dmitry Antipov - * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race. - Without this fix, if a signal arrives just after memory fills up, - 'malloc' might be invoked reentrantly. + * xdisp.c (display_tool_bar_line): Don't extend on a previously + drawn tool bar items (Bug#16058). + * font.c (font_find_for_lface): Ensure SAFE_FREE on return. - * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1. - In other words, assume that every image size is allowed, on non-X - hosts. This assumption is probably wrong, but it lets Emacs compile. +2013-12-09 Ken Brown -2011-07-28 Andreas Schwab + * frame.c (get_frame_param): Make extern if HAVE_NTGUI. - * regex.c (re_iswctype): Convert return values to boolean. - -2011-07-28 Eli Zaretskii - - * xdisp.c (compute_display_string_pos): Don't use cached display - string position if the buffer had its restriction changed. - (Bug#9184) - -2011-07-28 Paul Eggert - - * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering. - -2011-07-28 Paul Eggert - - Integer signedness and overflow and related fixes. (Bug#9079) - - * bidi.c: Integer size and overflow fixes. - (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx) - (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_ensure_space) - (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack) - (bidi_find_other_level_edge): - Use ptrdiff_t instead of EMACS_INT where either will do. - This works better on 32-bit hosts configured --with-wide-int. - (bidi_cache_ensure_space): Check for size-calculation overflow. - Use % rather than repeated addition, for better worst-case speed. - Don't set bidi_cache_size until after xrealloc returns, because it - might not return. - (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow. - (bidi_cache_ensure_space): Also check that the bidi cache size - does not exceed that of the largest Lisp string or buffer. See Eli - Zaretskii in . - - * alloc.c (__malloc_size_t): Remove. - All uses replaced by size_t. See Andreas Schwab's note - . - - * image.c: Improve checking for integer overflow. - (check_image_size): Assume that f is nonnull, since - it is always nonnull in practice. This is one less thing to - worry about when checking for integer overflow later. - (x_check_image_size): New function, which checks for integer - overflow issues inside X. - (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it. - This removes the need for a memory_full check. - (xbm_image_p): Rewrite to avoid integer multiplication overflow. - (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size. - (xbm_read_bitmap_data): Change locals back to 'int', since - their values must fit in 'int'. - (xpm_load_image, png_load, tiff_load): - Invoke x_create_x_image_and_pixmap earlier, - to avoid much needless work if the image is too large. - (tiff_load): Treat overly large images as if - x_create_x_image_and_pixmap failed, not as malloc failures. - (gs_load): Use x_check_image_size. - - * gtkutil.c: Omit integer casts. - (xg_get_pixbuf_from_pixmap): Remove unnecessary cast. - (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast. - - * image.c (png_load): Don't assume height * row_bytes fits in 'int'. - - * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug. - Without this fix, (bitmap-spec-p '(34359738368 1 "x")) - would wrongly return t on a 64-bit host. - - * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros. - The plain *_OVERFLOW macros run afoul of GCC bug 49705 - - and therefore cause GCC to emit a bogus diagnostic in some cases. - - * image.c: Integer signedness and overflow and related fixes. - This is not an exhaustive set of fixes, but it's time to - record what I've got. - (lookup_pixel_color, check_image_size): Remove redundant decls. - (check_image_size): Don't assume that arbitrary EMACS_INT values - fit in 'int', or that arbitrary 'double' values fit in 'int'. - (x_alloc_image_color, x_create_x_image_and_pixmap, png_load) - (tiff_load, imagemagick_load_image): - Check for overflow in size calculations. - (x_create_x_image_and_pixmap): Remove unnecessary test for - xmalloc returning NULL; that can't happen. - (xbm_read_bitmap_data): Don't assume sizes fit into 'int'. - (xpm_color_bucket): Use better integer hashing function. - (xpm_cache_color): Don't possibly over-allocate memory. - (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory) - (gif_memory_source): - Use ptrdiff_t, not int or size_t, to record sizes. - (png_load): Don't assume values greater than 2**31 fit in 'int'. - (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when - either works, as we prefer signed integers. - (tiff_read_from_memory, tiff_write_from_memory): - Return tsize_t, not size_t, since that's what the TIFF API wants. - (tiff_read_from_memory): Don't fail simply because the read would - go past EOF; instead, return a short read. - (tiff_load): Omit no-longer-needed casts. - (Fimagemagick_types): Don't assume size fits into 'int'. - - Improve hashing quality when configured --with-wide-int. - * fns.c (hash_string): New function, taken from sxhash_string. - Do not discard information about ASCII character case; this - discarding is no longer needed. - (sxhash-string): Use it. Change sig to match it. Caller changed. - * lisp.h: Declare it. - * lread.c (hash_string): Remove, since we now use fns.c's version. - The fns.c version returns a wider integer if --with-wide-int is - specified, so this should help the quality of the hashing a bit. - - * emacs.c: Integer overflow minor fix. - (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed. - Define only if GNU_LINUX. - (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX. - - * dispnew.c: Integer signedness and overflow fixes. - Remove unnecessary forward decls, that were a maintenance hassle. - (history_tick): Now uprintmax_t, so it's more likely to avoid overflow. - All uses changed. - (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer) - (scrolling_window): Use ptrdiff_t, not int, for byte count. - (prepare_desired_row, line_draw_cost): - Use int, not unsigned, where either works. - (save_current_matrix, restore_current_matrix): - Use ptrdiff_t, not size_t, where either works. - (init_display): Check for overflow more accurately, and without - relying on undefined behavior. - - * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide): - Remove, replacing with the new symbols in lisp.h. All uses changed. - * fileio.c (make_temp_name): - * filelock.c (lock_file_1, lock_file): - * xdisp.c (message_dolog): - Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts. - Use pMd etc. instead. - * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros, - replacing the pWIDE etc. symbols removed from editfns.c. - - * keyboard.h (num_input_events): Now uintmax_t. - This is (very slightly) less likely to mess up due to wraparound. - All uses changed. + * lisp.h (get_frame_param): Adjust conditions for prototype + declaration. - * buffer.c: Integer signedness fixes. - (alloc_buffer_text, enlarge_buffer_text): - Use ptrdiff_t rather than size_t when either will do, as we prefer - signed integers. - - * alloc.c: Integer signedness and overflow fixes. - Do not impose an arbitrary 32-bit limit on malloc sizes when debugging. - (__malloc_size_t): Default to size_t, not to int. - (pure_size, pure_bytes_used_before_overflow, stack_copy_size) - (Fgarbage_collect, mark_object_loop_halt, mark_object): - Prefer ptrdiff_t to size_t when either would do, as we prefer - signed integers. - (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro. - (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer): - Now const. Initialize with values that are in range even if char - is signed. - (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ... - (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed. - These functions do the right thing with sizes > 2**32. - (check_depth): Now ptrdiff_t, not int. - (overrun_check_malloc, overrun_check_realloc, overrun_check_free): - Adjust to new way of storing sizes. Check for size overflow bugs - in rest of code. - (STRING_BYTES_MAX): Adjust to new overheads. The old code was - slightly wrong anyway, as it missed one instance of - XMALLOC_OVERRUN_CHECK_OVERHEAD. - (refill_memory_reserve): Omit needless cast to size_t. - (mark_object_loop_halt): Mark as externally visible. - - * xselect.c: Integer signedness and overflow fixes. - (Fx_register_dnd_atom, x_handle_dnd_message): - Use ptrdiff_t, not size_t, since we prefer signed. - (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow. - * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for - x_dnd_atoms_size and x_dnd_atoms_length. - - * doprnt.c: Prefer signed to unsigned when either works. - * eval.c (verror): - * doprnt.c (doprnt): - * lisp.h (doprnt): - * xdisp.c (vmessage): - Use ptrdiff_t, not size_t, when using or implementing doprnt, - since the sizes cannot exceed ptrdiff_t bounds anyway, and we - prefer signed arithmetic to avoid comparison confusion. - * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow, - but is a bit tricky. +2013-12-09 Dmitry Antipov - Assume freestanding C89 headers, string.h, stdlib.h. - * data.c, doprnt.c, floatfns.c, print.c: - Include float.h unconditionally. - * gmalloc.c: Assume C89-at-least behavior for preprocessor, - limits.h, stddef.h, string.h. Use memset instead of 'flood'. - * regex.c: Likewise for stddef.h, string.h. - (ISASCII): Remove; can assume it returns 1 now. All uses removed. - * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef. - * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H) - (STDC_HEADERS): Remove obsolete defines. - * sysdep.c: Include limits.h unconditionally. + * gtkutil.c (USE_NEW_GTK_FONT_CHOOSER) [HAVE_FREETYPE]: + Avoid unused macro warning if configured --without-xft. - Assume support for memcmp, memcpy, memmove, memset. - * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset): - * regex.c (memcmp, memcpy): - Remove; we assume C89 now. +2013-12-09 Jan Djärv - * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now. - (__malloc_safe_bcopy): Remove; no longer needed. + * alloc.c (Fmemory_limit): Avoid compiler warning. Return 0 always. - * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes. - Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally - well either way, and we prefer signed to unsigned. +2013-12-08 Jan Djärv -2011-07-27 Lars Magne Ingebrigtsen + * nsterm.m (updateFrameSize:): Fix GNUStep toolbar not updating. - * gnutls.c (emacs_gnutls_read): Don't message anything if the peer - closes the connection while we're reading (bug#9182). + * emacs.c (main): Call fixup_locale a second time for GNUStep. -2011-07-25 Jan Djärv +2013-12-08 Martin Rudalics - * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons - are specified (Bug#9168). + * frame.c (x_set_font): Mark frame as garbaged (Bug#16028). -2011-07-25 Paul Eggert +2013-12-08 Paul Eggert - * bidi.c (bidi_dump_cached_states): Fix printf format mismatch. - Found by GCC static checking and --with-wide-int on a 32-bit host. + Use libcrypto's checksum implementations if available, for speed. + * Makefile.in (LIB_CRYPTO): New macro. + (LIBES): Use it. -2011-07-25 Eli Zaretskii + * frame.h (SET_FRAME_VISIBLE): Now an inline function. + The macro didn't conform to C99 due to type mismatch, + which caused compilation failure with Sun C 5.12, + and it was confusing anyway. Include window.h to declare + redisplay_other_windows. - * xdisp.c (compute_display_string_pos): Fix logic of caching - previous display string position. Initialize cached_prev_pos to - -1. Fixes slow-down at the beginning of a buffer. +2013-12-08 Stefan Monnier -2011-07-24 Eli Zaretskii + * window.c (set_window_buffer): Update mode line (bug#16084). - * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil' - for attrs[LFACE_FONTSET_INDEX]. +2013-12-07 Paul Eggert -2011-07-23 Paul Eggert + Fix minor problems found by static checking. + * keyboard.c (poll_for_input_1, input_polling_used): + Define only if HAVE_NTGUI. + * xmenu.c (popup_activate_callback): Omit unnecessary + check against USE_X_TOOLKIT, which must be defined here anyway. + * xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]: + Now static. - * xml.c (parse_region): Remove unused local - that was recently introduced. +2013-12-07 Martin Rudalics -2011-07-23 Eli Zaretskii + * w32term.c (w32_read_socket): Fix int/Lisp_Object type mixup. - * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in - 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca. +2013-12-07 Jan Djärv - * xdisp.c (move_it_in_display_line_to): Record the best matching - position for TO_CHARPOS while scanning the line, and restore it on - exit if none of the characters scanned was an exact match. - Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay - when exact match is impossible due to invisible text, and the - lines are truncated. + * gtkutil.c (tb_size_cb): Call xg_height_or_width_changed. -2011-07-23 Jan Djärv + * nsterm.m (x_set_window_size): Remove fprintf. + (init): Define always. Set applicationDidFinishLaunchingCalled + for GNUStep. + (applicationDidFinishLaunching:): + Set applicationDidFinishLaunchingCalled. + (applicationDidBecomeActive:): Call applicationDidFinishLaunching if + not called. - * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask - for OSX >= 10.7. + * nsterm.h (EmacsApp): Add applicationDidFinishLaunchingCalled. -2011-07-22 Eli Zaretskii + Pixel resize changes for NS (Bug#16049). + * nsterm.m (x_set_window_size): Change parameters rows/cols to + height/width. row/cols are locals. + Pass pixelwise to check_frame_size. Don't set FRAME_PIXEL_WIDTH/HEIGHT. + (updateFrameSize:): Remove gsextra. Adjust for pixelwise resize. + (windowWillResize): Remove gsextra. Calculate extra as in + updateFrameSize. + (x_new_font): Don't change frame size if fullscreen. + Change size pixelwise. - Fix a significant slow-down of cursor motion with C-n, C-p, - C-f/C-b, and C-v/M-v that couldn't keep up with keyboard - auto-repeat under bidi redisplay in fontified buffers. - * xdisp.c (compute_stop_pos_backwards): New function. - (next_element_from_buffer): Call compute_stop_pos_backwards to - find a suitable prev_stop when we find ourselves before - base_level_stop. - (reseat): Don't look for prev_stop, as that could mean a very long - run. - - : Cache for last found display string - position. - (compute_display_string_pos): Return the cached position if asked - about the same buffer in the same area of character positions, and - the buffer wasn't changed since the time the display string - position was cached. + * nsfns.m (Fx_create_frame): Call change_frame_size twice as per + comment in xfns.c. Change to pixelwise call. -2011-07-22 Eli Zaretskii +2013-12-06 Eli Zaretskii - * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object - is an integer, which is important for empty lines. (Bug#9149) + * buffer.c (Fset_buffer_multibyte): Invalidate buffer caches. + (Bug#16070) -2011-07-22 Chong Yidong +2013-12-06 Dmitry Antipov - * frame.c (Fmodify_frame_parameters): In tty case, update the - default face if necessary (Bug#4238). + * xterm.c (input_signal_count): Remove. + (x_dispatch_event): Define unconditionally. + (x_make_frame_visible): Process X events until the frame + is really visible (Bug#16027). + * xterm.h (x_dispatch_event): Declare unconditionally. -2011-07-21 Chong Yidong +2013-12-05 Jan Djärv - * editfns.c (Fstring_to_char): No need to explain what a character - is in the docstring (Bug#6576). + * nsfns.m (ns_frame_parm_handlers): Add right/bottom_divider_width. -2011-07-20 Lars Magne Ingebrigtsen + * nsterm.m (x_set_window_size): Handle pixelwise. - * xml.c (parse_region): Make sure we always return a tree. +2013-12-05 Martin Rudalics -2011-07-20 HAMANO Kiyoto + * w32term.c (x_new_font): + * xterm.c (x_new_font): Calculate new frame size from new font + size (Bug#16028). - * xml.c (parse_region): If a document contains only comments, - return that, too. +2013-12-04 Stefan Monnier -2011-07-20 Lars Magne Ingebrigtsen + * lisp.h (FOR_EACH_TAIL): New macro. + * fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT. - * xml.c (make_dom): Return comments, too. + * window.c (select_window): Call second wset_redisplay before we change + selected_window (bug#16034). -2011-07-19 Paul Eggert +2013-12-04 Paul Eggert - Port to OpenBSD. - See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html - and the surrounding thread. - * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar - rather than fgets, and retry after EINTR. Otherwise, 'emacs - --batch -f byte-compile-file' fails on OpenBSD if an inactivity - timer goes off. - * s/openbsd.h (BROKEN_SIGIO): Define. - * unexelf.c (unexec) [__OpenBSD__]: - Don't update the .mdebug section of the Alpha COFF symbol table. + * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used. -2011-07-19 Lars Magne Ingebrigtsen +2013-12-04 Eli Zaretskii - * lread.c (syms_of_lread): Clarify when `lexical-binding' is used - (bug#8460). + * w32xfns.c: Include window.h, to avoid a compiler warning. -2011-07-18 Paul Eggert +2013-12-04 Stefan Monnier - * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask. - This fixes some race conditions on the permissions of any newly - created file. + * window.c (window_scroll): Mark window for redisplay (bug#16034). + (scroll_command, Fscroll_other_window): Don't cause redisplay now that + window_scroll takes care of it. + (Fset_window_point, Fdelete_other_windows_internal) + (set_window_buffer, Fwindow_resize_apply, resize_frame_windows) + (Fsplit_window_internal, Fdelete_window_internal) + (Fresize_mini_window_internal, Fset_window_configuration) + (apply_window_adjustment): Use fset_redisplay and wset_redisplay to + cause redisplay instead of forcing a complete redisplay. + * xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if + we're only affecting the selected_window. - * alloc.c (valid_pointer_p): Use pipe, not open. - This fixes some permissions issues when debugging. +2013-12-04 Eli Zaretskii - * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002) - If fchown fails to set both uid and gid, try to set just gid, - as that is sometimes allowed. Adjust the file's mode to eliminate - setuid or setgid bits that are inappropriate if fchown fails. + * bidi.c (bidi_get_type, bidi_get_category): Handle the isolate + directional control characters. Update type and category + determination according to the UBA from Unicode v6.3. + (bidi_category_t): New category EXPLICIT_FORMATTING. -2011-07-18 Stefan Monnier + * dispextern.h (bidi_type_t): Update to include new bidirectional + properties introduced with Unicode v6.3. (Bug#16043) - * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ - to compare Lisp_Objects. - * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to - global_gnutls_log_level, don't mistake it for a Lisp_Object. - (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses. +2013-12-04 Martin Rudalics -2011-07-17 Andreas Schwab + * xterm.c (XTflash): Fix coordinate of bottom area to flash + (Bug#16044). - * lread.c (read_integer): Unread even EOF character. - (read1): Likewise. Properly record start position of symbol. +2013-12-04 Dmitry Antipov - * lread.c (read1): Read `#:' as empty uninterned symbol if no - symbol character follows. + * font.c (font_list_entities): Remove dummy assignment. + * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are + used on graphic displays only. Remove unused 'font_encoder' member. + (struct font_bitmap): Remove unused 'extra' member. + * nsfont.m (nsfont_open): + * w32font.c (w32font_open_internal): + * ftfont.c (ftfont_get_bitmap): Adjust users. -2011-07-17 Paul Eggert +2013-12-03 Paul Eggert - * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002) - This works around a problem with the previous change to Fcopy_file. - Recent glibc declares fchown with __attribute__((warn_unused_result)), - and without this change, GCC might complain about discarding - fchown's return value. + Use bool for boolean. + * tparam.c (tparam1): + * undo.c (record_point, record_property_change): + Use bool for boolean, for local vars that are always true or false. -2011-07-16 Juanma Barranquero + Minor integer overflow fixes (Bug#16033). + * window.c (Fset_window_new_pixel): Don't let new_pixel go negative. + This improves on the previous fix to this function. + (window_resize_check): When summing up pixel counts, don't rely on + undefined behavior if the sum overflows. - * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059). +2013-12-03 Martin Rudalics -2011-07-16 Paul Eggert + * window.c (Fset_window_new_pixel): Don't choke at negative + argument value (Bug#16033). - * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002) + * xfns.c (Fx_create_frame): Add another call to change_frame_size + to avoid crash in window_box_height. -2011-07-16 Lars Magne Ingebrigtsen + * gtkutil.h: Fix external declaration of xg_frame_set_char_size. + * gtkutil.c (xg_frame_set_char_size, style_changed_cb): Fix size + calculation. + * xterm.c (x_set_window_size): Fix size calculation (Bug#16013). - * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since - it's used from the C level. +2013-12-03 Paul Eggert - * process.c: Use the same condition for POLL_FOR_INPUT in both - keyboard.c and process.c (bug#1858). + Minor integer overflow fixes. + * window.c (Fset_window_new_pixel, grow_mini_window): + * xdisp.c (Fwindow_text_pixel_size): + Avoid undefined behavior on signed integer overflow. + * xfns.c (x_set_mouse_color): + Check that drag shape fits in 'unsigned', since that's what X wants. -2011-07-09 Lawrence Mitchell +2013-12-02 Eli Zaretskii - * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable. - (Fgnutls_boot): Use it. + Improve reporting of fatal exception on MS-Windows. + * w32fns.c (my_exception_handler): New function. + (globals_of_w32fns): Set it up as the unhandled exception + handler. Initialize exception code and address to zeros. + (emacs_abort): If the exception code and address are available, + print them at the beginning of the backtrace. Fix the format of + printing addresses (was producing 0x0x12345678 on XP). + (Bug#15994) -2011-07-15 Andreas Schwab +2013-12-02 Helmut Eller - * doc.c (Fsubstitute_command_keys): Revert last change. + * eval.c (Fbacktrace__locals): New function. + (syms_of_eval): Defsubr it. -2011-07-15 Lars Magne Ingebrigtsen +2013-12-02 Dmitry Antipov - * doc.c (Fsubstitute_command_keys): Clarify that \= really only - quotes the next character, and doesn't affect other longer - sequences (bug#8935). + * font.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT): + Define here to unify between... + * nsterm.h, w32term.h, xterm.h: ...port-specific headers. + * w32term.h (CHECK_W32_FRAME): Remove unused macro. - * lread.c (syms_of_lread): Clarify that is isn't only - `eval-buffer' and `eval-defun' that's affected by - `lexical-binding' (bug#8460). +2013-12-02 YAMAMOTO Mitsuharu -2011-07-15 Eli Zaretskii + * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'. - * xdisp.c (move_it_in_display_line_to): Fix vertical motion with - bidi redisplay when a line includes both an image and is truncated. + * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for + fringe background extension. + (x_scroll_bar_create): Remove variables `sb_left' and `sb_width', + because they are now always the same as `left' and `width', + respectively. Remove code for the case that `width' and + `sb_width' are different. -2011-07-14 Paul Eggert +2013-12-01 Paul Eggert Fix minor problems found by static checking. - * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t. - (elsz): Now a signed constant, not a size_t var. We prefer signed - types to unsigned, to avoid integer comparison confusion. Without - this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains - "cannot optimize loop, the loop counter may overflow", a symptom - of the confusion. - * indent.c (Fvertical_motion): Mark locals as initialized. - * xdisp.c (reseat_to_string): Fix pointer signedness issue. - -2011-07-14 Lars Magne Ingebrigtsen - - * search.c (Fre_search_backward): Mention `case-fold-search' in - all the re_search_* functions (bug#8138). - - * keyboard.c (Fopen_dribble_file): Document when the file is - closed (bug#8056). - -2011-07-14 Eli Zaretskii - - * bidi.c (bidi_dump_cached_states): Fix format of displaying - bidi_cache_idx. - - Support bidi reordering of display and overlay strings. - * xdisp.c (compute_display_string_pos) - (compute_display_string_end): Accept additional argument STRING. - (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL. - (reseat_to_string): Initialize bidi_it->string.s and - bidi_it->string.schars. - (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to - NULL (avoids a crash in bidi_paragraph_init). - Initialize itb.string.lstring. - (init_iterator): Call bidi_init_it only of a valid - buffer position was specified. Initialize paragraph_embedding to - L2R. - (reseat_to_string): Initialize the bidi iterator. - (display_string): If we need to ignore text properties of - LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The - original value of -1 will not work with bidi.) - (compute_display_string_pos): First arg is now struct - `text_pos *'; all callers changed. Support display properties on - Lisp strings. - (compute_display_string_end): Support display properties on Lisp - strings. - (init_iterator, reseat_1, reseat_to_string): Initialize the - string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS - when iterating on a string not from display properties). - (compute_display_string_pos, compute_display_string_end): - Fix calculation of the object to scan. Fixes an error when using - arrow keys. - (next_element_from_buffer): Don't abort when IT_CHARPOS is before - base_level_stop; instead, set base_level_stop to BEGV. - Fixes crashes in vertical-motion. - (next_element_from_buffer): Improve commentary for when - the iterator is before prev_stop. - (init_iterator): Initialize bidi_p from the default value of - bidi-display-reordering, not from buffer-local value. Use the - buffer-local value only if initializing for buffer iteration. - (handle_invisible_prop): Support invisible properties on strings - that are being bidi-reordered. - (set_iterator_to_next): Support bidi reordering of C strings and - Lisp strings. - (next_element_from_string): Support bidi reordering of Lisp - strings. - (handle_stop_backwards): Support Lisp strings as well. - (display_string): Support display of R2L glyph rows. - Use IT_STRING_CHARPOS when displaying from a Lisp string. - (init_iterator): Don't initialize it->bidi_p for strings - here. - (reseat_to_string): Initialize it->bidi_p for strings here. - (next_element_from_string, next_element_from_c_string) - (next_element_from_buffer): Add xassert's for correspondence - between IT's object being iterated and it->bidi_it.string - structure. - (face_before_or_after_it_pos): Support bidi iteration. - (next_element_from_c_string): Handle the case of the first string - character that is not the first one in the visual order. - (get_visually_first_element): New function, refactored from common - parts of next_element_from_buffer, next_element_from_string, and - next_element_from_c_string. - (tool_bar_lines_needed, redisplay_tool_bar) - (display_menu_bar): Force left-to-right direction. Add a FIXME - comment for making that be controlled by a user option. - (push_it, pop_it): Save and restore the state of the - bidi iterator. Save and restore the bidi_p flag. - (pop_it): Iterate out of display property for string iteration as - well. - (iterate_out_of_display_property): Support iteration over strings. - (handle_single_display_spec): Set up it->bidi_it for iteration - over a display string, and call bidi_init_it. - (handle_single_display_spec, next_overlay_string) - (get_overlay_strings_1, push_display_prop): Set up the bidi - iterator for displaying display or overlay strings. - (forward_to_next_line_start): Don't use the shortcut if - bidi-iterating. - (back_to_previous_visible_line_start): If handle_display_prop - pushed the iterator stack, restore the internal state of the bidi - iterator by calling bidi_pop_it same number of times. - (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero, - and we are bidi-iterating, don't decrement the iterator position; - instead, set the first_elt flag in the bidi iterator, to produce - the same effect. - (reseat_1): Remove redundant setting of string_from_display_prop_p. - (push_display_prop): xassert that we are iterating a buffer. - (push_it, pop_it): Save and restore paragraph_embedding member. - (handle_single_display_spec, next_overlay_string) - (get_overlay_strings_1, reseat_1, reseat_to_string) - (push_display_prop): Set up the `unibyte' member of bidi_it.string - correctly. Don't assume unibyte strings are not bidi-reordered. - (compute_display_string_pos) - (compute_display_string_end): Fix handling the case of C string. - (push_it, pop_it): Save and restore from_disp_prop_p. - (handle_single_display_spec, push_display_prop): Set the - from_disp_prop_p flag. - (get_overlay_strings_1): Reset the from_disp_prop_p flag. - (pop_it): Call iterate_out_of_display_property only if we are - popping after iteration over a string that came from a display - property. Fix a typo in popping stretch info. Add an assertion - for verifying that the iterator position is in sync with the bidi - iterator. - (handle_single_display_spec, get_overlay_strings_1) - (push_display_prop): Fix initialization of paragraph direction for - string when that of the parent object is not yet determined. - (reseat_1): Call bidi_init_it to resync the bidi - iterator with IT's position. (Bug#7616) - (find_row_edges): If ROW->start.pos gives position - smaller than min_pos, use it as ROW->minpos. (Bug#7616) - (handle_stop, back_to_previous_visible_line_start, reseat_1): - Reset the from_disp_prop_p flag. - (SAVE_IT, RESTORE_IT): New macros. - (pos_visible_p, face_before_or_after_it_pos) - (back_to_previous_visible_line_start) - (move_it_in_display_line_to, move_it_in_display_line) - (move_it_to, move_it_vertically_backward, move_it_by_lines) - (try_scrolling, redisplay_window, display_line): Use them when - saving a temporary copy of the iterator and restoring it back. - (back_to_previous_visible_line_start, reseat_1) - (init_iterator): Empty the bidi cache "stack". - (move_it_in_display_line_to): If iterator ended up at - EOL, but we never saw any buffer positions smaller than - to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor - motion in bidi-reordered lines. - (move_it_in_display_line_to): Record prev_method and prev_pos - immediately before the call to set_iterator_to_next. Fixes cursor - motion in bidi-reordered lines with stretch glyphs and strings - displayed in margins. (Bug#8133) (Bug#8867) - Return MOVE_POS_MATCH_OR_ZV only if iterator position is past - TO_CHARPOS. - (pos_visible_p): Support positions in bidi-reordered lines. - Save and restore bidi cache. - - * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int. - (bidi_paragraph_info): Delete unused struct. - (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT. - (bidi_cache_start): New variable. - (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not - to zero. - (bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_iterator_state) - (bidi_cache_find, bidi_peek_at_next_level) - (bidi_level_of_next_char, bidi_find_other_level_edge) - (bidi_move_to_visually_next): Compare cache index with - bidi_cache_start rather than with zero. - (bidi_fetch_char): Accept new argument STRING; all callers - changed. Support iteration over a string. Support strings with - display properties. Support unibyte strings. Fix the type of - `len' according to what STRING_CHAR_AND_LENGTH expects. - (bidi_paragraph_init, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): - Support iteration over a string. - (bidi_set_sor_type, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit - can now be zero (for strings); special values 0 and -1 were - changed to -1 and -2, respectively. - (bidi_char_at_pos): New function. - (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak): - Call it instead of FETCH_MULTIBYTE_CHAR. - (bidi_move_to_visually_next): Abort if charpos or bytepos were not - initialized to valid values. - (bidi_init_it): Don't initialize charpos and bytepos with invalid - values. - (bidi_level_of_next_char): Allow the sentinel "position" to pass - the test for valid cached positions. Fix the logic for looking up - the sentinel state in the cache. GCPRO the Lisp string we are - iterating. - (bidi_push_it, bidi_pop_it): New functions. - (bidi_initialize): Initialize the bidi cache start stack pointer. - (bidi_cache_ensure_space): New function, refactored from part of - bidi_cache_iterator_state. Don't assume the required size is just - one BIDI_CACHE_CHUNK away. - (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE. - (bidi_count_bytes, bidi_char_at_pos): New functions. - (bidi_cache_search): Don't assume bidi_cache_last_idx is - always valid if bidi_cache_idx is valid. - (bidi_cache_find_level_change): xassert that bidi_cache_last_idx - is valid if it's going to be used. - (bidi_shelve_cache, bidi_unshelve_cache): New functions. - (bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_ensure_space) - (bidi_cache_iterator_state, bidi_cache_find) - (bidi_find_other_level_edge, bidi_cache_start_stack): - All variables related to cache indices are now EMACS_INT. - - * dispextern.h (struct bidi_string_data): New structure. - (struct bidi_it): New member `string'. Make flag members be 1-bit - fields, and put them last in the struct. - (compute_display_string_pos, compute_display_string_end): - Update prototypes. - (bidi_push_it, bidi_pop_it): Add prototypes. - (struct iterator_stack_entry): New members bidi_p, - paragraph_embedding, and from_disp_prop_p. - (struct it): Member bidi_p is now a bit field 1 bit wide. - (bidi_shelve_cache, bidi_unshelve_cache): - Declare prototypes. - - * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) - (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors - and vector-like objects. - - * dispnew.c (buffer_posn_from_coords): Save and restore the bidi - cache around display iteration. - - * window.c (Fwindow_end, window_scroll_pixel_based) - (displayed_window_lines, Frecenter): Save and restore the bidi - cache around display iteration. - -2011-07-14 Lars Magne Ingebrigtsen - - * editfns.c (Fdelete_region): Clarify the use of the named - parameters (bug#6788). - -2011-07-14 Martin Rudalics - - * indent.c (Fvertical_motion): Set and restore w->pointm when - saving and restoring the window's buffer (Bug#9006). - -2011-07-13 Lars Magne Ingebrigtsen - - * editfns.c (Fstring_to_char): Clarify just what is returned - (bug#6576). Text by Eli Zaretskii. - -2011-07-13 Juanma Barranquero - - * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059). - -2011-07-13 Eli Zaretskii - - * buffer.c (mmap_find): Fix a typo. - -2011-07-13 Johan Bockgård - - Fix execution of x selection hooks. - * xselect.c (Qx_lost_selection_functions) - (Qx_sent_selection_functions): New vars. - (syms_of_xselect): DEFSYM them. - (x_handle_selection_request): Pass Qx_sent_selection_functions - rather than Vx_sent_selection_functions to Frun_hook_with_args. - (x_handle_selection_clear,x_clear_frame_selections): - Pass Qx_lost_selection_functions rather than - Vx_lost_selection_functions to Frun_hook_with_args. - -2011-07-13 Paul Eggert + * dispextern.h, xdisp.c (x_draw_bottom_divider): Now static. + * frame.c (set_frame_param) [!HAVE_NTGUI]: Remove. + * xdisp.c (Ftool_bar_height) [USE_GTK || HAVE_NS]: Now const function. - * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking. - The old code sometimes used this field without initializing it. +2013-12-01 Lars Magne Ingebrigtsen - * alloc.c (gc_sweep): Don't read past end of array. - In theory, the old code could also have corrupted Emacs internals, - though it'd be very unlikely. + * image.c (imagemagick_compute_animated_image): Don't crash if we + have an animation with different-sized images (bug#15313). -2011-07-12 Andreas Schwab +2013-11-30 Martin Rudalics - * character.c (Fcharacterp): Don't advertise optional ignored - argument. (Bug#4026) + Remove some unused items introduced during pixelwise change. + * window.c (window_resize_total_check): Remove unused function. + * xdisp.c (remember_mouse_glyph): Remove unused label. + (Ftool_bar_height): Move declaration inside #if. + * xterm.c (x_set_window_size): Don't use r and c. -2011-07-12 Lars Magne Ingebrigtsen +2013-11-30 Juanma Barranquero - * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier - key" (bug#4257). + * xdisp.c (Fwindow_text_pixel_size): Remove unused variables + `value' and `endp'. - * window.c (Fset_window_start): Doc fix (bug#4199). - (Fset_window_hscroll): Ditto. + * window.c (Fset_window_configuration): Comment out unused variables. -2011-07-12 Paul Eggert + * w32term.c (w32_read_socket): Remove unused variable `buf'. - Fix minor new problems caught by GCC 4.6.1. - * term.c (init_tty): Remove unused local. - * xsettings.c (store_monospaced_changed): Define this function only - if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's - not used otherwise. +2013-11-30 Jan Djärv -2011-07-12 Chong Yidong + * xdisp.c (redisplay_internal): unrequest_sigio => request_sigio. - * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300). + * xfaces.c (NEAR_SAME_COLOR_THRESHOLD): Move inside HAVE_WINDOW_SYSTEM. -2011-07-11 Lars Magne Ingebrigtsen + * gnutls.c (gnutls_audit_log_function): Only declare and define if + HAVE_GNUTLS3 (Bug#16001). - * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows - are the mini-buffer and the echo area (bug#3320). + * xdisp.c (redisplay_internal): Call request_sigio at end_of_redisplay + if interrupts are deferred (Bug#15801). - * term.c (init_tty): Remove support for supdup, c10 and perq - terminals, which are no longer supported (bug#1482). +2013-11-30 Martin Rudalics -2011-07-10 Johan Bockgård + Support resizing frames and windows pixelwise. + * dispextern.h (enum window_part): Add ON_SCROLL_BAR, + ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER. + (struct glyph_matrix): Replace window_left_col and + window_top_line by window_pixel_left and window_pixel_top. + (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P): + Minor rewrite. + (enum face_id): Add WINDOW_DIVIDER_FACE_ID. + (draw_window_divider, move_it_to, x_draw_right_divider) + (x_draw_bottom_divider, change_frame_size): Add or fix + declarations. + * dispnew.c (change_frame_size_1): Change prototype. + (adjust_glyph_matrix, required_matrix_width) + (adjust_frame_glyphs_for_window_redisplay): Use pixel + values instead of lines and columns. + (marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of + WINDOW_TOTAL_FRINGE_WIDTH. + (handle_window_change_signal, do_pending_window_change) + (init_display): Adjusts calls of change_frame_size. + (change_frame_size, change_frame_size_1): Handle pixelwise + changes. + * frame.c (Qright_divider_width, Qbottom_divider_width): + New Lisp objects. + (set_menu_bar_lines_1, set_menu_bar_lines, make_frame) + (make_terminal_frame, Fmake_terminal_frame, Fframe_parameters) + (x_set_internal_border_width, x_set_vertical_scroll_bars) + (x_set_scroll_bar_width, x_figure_window_size): Handle pixel + values. + (set_frame_param): New function. + (Fframe_text_cols, Fframe_text_lines, Fframe_total_cols) + (Fframe_text_width, Fframe_text_height, Fscroll_bar_width) + (Ffringe_width, Fborder_width, Fright_divider_width) + (Fbottom_divider_width): New functions, defsubr them. + (Fset_frame_height, Fset_frame_width, Fset_frame_size): + New argument pixelwise. + (struct frame_parm_table): New members Qright_divider_width and + Qbottom_divider_width. + (x_set_frame_parameters): Handle parameters for pixelwise sizes. + (x_report_frame_params): Handle Qright_divider_width and + Qbottom_divider_width. + (x_set_right_divider_width, x_set_bottom_divider_width): + New functions. + (frame_resize_pixelwise): New option. + * frame.h (struct frame): Add tool_bar_height, menu_bar_height, + new_pixelwise, right_divider_width and bottom_divider_width; + remove total_lines; rename text_lines, text_cols, new_text_lines + and new_text_cols to text_height, text_width, new_height and + new_width respectively. + (FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and + FRAME_TEXT_WIDTH respectively. + (FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT) + (FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH) + (FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH): + New macros. + (FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH) + (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH) + (SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT) + (FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS) + (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros. + (FRAME_TOTAL_COLS_ARG): Remove macro. + * fringe.c (draw_fringe_bitmap_1): Handle right divder. + * gtkutil.c (xg_frame_resized, xg_frame_set_char_size) + (x_wm_set_size_hint): Handle frame pixel sizes. + * indent.c (compute_motion, Fcompute_motion): + Call window_body_width instead of window_body_cols. + * keyboard.c (Qright_divider, Qbottom_divider): New symbols. + (make_lispy_position): Handle right and bottom dividers. + (Fsuspend_emacs): Pixelize call of change_frame_size. + * keyboard.h: Extern Qright_divider, Qbottom_divider. + * lisp.h: Extern set_frame_param. + * nsfns.m (x_set_tool_bar_lines): Pixelize call of + x_set_window_size. + (Fx_create_frame): Add entry for vertical_drag_cursor. + Pixelize call of change_frame_size. + * nsterm.h (struct ns_output): Add vertical_drag_cursor. + * nsterm.m (ns_update_window_end): Optionally draw right + divider. + (x_set_window_size): Add argument pixelwise. + Call check_frame_size and change_frame_size with pixelwise zero. + (ns_draw_window_divider): New function. + (ns_redisplay_interface): Add ns_draw_window_divider. + (updateFrameSize:): Call change_frame_size with pixelwise zero. + (x_new_font): Call x_set_window_size with pixelwise zero. + * print.c (print_object): For a window print its sequence + number again. + * term.c (Fresume_tty): Pixelize call of change_frame_size. + * w32fns.c (x_set_mouse_color): Handle vertical drag cursor. + (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise. + (w32_createwindow): Use scroll bar area width. + (w32_wnd_proc): Handle bottom divider width. + For WM_WINDOWPOSCHANGING return zero if we resize pixelwise. + (Fx_create_frame): Default divider width parameters. + Caclulate sizes pixelwise. Add vertical drag cursor support. + (x_create_tip_frame): Default divider widths to zero. + Pixelize call to change_frame_size. + (Fx_show_tip): Add handling of divider widths. Pixelize window + position and sizes. + (Fw32_frame_rect): New function. + (frame_parm_handler w32_frame_parm_handlers): Add divider + widths. + (Vx_window_vertical_drag_shape): Add variable. + * w32inevt.c (resize_event, maybe_generate_resize_event): + Pixelize change_frame_size calls. + * w32menu.c (set_frame_menubar): Pixelize x_set_window_size + call. + * w32term.c (w32_draw_window_divider): New function. + (x_update_window_end): Handle right divider. + (w32_draw_fringe_bitmap, x_scroll_run) + (w32_set_vertical_scroll_bar): Pixelize scrollbar widths. + (w32_read_socket): Handle SIZE_MAXIMIZED separately. + Calculate new frame sizes pixelwise. + (x_new_font): Pixelize call to x_set_window_size. + (x_check_fullscreen): Pixelize call to change_frame_size. + (x_set_window_size_1, x_set_window_size): New argument + pixelwise. Calculate pixelwise. + (x_wm_set_size_hint): Use scroll bar area width. + (w32_redisplay_interface): Add w32_draw_window_divider. + * w32term.h (struct w32_output): Add vertical drag cursor. + * widget.c (set_frame_size, update_wm_hints) + (EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of + change_frame_size. + (EmacsFrameSetCharSize): Pixelize call of x_set_window_size. + * window.c (sequence_number): Restore. + (Fwindow_pixel_width, Fwindow_pixel_height) + (Fwindow_mode_line_height, Fwindow_header_line_height) + (window_pixel_to_total, Frun_window_scroll_functions) + (Fset_window_new_pixel, window_resize_apply_total) + (Fwindow_resize_apply_total): New functions. + (window_body_height, window_body_width): Rename from + window_body_lines. New argument PIXELWISE. + Calculate pixelwise. + (Fwindow_body_height, Fwindow_body_width): New argument + PIXELWISE. + (coordinates_in_window, window_relative_x_coord): Use window's + pixel width instead of total width. + (replace_window, recombine_windows): Initialize pixel values. + (resize_root_window, resize_frame_windows, grow_mini_window) + (shrink_mini_window): New argument PIXELWISE. + Calculate pixelwise. + (Fdelete_other_windows_internal, adjust_window_margins) + (window_resize_check, window_resize_apply) + (Fdelete_window_internal, Fresize_mini_window_internal) + (Fwindow_text_width, Fwindow_text_height): Calculate pixelwise. + (check_frame_size): Rename arguments. New argument PIXELWISE. + Calculate pixelwise. + (set_window_buffer): Make samebuf bool. Run configuration change + hook only if buffer changed. + (Fset_window_buffer): Rewrite doc-string. + (make_window): Initialize new_pixel slot. + (Fwindow_resize_apply): Check pixel size of root window. + (Fsplit_window_internal): Call 2nd argument pixel_size. + Calculate pixelwise. + (Fscroll_left, Fscroll_right): Call window_body_width instead of + window_body_cols. + (save_window_data): New slots frame_text_width, + frame_text_height, frame_menu_bar_height, frame_tool_bar_height. + (saved_window): New slots pixel_left, pixel_top, pixel_height, + pixel_width. + (Fcurrent_window_configuration, Fset_window_configuration) + (save_window_save, compare_window_configurations): Handle new + slots in save_window_data and saved_window. + (Fset_window_scroll_bars): Fix doc-string. + (window_resize_pixelwise): New variable. + (coordinates_in_window, Fcoordinates_in_window_p): + Handle dividers. + (make_parent_window): Adjust sequence_number. + (Fwindow_right_divider_width, Fwindow_bottom_divider_width): + New functions. + * window.h (struct window): New members new_pixel, pixel_left, + pixel_top, pixel_width, pixel_height. Restore sequence_number. + (wset_new_pixel): New function. + (WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT) + (MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT) + (WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE) + (WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE) + (WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE) + (WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS) + (WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH) + (WINDOW_BOTTOM_DIVIDER_WIDTH): New macros. + (WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH. + (WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros. + (WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y) + (WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P) + (WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X) + (WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS) + (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT): + Rewrite. + (resize_frame_windows, grow_mini_window, shrink_mini_window) + (window_body_width, check_frame_size): Adapt external declarations. + * xdisp.c (last_max_ascent): New integer. + (window_text_bottom_y): Handle bottom divider. + (window_box_width, window_box_height): Calculate pixelwise. + (get_glyph_string_clip_rects): Handle right divider. + (remember_mouse_glyph): When windows are resized pixelwise + proceed with width and height set to 1. + (init_iterator): Use WINDOW_PIXEL_WIDTH instead of + WINDOW_TOTAL_WIDTH. + (move_it_to): Calculate and return maximum x position + encountered. + (Fwindow_text_pixel_size): New function. + (resize_mini_window, update_tool_bar): Calculate pixelwise. + (tool_bar_lines_needed): Rename to tool_bar_height. + Calculate pixelwise. + (Ftool_bar_lines_needed): Rename to Ftool_bar_height. + Calculate pixelwise. + (redisplay_tool_bar): Calculate pixelwise. + (redisplay_window): Calculate pixelwise. Handle dividers. + (draw_glyphs, x_clear_end_of_line, note_mouse_highlight) + (x_draw_vertical_border): Handle dividers. + (define_frame_cursor1): Handle vertical drag cursor. + (x_draw_right_divider, x_draw_bottom_divider): New functions. + (expose_window): Calculate pixelwise. Handle dividers. + (init_xdisp): Initialize pixel values. + * xfaces.c (Qwindow_divider): New face. + (realize_basic_faces): Realize it. + * xfns.c (x_set_mouse_color): Handle vertical_drag_cursor. + (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise. + (x_set_scroll_bar_default_width): Default actual width to 16. + (Fx_create_frame): Set sizes pixelwise. + (x_create_tip_frame): Default divider widths to zero. + Pixelize call of change_frame_size. + (Fx_show_tip): Handle divider widths. Initial pixel position + and sizes. + (frame_parm_handler x_frame_parm_handlers): Add divider widths. + (Vx_window_vertical_drag_shape): New option. + * xmenu.c (free_frame_menubar): Pixelize call of + x_set_window_size. + * xterm.c (x_draw_window_divider): New function. + (x_update_window_end): Optionally draw right divider. + (x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create) + (XTset_vertical_scroll_bar): Use scroll bar pixel width. + (handle_one_xevent, x_new_font): Calculate pixelwise. + (x_set_window_size_1, x_set_window_size): New argument + pixelwise. Calculate pixelwise. + (x_wm_set_size_hint): Pixelize call of check_frame_size. + (struct x_redisplay_interface): Add x_draw_window_divider. + * xterm.h (struct x_output): Add vertical_drag_cursor. + +2013-11-30 Stefan Monnier + + * xdisp.c (redisplay_internal): Don't call set_window_update_flags. + Set invisible frames's `redisplay' when a full redisplay is requested. + (redisplay_window): Set must_be_updated_p instead (bug#15999). + (redisplay_mode_lines): Don't set must_be_updated_p any more. + (display_mode_lines): Set it here instead. + + * dispnew.c (set_window_update_flags): Remove `b' argument; make static. + + * dispextern.h (set_window_update_flags): Remove. + +2013-11-29 Stefan Monnier + + * fns.c (internal_equal): Add a hash_table argument to handle cycles. + + * xdisp.c (REDISPLAY_SOME_P): New macro. + (redisplay_internal): Use it (bug#15999). + (prepare_menu_bars, redisplay_window): Use it as well. + + * lisp.mk (lisp): Add electric.elc and uniquify.elc. + +2013-11-29 Tom Seddon (tiny change) + + * w32font.c (g_b_init_get_char_width_32_w): New static var. + (globals_of_w32font): Zero it out. + (GetCharWidth32W_Proc): New function pointer. + (get_char_width_32_w): New function. + (compute_metrics): If get_glyph_outline_w returns an error, try + get_char_width_32_w before declaring a failure. This avoids + punishing raster (a.k.a. "bitmap") fonts by slowing down + redisplay. (Bug#6364). + +2013-11-29 Eli Zaretskii + + * xdisp.c (clear_mouse_face): Don't invalidate the entire + mouse-highlight info, just signal frame_up_to_date_hook that mouse + highlight needs to be redisplayed. (Bug#15913) + +2013-11-29 Paul Eggert - * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check. + Fix minor problems found by static checking. + * buffer.h (struct buffer_text, struct buffer): + * frame.h (struct frame): + * window.h (struct window): + Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers, + as described in ../lib/stdbool.in.h. Use 'unsigned foo : 1;' instead. + * menu.c (syms_of_menu): Define x-popup-dialog, removing a + no-longer-valid use of HAVE_MENUS. + * xdisp.c (propagate_buffer_redisplay): Now static. + +2013-11-29 Stefan Monnier + + * xmenu.c (Fmenu_or_popup_active_p): + * window.c (Fset_window_configuration): + * menu.c (Fx_popup_menu, Fx_popup_dialog): + * keyboard.c (record_menu_key, read_char_x_menu_prompt): + * fns.c (Fyes_or_no_p): + * editfns.c (Fmessage_box, Fmessage_or_box): + * alloc.c (make_save_ptr_ptr): + * xdisp.c, w32menu.c, term.c, xterm.h, xterm.c: Remove HAVE_MENUS. + + * window.c (Fset_window_configuration): Move select_window later. + +2013-11-28 Stefan Monnier + + Refine redisplay optimizations to only redisplay *some* frames/windows + rather than all of them. + * xdisp.c (REDISPLAY_SOME): New constant. + (redisplay_other_windows, wset_redisplay, fset_redisplay) + (bset_redisplay, bset_update_mode_line): New functions. + (message_dolog): Use bset_redisplay. + (clear_garbaged_frames): Use fset_redisplay. + (echo_area_display): Use wset_redisplay. + (buffer_shared_and_changed): Remove. + (prepare_menu_bars): Call Vpre_redisplay_function before updating + frame titles. Compute the actual set of windows redisplayed. + Don't update frame titles and menu bars for frames that don't need to + be redisplayed. + (propagate_buffer_redisplay): New function. + (AINC): New macro. + (redisplay_internal): Use it. Be more selective in the set of windows + we redisplay. Propagate windows_or_buffers_changed to + update_mode_lines a bit later to simplify the code. + (mark_window_display_accurate_1): Reset window and buffer's + `redisplay' flag. + (redisplay_window): Do nothing if neither the window nor the buffer nor + the frame needs redisplay. + * window.h (struct window): Add `redisplay' field. + (wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line) + (redisplay_other_windows, window_list): New declarations. + * window.c (select_window, Fset_window_start): Use wset_redisplay. + (window_list): Not static any more. + (grow_mini_window, shrink_mini_window): Use fset_redisplay. + * minibuf.c (read_minibuf_unwind): Don't redisplay everything. + * insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay. + * frame.c (Fmake_frame_visible): Don't redisplay everything. + * frame.h (struct frame): Add `redisplay' field. + Move `external_menu_bar' bitfield next to other bit-fields. + (SET_FRAME_GARBAGED): Use fset_redisplay. + (SET_FRAME_VISIBLE): Don't garbage the frame; + Use redisplay_other_windows. + * buffer.h (struct buffer): Add `redisplay' field. + * buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag. + (modify_overlay): Use bset_redisplay. + * alloc.c (gc_sweep): Don't unmark strings while sweeping symbols. + +2013-11-28 Eli Zaretskii + + Support w32 file notifications in batch mode. + * w32proc.c (sys_select): Don't wait on interrupt_handle if it is + invalid (which happens in batch mode). If non-interactive, call + handle_file_notifications to store file notification events in the + input queue. (Bug#15933) + + * w32notify.c (send_notifications): Handle FRAME_INITIAL frames as well. + + * w32inevt.c (handle_file_notifications): Now external, not static. + + * w32term.h (handle_file_notifications): Provide prototype. + + * emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call + init_crit, since init_display, which does that otherwise, is not + called. + +2013-11-27 Glenn Morris + + * Makefile.in ($(lispsource)/international/charprop.el): New. + (emacs$(EXEEXT)): Depend on charprop.el. + +2013-11-27 Eli Zaretskii + + * fileio.c (Finsert_file_contents): Invalidate buffer caches when + deleting portions of the buffer under non-nil REPLACE argument. + (Bug#15973) + + * w32notify.c (Fw32notify_add_watch): If the argument FILE is a + directory, watch it and not its parent. + (add_watch): Allow empty string in FILE. + +2013-11-27 Martin Rudalics + + * window.c (Fset_window_start, window_resize_apply) + (window_scroll): Reset window_end_valid (Bug#15957). + +2013-11-27 Glenn Morris + + * Makefile.in (leimdir): Now in lisp source directory. + ($(leimdir)/leim-list.el): Just use ../leim . + * epaths.in (PATH_DUMPLOADSEARCH): + * lread.c (load_path_default): + * nsterm.m (ns_load_path): No more leim directory. + +2013-11-26 Andreas Schwab + + * .gdbinit (xgettype): Add cast. + +2013-11-26 Glenn Morris + + Preload leim-list.el. + * epaths.in (PATH_DUMPLOADSEARCH): Add leim/. + * callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH + is a single directory. + +2013-11-25 Paul Eggert + + bool-vector-subsetp is now the normal direction (Bug#15912). + * data.c (Fbool_vector_subsetp): Test whether the first argument + is a subset of the second one, not the reverse. Add doc string. -2011-07-10 Jan Djärv + Fix minor problems found by static checking. + * lread.c (load_path_default): Now static. + * textprop.c (text_property_stickiness): Be consistent about the + test used when deciding whether to consider the previous character. + This simplifies the code a bit. - * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event - for non-popups (Bug#3642). +2013-11-25 Stefan Monnier -2011-07-10 Andreas Schwab + * textprop.c (text_property_stickiness): Fix front-stickiness at BOB. - * alloc.c (reset_malloc_hooks): Protoize. - * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge) - (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise. - * cm.c (losecursor): Likewise. - * data.c (fmod): Likewise. - * dispnew.c (swap_glyphs_in_rows): Likewise. - * emacs.c (memory_warning_signal): Likewise. - * floatfns.c (float_error): Likewise. - * font.c (check_gstring, check_otf_features, otf_tag_symbol) - (otf_open, font_otf_capability, generate_otf_features) - (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor): - Likewise. - * image.c (pbm_read_file): Likewise. - * indent.c (string_display_width): Likewise. - * intervals.c (check_for_interval, search_for_interval) - (inc_interval_count, count_intervals, root_interval) - (adjust_intervals_for_insertion, make_new_interval): Likewise. - * lread.c (defalias): Likewise. - * ralloc.c (r_alloc_check): Likewise. - * regex.c (set_image_of_range_1, set_image_of_range) - (regex_grow_registers): Likewise. - * sysdep.c (strerror): Likewise. - * termcap.c (valid_filename_p, tprint, main): Likewise. - * tparam.c (main): Likewise. - * unexhp9k800.c (run_time_remap, save_data_space) - (update_file_ptrs, read_header, write_header, calculate_checksum) - (copy_file, copy_rest, display_header): Likewise. - * widget.c (mark_shell_size_user_specified, create_frame_gcs): - Likewise. - * xdisp.c (check_it): Likewise. - * xfaces.c (register_color, unregister_color, unregister_colors): - Likewise. - * xfns.c (print_fontset_result): Likewise. - * xrdb.c (member, fatal, main): Likewise. + * frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el. + (syms_of_frame): Don't defsubr them. -2011-07-10 Paul Eggert +2013-11-25 Glenn Morris - Fix minor problems found by static checking (Bug#9031). - * chartab.c (char_table_set_range, map_sub_char_table): - Remove unused locals. - (uniprop_table): Now static. - * composite.c (_work_char): Remove unused static var. + * lread.c (load_path_default): Change the sense of the argument. + (init_lread): When EMACSLOADPATH is set, do not ignore changes + from dump_path. When it is not, avoid checking dump_path twice. -2011-07-09 Juanma Barranquero + * lread.c (init_lread): Fix 2013-11-23 goof that was checking + uninstalled dump_path against installed Vload_path. (Bug#15964) - * chartab.c (uniprop_table_uncompress): Remove unused local variable. +2013-11-24 Stefan Monnier -2011-07-09 Jan Djärv + Export get_pos_property to Elisp. + * editfns.c (Fget_pos_property): Rename from get_pos_property. + (syms_of_editfns): Export it to Elisp. - * gtkutil.c (qttip_cb): Remove code without function. + * data.c (Fmake_variable_buffer_local): Mention `permanent-local'. -2011-07-09 Eli Zaretskii +2013-11-23 Romain Francoise - * w32.c (pthread_sigmask): New stub. + * fileio.c (init_fileio): Move `write_region_inhibit_fsync' + initialization here ... + (syms_of_fileio): ... from here. -2011-07-08 Paul Eggert +2013-11-23 Stefan Monnier - Use pthread_sigmask, not sigprocmask (Bug#9010). - sigprocmask is portable only for single-threaded applications, and - Emacs can be multi-threaded when it uses GTK. - * Makefile.in (LIB_PTHREAD_SIGMASK): New macro. - (LIBES): Use it. - * callproc.c (Fcall_process): - * process.c (create_process): - * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask): - Use pthread_sigmask, not sigprocmask. + * lread.c (init_lread): Fix int/Lisp_Object mixup. + Please use --enable-check-lisp-object-type. -2011-07-08 Jan Djärv +2013-11-23 Glenn Morris - * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget. - (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was - wrong (Bug#8591). + * process.c (get_process): Explicit error for dead buffers. -2011-07-08 Jan Djärv +2013-11-23 Andreas Schwab - * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment. - Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591). - (xg_hide_tooltip): Fix comment. + * process.c (get_process): Check that OBJ is a live buffer. (Bug#15923) - * nsterm.m (initFrameFromEmacs): Don't use ns_return_types - in registerServicesMenuSendTypes. - (validRequestorForSendType): Don't check ns_return_types. +2013-11-23 Glenn Morris - * nsfns.m (Fx_open_connection): Put NSStringPboardType into - ns_return_type. + Empty elements in EMACSLOADPATH stand for the default. (Bug#12100) + * lread.c (load_path_check): Take path to check as argument. + (load_path_default): New, split from init_lread. + (init_lread): Move calc of default load-path to load_path_default. + Empty elements in EMACSLOADPATH now stand for the default. + (load-path): Doc fix. + * emacs.c (decode_env_path): Add option to treat empty elements + as nil rather than ".". + * callproc.c (init_callproc_1, init_callproc): + * image.c (Vx_bitmap_file_path): + * lisp.h (decode_env_path): + * lread.c (Vsource_directory): + Update for new argument spec of decode_env_path. -2011-07-08 Jason Rumney +2013-11-22 Eli Zaretskii - * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than - SH_SHOW for hidden windows (Bug#5482). + * bidi.c (bidi_find_paragraph_start): Limit the returned positions + to BEGV_BYTE..ZV_BYTE range. (Bug#15951) - * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using - frame struct members of non-existent frames (Bug#6284). +2013-11-21 Paul Eggert -2011-07-08 Jan Djärv + Fix some dependency problems that cause unnecessary recompiles. + Problem reported by RMS in + . + * Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS) + (really-lwlib, really-oldXMenu, stamp-oldxmenu) + (../src/$(OLDXMENU), $(OLDXMENU)): Remove. + (temacs$(EXEEXT)): Depend on $(LIBXMENU), not stamp-oldxmenu. + ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a, FORCE): New targets. + (boostrap-clean): No need to remove stamp-oldxmenu. - * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and - variable firstTime not needed on OSX >= 10.6. - (setPosition): setFloatValue:knobProportion: is deprecated on OSX - >= 10.5. Use setKnobProportion, setDoubleValue. + Fix recently introduced bool vector overrun. + This was due to an optimization that went awry. + Reported by Glenn Morris in + . + * alloc.c (make_uninit_bool_vector): Don't allocate a dummy word + for empty vectors, undoing the 2013-11-18 change. + * data.c (bool_vector_binop_driver): Rely on this. + Fix bug that occasionally overran the destination. + * lisp.h (struct Lisp_Bool_vector): Document this. - * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4) - (MAC_OS_X_VERSION_10_5): Define if not defined. - (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6. - (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6. - (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6. +2013-11-20 Jan Djärv - * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods - cString and lossyCString on OSX >= 10.4. + * nsterm.m (init, run, stop:): Enable again. stop calls super stop + to handle dialogs. - * nsmenu.m (fillWithWidgetValue): Don't use deprecated method - sizeToFit on OSX >= 10.2. + * nsterm.m (init, run, stop:): Comment out for now, does not work + with dialogs. - * nsimage.m (allocInitFromFile): Don't use deprecated method - bestRepresentationForDevice on OSX >= 10.6. +2013-11-19 Paul Eggert - * nsfns.m (check_ns_display_info): Cast to long and use %ld in error - to avoid warning. + * charset.c (syms_of_charset): Don't read past end of string. - * emacs.c: Declare unexec_init_emacs_zone. +2013-11-19 Glenn Morris - * nsgui.h: Fix compiler warning about gnulib redefining verify. + * frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes. - * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842). +2013-11-19 Brian Jenkins (tiny change) - * nsmenu.m (ns_update_menubar): Remove useless setDelegate call - on svcsMenu (Bug#8842). + Add hooks to run on gaining/losing focus. (Bug#15029) + * frame.c (Qfocus_in_hook, Qfocus_out_hook): New static lisp objects. + (Fhandle_focus_in, Fhandle_focus_out): Run focus hooks. + (syms_of_frame): Add focus-in-hook, focus-out-hook. - * nsfns.m (Fx_open_connection): Remove NSStringPboardType from - ns_return_types. - (Fns_list_services): Just return Qnil on 10.6, code not working there. +2013-11-18 Paul Eggert - * nsterm.m (QUTF8_STRING): Declare. - (initFrameFromEmacs): Call registerServicesMenuSendTypes. - (validRequestorForSendType): Return type is (id). - Change indexOfObjectIdenticalTo to indexOfObject. - Check if we have local selection before returning self (Bug#8842). - (writeSelectionToPasteboard): Put local selection into paste board - if we have a local selection (Bug#8842). - (syms_of_nsterm): DEFSYM QUTF8_STRING. + * data.c (bool_vector_binop_driver): Rename locals for sanity's sake. + The old names predated the API change that put destination at end. - * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m. - (ns_get_local_selection): Declare. + Improve API of recently-added bool vector functions (Bug#15912). + The old API had (bool-vector-count-matches A B) + and (bool-vector-count-matches-at A B I), which gave the + misleading impression that the two functions were variants, one + with a location I. The new API has (bool-vector-count-population A) + and (bool-vector-count-consecutive A B I) to make the distinction + clearer. The first function no longer has a B argument, since the + caller can easily determine the number of nils if the length and + number of ts is known. + * data.c (Fbool_vector_count_population): Rename from + bool_vector_count_matches, and accept just 1 argument. + (Fbool_vector_count_consecutive): Rename from + Fbool_vector_count_matches_at. -2011-07-07 Lars Magne Ingebrigtsen + Always allocate at least one bits_word per bool vector. + See Daniel Colascione in: + http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00518.html + * alloc.c (make_uninit_bool_vector): Always allocate at least one word. + * data.c (bool_vector_binop_driver): Rely on this. Tune. + * lisp.h (struct Lisp_Bool_vector): Document this. - * keymap.c (describe_map_tree): Don't insert a double newline at - the end of the buffer (bug#1169) and return whether we inserted - something. +2013-11-18 Eli Zaretskii - * callint.c (Fcall_interactively): Change "reading args" to - "providing args" to try to clarify what it does (bug#1010). + * insdel.c (invalidate_buffer_caches): New function, consolidated + from part of prepare_to_modify_buffer. + (insert_from_gap, prepare_to_modify_buffer): + * coding.c (code_convert_region, code_convert_string): + Call invalidate_buffer_caches. (Bug#15841) -2011-07-07 Kenichi Handa + * lisp.h (invalidate_buffer_caches): Add prototype. - * composite.c (composition_compute_stop_pos): Ignore a static - composition starting before CHARPOS (Bug#8915). +2013-11-17 Eli Zaretskii - * xdisp.c (handle_composition_prop): Likewise. + * w32term.c (x_update_window_end): Don't invalidate the entire + mouse-highlight info, just signal frame_up_to_date_hook that mouse + highlight needs to be redisplayed. (Bug#15913) -2011-07-07 Eli Zaretskii +2013-11-17 Paul Eggert - * term.c (produce_glyphs) : Allow IT_GLYPHLESS in it->what. - (Bug#9015) + * lisp.h (DEBUGGER_SEES_C_MACROS): Remove. -2011-07-07 Kenichi Handa +2013-11-16 Eli Zaretskii - * character.h (unicode_category_t): New enum type. + * doc.c (Fsubstitute_command_keys): Inhibit modification hooks + while we are using Vprin1_to_string_buffer. - * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types. - (Qchar_code_property_table): New variable. - (UNIPROP_TABLE_P, UNIPROP_GET_DECODER) - (UNIPROP_COMPRESSED_FORM_P): New macros. - (char_table_ascii): Uncompress the compressed values. - (sub_char_table_ref): New arg is_uniprop. Callers changed. - Uncompress the compressed values. - (sub_char_table_ref_and_range): Likewise. - (char_table_ref_and_range): Uncompress the compressed values. - (sub_char_table_set): New arg is_uniprop. Callers changed. - Uncompress the compressed values. - (sub_char_table_set_range): Args changed. Callers changed. - (char_table_set_range): Adjuted for the above change. - (map_sub_char_table): Delete args default_val and parent. Add arg - top. Give decoded values to a Lisp function. - (map_char_table): Adjust for the above change. Give decoded - values to a Lisp function. Gcpro more variables. - (uniprop_table_uncompress) - (uniprop_decode_value_run_length): New functions. - (uniprop_decoder, uniprop_decoder_count): New variables. - (uniprop_get_decoder, uniprop_encode_value_character) - (uniprop_encode_value_run_length, uniprop_encode_value_numeric): - New functions. - (uniprop_encoder, uniprop_encoder_count): New variables. - (uniprop_get_encoder, uniprop_table) - (Funicode_property_table_internal, Fget_unicode_property_internal) - (Fput_unicode_property_internal): New functions. - (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr - Sunicode_property_table_internal, Sget_unicode_property_internal, - and Sput_unicode_property_internal. Defvar_lisp - char-code-property-alist. - - * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of - Vunicode_category_table. - - * font.c (font_range): Adjust for the change of - Vunicode_category_table. - -2011-07-07 Dan Nicolaescu - - * m/iris4d.h: Remove file, move contents ... - * s/irix6-5.h: ... here. - -2011-07-06 Paul Eggert - - Remove unportable assumption about struct layout (Bug#8884). - * alloc.c (mark_buffer): - * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables) - (clone_per_buffer_values): Don't assume that - sizeof (struct buffer) is a multiple of sizeof (Lisp_Object). - This isn't true in general, and it's particularly not true - if Emacs is configured with --with-wide-int. - * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): - New macros, used in the buffer.c change. - -2011-07-05 Jan Djärv - - * xsettings.c: Use both GConf and GSettings if both are available. - (store_config_changed_event): Add comment. - (dpyinfo_valid, store_font_name_changed, map_tool_bar_style) - (store_tool_bar_style_changed): New functions. - (store_monospaced_changed): Add comment. Call dpyinfo_valid. - (struct xsettings): Move font inside HAVE_XFT. - (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines. - (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT. - Move inside HAVE_XFT. - (something_changed_gsettingsCB): Rename from something_changedCB. - Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME - also. - (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines. - (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT. - (something_changed_gconfCB): Rename from something_changedCB. - Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also. - (parse_settings): Move check for font inside HAVE_XFT. - (read_settings, apply_xft_settings): Add comment. - (read_and_apply_settings): Add comment. Call map_tool_bar_style and - store_tool_bar_style_changed. Move check for font inside HAVE_XFT and - call store_font_name_changed. - (xft_settings_event): Add comment. - (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE - and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT. - (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE - and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT. - (xsettings_initialize): Call init_gsettings last. - (xsettings_get_system_font, xsettings_get_system_normal_font): - Add comment. + * keymap.c (describe_map): Don't crash if PT is 1 both before and + after inserting the description string. (Bug#15907) -2011-07-05 Paul Eggert +2013-11-15 Paul Eggert - Random fixes. E.g., (random) never returned negative values. - * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the - subseconds part to the entropy, as that's a bit more random. - Prefer signed to unsigned, since the signedness doesn't matter and - in general we prefer signed. When given a limit, use a - denominator equal to INTMASK + 1, not to VALMASK + 1, because the - latter isn't right if USE_2_TAGS_FOR_INTS. - * sysdep.c (get_random): Return a value in the range 0..INTMASK, - not 0..VALMASK. Don't discard "excess" bits that random () returns. + * data.c: Work around bogus GCC diagnostic about shift count. + Reported by Eli Zaretskii in + . + (pre_value): New function. + (count_trailing_zero_bits): Use it. -2011-07-04 Stefan Monnier +2013-11-15 Eli Zaretskii - * textprop.c (text_property_stickiness): - Obey Vtext_property_default_nonsticky. - (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky. - * w32fns.c (syms_of_w32fns): - * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default. + * lisp.h (DEBUGGER_SEES_C_MACROS) [GCC < v3.5]: Pessimistically + assume C macros are not supported even under -g3 in these old GCC + versions. -2011-07-04 Paul Eggert +2013-11-15 Leo Liu - * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR. - This is more efficient than Ffile_directory_p and avoids a minor race. + * minibuf.c (Ftry_completion, Fall_completions) + (Ftest_completion): Use FUNCTIONP. (Bug#15889) -2011-07-04 Lars Magne Ingebrigtsen +2013-11-15 Paul Eggert - * buffer.c (Foverlay_put): Say what the return value is - (bug#7835). + * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): + Define to empty if DEBUGGER_SEES_C_MACROS is defined. + This avoids placing unnecessary constants into the Emacs code. - * fileio.c (barf_or_query_if_file_exists): Check first if the file - is a directory before asking whether to use the file name - (bug#7564). - (barf_or_query_if_file_exists): Make the "File is a directory" - error be more correct. +2013-11-14 Kazuhiro Ito (tiny change) - * fns.c (Frequire): Remove the mention of the .gz files, since - that's installation-specific, but keep the mention of - `get-load-suffixes'. + * keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible + for Cygwin w32 build. -2011-07-04 Paul Eggert + * xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible + for Cygwin w32 build. (Bug#15892) - * editfns.c (Fformat_time_string): Don't assume strlen fits in int. - Report string overflow if the output is too long. +2013-11-14 Paul Eggert -2011-07-04 Juanma Barranquero + Simplify, port and tune bool vector implementation. + * alloc.c (bool_vector_exact_payload_bytes) + (bool_vector_payload_bytes): Remove. + (bool_vector_fill): Return its argument. + * alloc.c (bool_vector_fill): + * lread.c (read1): + * print.c (print_object): + Simplify by using bool_vector_bytes. + * alloc.c (make_uninit_bool_vector): + New function, broken out from Fmake_bool_vector. + (Fmake_bool_vector): Use it. Use tail call. + (make_uninit_bool_vector, vector_nbytes): Simplify size calculations. + * data.c (BITS_PER_ULL): New constant. + (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts + if long long versions don't exist. + (shift_right_ull): New function. + (count_one_bits_word): New function, replacing popcount_bits_word + macro. Don't assume that bits_word is no wider than long long. + (count_one_bits_word, count_trailing_zero_bits): + Don't assume that bits_word is no wider than long long. + * data.c (bool_vector_binop_driver, bool_vector_not): + * fns.c (Fcopy_sequence): + * lread.c (read1): + Create an uninitialized destination, to avoid needless work. + (internal_equal): Simplify. + (Ffillarray): Prefer tail call. + * data.c (bool_vector_binop_driver): Don't assume bit vectors always + contain at least one word. + (bits_word_to_host_endian): Prefer if to #if. Don't assume + chars are narrower than ints. + * data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at): + * fns.c (Fcopy_sequence): + Simplify and tune. + * lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): + Don't try to port to hosts where bits_word values have holes; the + code wouldn't work there anyway. Verify this assumption, though. + (bool_vector_bytes): New function. + (make_uninit_bool_vector): New decl. + (bool_vector_fill): Now returns Lisp_Object. + + * xfns.c (xic_create_fontsetname): + * xrdb.c (gethomedir): Prefer tail calls. + +2013-11-12 Paul Eggert + + * xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper, + Qmeta, and Qsuper. This is safer, and it's what w32fns.c does. + + * buffer.c (Fforce_mode_line_update): Don't fall off end of function + that requires a return value. + (Fset_buffer_modified_p): Take advantage of this change to do + a tail call. + +2013-11-11 Stefan Monnier + + * buffer.c (Frestore_buffer_modified_p): Sync it with + Fset_buffer_modified_p. + (Fforce_mode_line_update): New function, moved from subr.el. + (Fset_buffer_modified_p): Use them. + (syms_of_buffer): Defsubr Fforce_mode_line_update. + +2013-11-11 Paul Eggert + + * search.c (find_newline): Rewrite to prefer offsets to pointers. + This avoids undefined behavior when subtracting pointers into + different aways. On my platform it also makes the code a tad + smaller and presumably faster. + +2013-11-11 Stefan Monnier + + * keyboard.c (command_loop_1): Use region-extract-function. + * insdel.c (Qregion_extract_function): Not static any more (can we + stop pretending that these vars can benefit from being marked static?). + +2013-11-09 Eli Zaretskii + + * search.c (find_newline): If buffer text is relocated during the + "dumb loop", adjust C pointers into buffer text to follow suit. + (Bug#15841) + +2013-11-09 Łukasz Stelmach (tiny change) + + * gtkutil.c (xg_check_special_colors): Use rgb: instead of rgbi: + for conversion (Bug#15837). + +2013-11-09 Eli Zaretskii + + * fileio.c (Finsert_file_contents): Invalidate the newline cache + for the entire range of inserted characters. (Bug#15841) + +2013-11-08 Jan Djärv + + * xfaces.c (lface_fully_specified_p): Let distant-foreground be + unspecified. + (realize_default_face): Remove assignment to distant-foreground if + unspecified (Bug#15815). + +2013-11-08 Eli Zaretskii + + * xdisp.c (message_dolog): Make sure the *Messages* buffer has its + cache-long-scans disabled, since we don't want to call + prepare_to_modify_buffer (in insert_1_both) for each message we + display. + + * buffer.h (bset_cache_long_scans): New INLINE function, moved + from buffer.c. Improve commentary to the buffer field setter + functions. + + * buffer.c (bset_cache_long_scans): Static function deleted. + Improve commentary to the buffer field setter functions. + (init_buffer_once): Default for cache-long-scans changed to t. + (Bug#15797) + +2013-11-08 Paul Eggert - * gnutls.c (Fgnutls_boot): Don't mention :verify-error. - (syms_of_gnutls): Remove duplicate DEFSYM for - Qgnutls_bootprop_verify_hostname_error, an error for - Qgnutls_bootprop_verify_error (which is no longer used). + * gmalloc.c (special_realloc, calloc, mallochook): Use tail calls. - * eval.c (find_handler_clause): Remove parameters `sig' and `data', - unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed. - Also (re)move comments that are misplaced or no longer relevant. + * chartab.c (make_sub_char_table): Fix size typo (Bug#15825). + This bug was introduced in my 2013-06-21 change, and caused + struct Lisp_Sub_Char_Table objects to be given too many slots, + which broke 'make -C admin/unidata'. -2011-07-03 Lars Magne Ingebrigtsen +2013-11-07 Jan Djärv - * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813). + Import changes from mac-port 4.5. + * macfont.m (mac_font_copy_default_descriptors_for_language) + (mac_font_copy_default_name_for_charset_and_languages): Declare. + (cf_charset_table): big-5-0 has uniquifier 0x4EDC. + (macfont_language_default_font_names): New. + (macfont_list): Rearrange language/charset code. + (macfont_close): Don't check for macfont_info->cache. + (mac_ctfont_create_preferred_family_for_attributes): New font + selection code, call + mac_font_copy_default_name_for_charset_and_languages. + (mac_font_copy_default_descriptors_for_language) + (mac_font_copy_default_name_for_charset_and_languages): New functions. -2011-07-03 Chong Yidong + * macfont.h (kCTVersionNumber10_9): Define if not defined. - * xfaces.c (Finternal_merge_in_global_face): Modify the foreground - and background color parameters if they have been changed. +2013-11-07 Paul Eggert -2011-07-03 Lars Magne Ingebrigtsen + Port to C11 aligned_alloc, and fix some integer overflows. + * alloc.c (USE_ALIGNED_ALLOC): New symbol. + (USE_POSIX_MEMALIGN): Remove. All uses replaced with USE_ALIGNED_ALLOC, + and use of posix_memalign replaced with aligned_alloc. + (aligned_alloc): New function, defined or declared as needed. + * conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]: + Don't undef; configure.ac now does this. + * gmalloc.c (aligned_alloc) [MSDOS]: New decl. + (calloc, aligned_alloc): Check for integer overflow. + (aligned_alloc): Rename from memalign. All uses changed. + (memalign): New function, an alias for aligned_alloc. - * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659). +2013-11-06 Stefan Monnier -2011-07-03 Paul Eggert + * xdisp.c (redisplay_internal): Fix typo in last change. - * xsettings.c (SYSTEM_FONT): Define only when used. - No need to define when HAVE_GSETTINGS || !HAVE_XFT. +2013-11-06 Paul Eggert - * keymap.c (access_keymap_1): Now static. + * regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2. -2011-07-02 Chong Yidong +2013-11-06 Stefan Monnier - * keyboard.c (command_loop_1): If a down-mouse event is unbound, - leave any prefix arg for the up event (Bug#1586). + * xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and + redisplay--mode-lines-cause. + (redisplay_internal): Keep them uptodate. Remove redundant check of + buffer_shared_and_changed. + * *.[chm]: Number every assignment to update_mode_lines so we + can track why it is set. -2011-07-02 Lars Magne Ingebrigtsen +2013-11-06 Eli Zaretskii - * lread.c (syms_of_lread): Mention single symbols defined by - `defvar' or `defconst' (bug#7154). + * editfns.c (Fformat_time_string): Doc fix. (Bug#15816) - * fns.c (Frequire): Mention .el.gz files (bug#7314). - (Frequire): Mention get-load-suffixes. +2013-11-06 Stefan Monnier + + * *.[chm]: Number every assignment to windows_or_buffers_changed so we + can track why it is set. + +2013-11-06 Paul Eggert + + Integer-related fixes for term.c etc. + * dispextern.h (face_tty_specified_color): New function. + * term.c (turn_on_face): Don't rely on undefined behavior when + assigning an out-of-range value to 'long'. + Simplify test for toggling highlight. + (tty_capable_p): Omit last two (unused) args. All callers changed. + * term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection) + (read_menu_input, tty_menu_activate, tty_menu_show): + * xfaces.c (x_supports_face_attributes_p) + (tty_supports_face_attributes_p): + Use bool for boolean. All callers changed. + (tty_supports_face_attributes_p): Omit defaults for color indices; + no longer needed. Simplify tail call. + +2013-11-05 Stefan Monnier + + * xdisp.c (prepare_menu_bars): Mark static. + * lisp.h (prepare_menu_bars): Don't declare. + * xselect.c (x_handle_selection_clear): + * callproc.c (call_process): Remove redundant call to prepare_menu_bars. + +2013-11-05 Paul Eggert + + * keyboard.c (Fcommand_error_default_function): Fix pointer signedness + glitch. Eliminate 'sz' prefix; Hungarian notation is not helpful here. + +2013-11-05 Stefan Monnier + + * keyboard.c (Fcommand_error_default_function): Rename from + Fdefault_error_output. + +2013-11-05 Jarek Czekalski (tiny change) + + * keyboard.c (Fdefault_error_output): New function, extracted from + cmd_error_internal. + (syms_of_keyboard): Use it for Vcommand_error_function. + +2013-11-05 Stefan Monnier + + * eval.c (handlerlist_sentinel): New variable (bug#15802). + (init_eval): Use it to ensure handlerlist is non-NULL. + (unwind_to_catch): Make sure we never set handlerlist to NULL. + (Fsignal): Adjust NULLness test of handlerlist. + * lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL. + +2013-11-05 Eli Zaretskii + + * callproc.c (call_process): Call prepare_to_modify_buffer before + decoding text read from the sub-process, as the decoded stuff will + be inserted into the buffer. This will invalidate the various + caches maintained for the buffer. (Bug#15148) + +2013-11-05 Xue Fuqiao + + * xdisp.c (syms_of_xdisp): Mention the active display table in doc + string of glyphless-char-display. + +2013-11-05 Jan Djärv + + * nsfns.m (ns_get_name_from_ioreg): New function. + (ns_screen_name): Don't use deprecated CGDisplayIOServicePort on + OSX >= 10.9. Use ns_get_name_from_ioreg. + +2013-11-05 Paul Eggert + + Simplify and port recent bool vector changes. + * alloc.c (ROUNDUP): Move here from lisp.h, since it's now used + only in this file. Use a more-efficient implementation if the + second argument is a power of 2. + (ALIGN): Rewrite in terms of ROUNDUP. Make it a function. + Remove no-longer-necessary compile-time checks. + (bool_vector_exact_payload_bytes): New function. + (bool_vector_payload_bytes): Remove 2nd arg; callers that need + exact payload changed to call the new function. Do not assume + that the arg or result fits in ptrdiff_t. + (bool_vector_fill): New function. + (Fmake_bool_vector): Use it. Don't assume bit counts fit + in ptrdiff_t. + (vroundup_ct): Don't assume arg fits in size_t. + * category.c (SET_CATEGORY_SET): Remove. All callers now just + invoke set_category_set. + (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool. + All callers changed. Use bool_vector_set. + * category.h (XCATEGORY_SET): Remove; no longer needed. + (CATEGORY_MEMBER): Now a function. Rewrite in terms of + bool_vector_bitref. + * data.c (Faref): Use bool_vector_ref. + (Faset): Use bool_vector_set. + (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT. + (Fbool_vector_not, Fbool_vector_count_matches) + (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8. + * fns.c (concat): Use bool_vector_ref. + (Ffillarray): Use bool_vector_fill. + (mapcar1): Use bool_vector_ref. + (sxhash_bool_vector): Hash words, not bytes. + * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as + a constant, since it's now used in #if. + (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on + unsigned char on unusual architectures, so that we no longer + assume that the number of bits per bits_word is a power of two or + is a multiple of 8 or of CHAR_BIT. + (Qt): Add forward decl. + (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned + at least as strictly as bits_word. + (bool_vector_data, bool_vector_uchar_data): New accessors. + All data structure accesses changed to use them. + (bool_vector_words, bool_vector_bitref, bool_vector_ref) + (bool_vector_set): New functions. + (bool_vector_fill): New decl. + (ROUNDUP): Move to alloc.c as described above. + + Fix recent gnutls changes. + * gnutls.c (Fgnutls_boot): Don't assume C99. + * process.c (wait_reading_process_output): Fix typo in recent change. + +2013-11-05 Teodor Zlatanov + + * process.c (wait_reading_process_output, read_process_output) + (send_process): Check gnutls_state is not NULL. + + * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN. + (Fgnutls_boot): Set process gnutls_p later, after initialization. + +2013-11-04 Jan Djärv + + * nsterm.m (init, run, stop:): New methods in EmacsApp for + OSX >= 10.9 to prevent memory leak of GCD dispatch source. + + * nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for + OSX >= 10.9. + + * nsfns.m (Fx_create_frame): Fix memory leak. + + * macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND) + (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND) + (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak. + +2013-11-04 Eli Zaretskii + + * xdisp.c (message3_nolog, message_with_string): Encode the string + before writing it to the terminal in a non-interactive session. + + * lread.c (openp): If both FILENAME and SUFFIX are unibyte, make + sure we concatenate them into a unibyte string. + + * fileio.c (make_temp_name): Encode PREFIX, and decode the + resulting temporary name before returning it to the caller. + (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY + is a unibyte string, convert NAME to a unibyte string to ensure + that the result is also a unibyte string. + + * emacs.c (init_cmdargs): Use build_unibyte_string to make sure we + create unibyte strings from default paths and directory/file + names. + + * coding.h (ENCODE_FILE): Do not attempt to encode a unibyte + string. + + * callproc.c (init_callproc): Use build_unibyte_string to make + sure we create unibyte strings from default paths and + directory/file names. + + * buffer.c (init_buffer): Don't store default-directory of + *scratch* in multibyte form. The original problem which led to + that is described in + http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html, + but it was solved long ago. (Bug#15260) + +2013-11-04 Paul Eggert + + Port to stricter C99 platforms. + Especially, C99 prohibits nesting a struct X inside struct Y if + struct X has a flexible array member. + * alloc.c (struct sdata): New type. + (sdata): Implement in terms of struct sdata. + Remove u member; all uses replaced by next_vector, set_next_vector. + (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change. + (SDATA_DATA_OFFSET): Now a constant, not a macro. + (struct sblock): Rename first_data member to data, which is now + a flexible array member. All uses changed. + (next_vector, set_next_vector, large_vector_vec): New functions. + (vector_alignment): New constant. + (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too. + (struct large-vector): Now merely a NEXT member, since the old approach + ran afoul of stricter C99. All uses changed to use + large_vector_vec or large_vector_offset. + (large_vector_offset): New constant. + * dispnew.c: Include tparam.h, for tgetent. + Do not include term.h; no longer needed. + * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn. + * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int. + (struct Lisp_Vector): Use a flexible array member for contents, + instead of a union with a member that is an array of size 1. + All uses changed. + (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the + fact that the struct no longer contains a union. + (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay) + (struct Lisp_Save_Value, struct Lisp_Free): + Use unsigned, not int, for spacers, to avoid c99 warning. + (union specbinding): Use unsigned, not bool, for bitfield, as + bool is not portable to pre-C99 hosts. + +2013-11-04 Glenn Morris + + * emacs.c (usage_message): Mention that `-L :...' appends. + +2013-11-02 Glenn Morris + + * Makefile.in (abs_builddir): Remove. + (bootstrap_exe): Use relative filename. + + Use relative filenames in TAGS files. + * Makefile.in (abs_srcdir): Remove it again. + (.PHONY): Remove frc. + (maintainer-clean): No more TAGS-LISP file. + (TAGS): Pass relative file names to etags. + (../lisp/TAGS): Rename from TAGS-LISP. Work in ../lisp. + + * Makefile.in (abs_srcdir): New, set by configure. + (lispdir): Remove. + (maintainer-clean): Remove pointless echo. That should be in the + top-level Makefile, if anywhere. Delete TAGS-LISP. + (extraclean): No s/ and m/ directories for some time. + (TAGS): Also depend on ctagsfiles3. + Remove no-longer-defined S_FILE. + Pass absolute filenames to etags once more. + (TAGS-LISP): Replace lispdir with its expansion. + (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes. + ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value. + +2013-11-02 Jan Djärv + + * xfaces.c (check_lface_attrs, realize_default_face): + Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788). + (realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg. + +2013-11-02 Paul Eggert + + * emacs.c (original_pwd): Remove global var by making it local. + (init_cmdargs): New arg ORIGINAL_PWD; caller changed. + +2013-11-01 Jan Djärv + + * xfaces.c: Declare color_distance. + (QCdistant_foreground): New variable. + (NEAR_SAME_COLOR_THRESHOLD): New define. + (load_color2): New function. + (load_color): Call load_color2. + (load_face_colors): Call load_color2 and if distant-color is specified + calculate distant and use distant-color if colors are near. + (LFACE_DISTANT_FOREGROUND): New define. + (merge_face_ref, Finternal_set_lisp_face_attribute) + (Finternal_get_lisp_face_attribute) + (x_supports_face_attributes_p): Handle distant-foreground similar to + foreground. + (syms_of_xfaces): DEFSYM QCdistant_foreground. + + * dispextern.h (lface_attribute_index): + Add LFACE_DISTANT_FOREGROUND_INDEX. + +2013-11-01 Claudio Bley + + * image.c (pbm_next_char): New function. + See http://netpbm.sourceforge.net/doc/pbm.html for the details. + (pbm_scan_number): Use it. + (Qlibjpeg_version): New variable. + (syms_of_image): DEFSYM and initialize it. + +2013-10-31 Jan Djärv + + * emacs.c (main): Skip -psn args on OSX even if ! isatty (0). + +2013-10-31 Glenn Morris + + * emacs.c (original_pwd): New char. + (main): If using --chdir, store original_pwd. + (init_cmdargs): When setting Vinvocation_directory based on a + relative argv[0], use original_pwd if set. (Bug#15768) + +2013-10-29 Stefan Monnier + + * keyboard.c (command_loop_1): If command is nil, call `undefined'. + +2013-10-29 Paul Eggert + + * insdel.c: Fix minor problems found by static checking. + (Qregion_extract_function): Now static. + (prepare_to_modify_buffer_1): Remove unused locals. + +2013-10-29 Stefan Monnier + + * xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function. + (syms_of_xdisp): Declare pre-redisplay-function. + (markpos_of_region): Remove function. + (init_iterator, compute_stop_pos, handle_face_prop) + (face_before_or_after_it_pos, reseat_to_string) + (get_next_display_element, window_buffer_changed) + (redisplay_internal, try_cursor_movement, redisplay_window) + (try_window_reusing_current_matrix, try_window_id, display_line) + (note_mode_line_or_margin_highlight, note_mouse_highlight) + (display_string, mouse_face_from_buffer_pos): Remove region handling. + * window.h (struct window): Remove field `region_showing'. + * dispextern.h (struct it): Remove region_beg/end_charpos. + (face_at_buffer_position, face_for_overlay_string) + (face_at_string_position): Update prototypes. + * xfaces.c (face_at_buffer_position, face_for_overlay_string) + (face_at_string_position): Remove `region_beg' and `region_end' args. + * fontset.c (Finternal_char_font): + * font.c (font_at, font_range): Adjust calls accordingly. + * insdel.c (Qregion_extract_function): New var. + (syms_of_insdel): Initialize it. + (prepare_to_modify_buffer_1): Use it. + +2013-10-29 Dmitry Antipov + + Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'. + * ftxfont.c (ftxfont_get_gcs): + * gtkutil.c (xg_set_widget_bg, xg_set_background_color): + * xfaces.c (x_free_colors, x_free_dpy_colors) + (x_create_gc, unload_color): + * xselect.c (x_property_data_to_lisp): + * xsettings.c (parse_settings): + * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color) + (get_bits_and_offset): Adjust definition. + * frame.c (XParseGeometry): Adjust locals. + * lisp.h (toplevel): Adjust EMACS_UINT type definition. + * regex.h (toplevel): Likewise for reg_syntax_t. + +2013-10-29 Stefan Monnier + + * eval.c (run_hook_with_args): Use FUNCTIONP. + +2013-10-29 Dmitry Antipov -2011-07-02 Martin Rudalics + * xterm.h (struct x_output): For 'black_relief' and 'white_relief' + fields, drop 'allocated_p' member and use -1 for uninitialized value. + * w32term.h (struct w32_output): Similarly but do not use -1 because... + * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op + on MS-Windows anyway. + (free_face_colors): Define only if HAVE_X_WINDOWS and... + (free_realized_face): ...adjust user. + * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and + white relief pixels to -1. + * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users. + * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise. + * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS. - * window.h (window): Remove clone_number slot. - * window.c (Fwindow_clone_number, Fset_window_clone_number): - Remove. - (make_parent_window, make_window, saved_window) - (Fset_window_configuration, save_window_save): Don't deal with - clone numbers. - * buffer.c (Qclone_number): Remove declaration. - (sort_overlays, overlay_strings): Don't deal with clone numbers. - -2011-07-02 Stefan Monnier - - Add multiple inheritance to keymaps. - * keymap.c (Fmake_composed_keymap): New function. - (Fset_keymap_parent): Simplify. - (fix_submap_inheritance): Remove. - (access_keymap_1): New function extracted from access_keymap to handle - embedded parents and handle lists of maps. - (access_keymap): Use it. - (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap) - (Fcopy_keymap): Handle embedded parents. - (Fcommand_remapping, define_as_prefix): Simplify. - (Fkey_binding): Simplify. - (syms_of_keymap): Move minibuffer-local-completion-map, - minibuffer-local-filename-completion-map, - minibuffer-local-must-match-map, and - minibuffer-local-filename-must-match-map to Elisp. - (syms_of_keymap): Defsubr make-composed-keymap. - * keyboard.c (menu_bar_items): Use map_keymap_canonical. - (parse_menu_item): Trivial simplification. - -2011-07-01 Glenn Morris - - * Makefile.in (SETTINGS_LIBS): Fix typo. - -2011-07-01 Kazuhiro Ito (tiny change) - - * coding.c (Fencode_coding_string): Record the last coding system - used, as the function doc string says (bug#8738). - -2011-07-01 Jan Djärv - - * xsettings.c (store_monospaced_changed): Take new font as arg and - check for change against current_mono_font. - (EMACS_TYPE_SETTINGS): Remove this and related defines. - (emacs_settings_constructor, emacs_settings_get_property) - (emacs_settings_set_property, emacs_settings_class_init) - (emacs_settings_init, gsettings_obj): Remove. - (something_changedCB): New function for HAVE_GSETTINGS. - (something_changedCB): HAVE_GCONF: Call store_monospaced_changed - with value as argument. - (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling - g_settings_new (Bug#8967). Do not create gsettings_obj. - Remove calls to g_settings_bind. Connect something_changedCB to - "changed". - - * xgselect.c: Add defined (HAVE_GSETTINGS). - (xgselect_initialize): Ditto. - - * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h - (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for - xg_select. - -2011-07-01 Paul Eggert - - * eval.c (struct backtrace): Simplify and port the data structure. - Do not assume that "int nargs : BITS_PER_INT - 2;" produces a - signed bit field, as this assumption is not portable and it makes - Emacs crash when compiled with Sun C 5.8 on sparc. Do not use - "char debug_on_exit : 1" as this is not portable either; instead, - use the portable "unsigned int debug_on_exit : 1". Remove unused - member evalargs. Remove obsolete comments about cc bombing out. - -2011-06-30 Jan Djärv - - * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS. - Let HAVE_GSETTINGS override HAVE_GCONF. - (store_monospaced_changed): New function. - (EMACS_SETTINGS): A new type derived from GObject to handle - GSettings notifications. - (emacs_settings_constructor, emacs_settings_get_property) - (emacs_settings_set_property, emacs_settings_class_init): - New functions. - (gsettings_client, gsettings_obj): New variables. - (GSETTINGS_SCHEMA): New define. - (something_changedCB): Call store_monospaced_changed. - (init_gsettings): New function. - (xsettings_initialize): Call init_gsettings. - (syms_of_xsettings): Initialize gsettings_client, gsettings_obj - to NULL. +2013-10-28 Paul Eggert - * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from - GCONF_CFLAGS/LIBS. + * dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static. + * xfaces.c (load_pixmap): Omit last two args, which are always NULL + in practice now. All callers changed. -2011-06-29 Martin Rudalics +2013-10-28 Dmitry Antipov - * window.c (resize_root_window, grow_mini_window) - (shrink_mini_window): Rename Qresize_root_window to - Qwindow_resize_root_window and Qresize_root_window_vertically to - Qwindow_resize_root_window_vertically. + * dispextern.h (struct face): Use bitfields for 'underline_type' + and 'box' members. Remove set-but-unused members 'pixmap_w' and + 'pixmap_h'. If not HAVE_WINDOW_SYSTEM, also remove dummy + 'stipple' member. Move 'lface' member up to help... + * xfaces.c (make_realized_face): ...this function to find and + clear just the members that need clearing. + (load_face_colors, realize_x_face): + * xdisp.c (extend_face_to_end_of_line): Adjust user. -2011-06-28 Paul Eggert +2013-10-27 Dmitry Antipov - * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var. + * xftfont.c (struct xftfont_info): Remove set-but-unused + 'screen' member. + (xftfont_open): Adjust user. + (xftfont_get_colors): Remove useless prototype. -2011-06-27 Juanma Barranquero +2013-10-26 Eli Zaretskii - * makefile.w32-in: Redesign dependencies so they reflect more - clearly which files are directly included by each source file, - and not through other includes. + * emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments + before passing them to 'unexec'. (Bug#15260) -2011-06-27 Martin Rudalics +2013-10-26 Xue Fuqiao - * buffer.c (Qclone_number): Declare static and DEFSYM it. - (sort_overlays, overlay_strings): When an overlay's clone number - matches the window's clone number process the overlay even if - the overlay's window property doesn't match the current window. + * fringe.c (set_fringe_bitmap_face): Add usage note from lispref. - * window.c (Fwindow_vchild): Rename to Fwindow_top_child. - (Fwindow_hchild): Rename to Fwindow_left_child. - (Fwindow_next): Rename to Fwindow_next_sibling. - (Fwindow_prev): Rename to Fwindow_prev_sibling. - (resize_window_check): Rename to window_resize_check. - (resize_window_apply): Rename to window_resize_apply. - (Fresize_window_apply): Rename to Fwindow_resize_apply. - (Fdelete_other_windows_internal, resize_frame_windows) - (Fsplit_window_internal, Fdelete_window_internal) - (grow_mini_window, shrink_mini_window) - (Fresize_mini_window_internal): Fix callers accordingly. +2013-10-25 Eli Zaretskii -2011-06-26 Jan Djärv + * w32uniscribe.c (uniscribe_close): Adjust the argument list to + the changed signature of the font driver's 'close' method. - * emacsgtkfixed.h: State that this is only used with Gtk+3. - (emacs_fixed_set_min_size): Remove. - (emacs_fixed_new): Take frame as argument. + * w32font.h (w32font_close): Adjust the prototype to the change in + function definition. - * emacsgtkfixed.c: State that this is only used with Gtk+3. - (_EmacsFixedPrivate): Remove minwidth/height. - Add struct frame *f. - (emacs_fixed_init): Initialize priv->f. - (get_parent_class, emacs_fixed_set_min_size): Remove. - (emacs_fixed_new): Set priv->f to argument. - (emacs_fixed_get_preferred_width) - (emacs_fixed_get_preferred_height): Use min_width/height from - frames size_hint to set minimum and natural (Bug#8919). - (XSetWMSizeHints, XSetWMNormalHints): Override these functions - and use min_width/height from frames size_hint to set - min_width/height (Bug#8919). + * w32font.c (w32font_close): Reintroduce deleted declaration of i. - * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new. - (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size. - Fix indentation. + * w32uniscribe.c (uniscribe_close): Adapt the call to + w32font_close to its new prototype. -2011-06-26 Eli Zaretskii +2013-10-25 Dmitry Antipov - * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling - bidi_at_paragraph_end, since fast_looking_at doesn't like to be - called at ZV. + Omit unused frame argument of font API's close function. + * font.h (struct font): Drop frame argument. Adjust comment. + * font.c (font_clear_cache, font_close_object): Adjust users. + * ftfont.c (ftfont_close): + * ftxfont.c (ftxfont_close): + * macfont.m (macfont_close): + * nsfont.m (nsfont_close): + * w32font.c (w32font_close): + * xfont.c (xfont_close): + * xftfont.c (xftfont_close): Adjust driver-specific close functions, + tweak comments and make functions safe if called more than once for + the same font object. -2011-06-26 Chong Yidong + Perform font-specific cleanup when font object is swept by GC. See + http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00740.html. + * alloc.c (cleanup_vector): New function. + (sweep_vector): Call it for each reclaimed vector object. + * font.h (struct font): Adjust comment. - * process.c (wait_reading_process_output): Bypass select if - waiting for a cell while ignoring keyboard input, and input is - pending. Suggested by Jan Djärv (Bug#8869). +2013-10-24 Glenn Morris -2011-06-25 Paul Eggert + * Makefile.in (abs_top_srcdir): New, set by configure. - Use gnulib's dup2 module instead of rolling our own. - * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this. +2013-10-23 Dmitry Antipov -2011-06-25 YAMAMOTO Mitsuharu + Adjust recent font-related changes to fix bug#15686. + * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame + is a live window system frame, mark its default font too. - * dispnew.c (scrolling_window): Before scrolling, turn off a - mouse-highlight in the window being scrolled. +2013-10-23 Glenn Morris -2011-06-24 Juanma Barranquero + * 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. - Move DEFSYM to lisp.h and use everywhere. +2013-10-23 Paul Eggert - * character.h (DEFSYM): Move declaration... - * lisp.h (DEFSYM): ...here. + Port to Solaris 10 and its bundled GCC. + Problem reported by Timothy C. Burt. + * floatfns.c (isfinite, isnan): Redefine unconditionally. - * gnutls.c: - * minibuf.c: - * w32menu.c: - * w32proc.c: - * w32select.c: Don't include character.h. +2013-10-21 Dmitry Antipov - * alloc.c (syms_of_alloc): - * buffer.c (syms_of_buffer): - * bytecode.c (syms_of_bytecode): - * callint.c (syms_of_callint): - * casefiddle.c (syms_of_casefiddle): - * casetab.c (init_casetab_once): - * category.c (init_category_once, syms_of_category): - * ccl.c (syms_of_ccl): - * cmds.c (syms_of_cmds): - * composite.c (syms_of_composite): - * dbusbind.c (syms_of_dbusbind): - * dired.c (syms_of_dired): - * dispnew.c (syms_of_display): - * doc.c (syms_of_doc): - * editfns.c (syms_of_editfns): - * emacs.c (syms_of_emacs): - * eval.c (syms_of_eval): - * fileio.c (syms_of_fileio): - * fns.c (syms_of_fns): - * frame.c (syms_of_frame): - * fringe.c (syms_of_fringe): - * insdel.c (syms_of_insdel): - * keymap.c (syms_of_keymap): - * lread.c (init_obarray, syms_of_lread): - * macros.c (syms_of_macros): - * msdos.c (syms_of_msdos): - * print.c (syms_of_print): - * process.c (syms_of_process): - * search.c (syms_of_search): - * sound.c (syms_of_sound): - * syntax.c (init_syntax_once, syms_of_syntax): - * terminal.c (syms_of_terminal): - * textprop.c (syms_of_textprop): - * undo.c (syms_of_undo): - * w32.c (globals_of_w32): - * window.c (syms_of_window): - * xdisp.c (syms_of_xdisp): - * xfaces.c (syms_of_xfaces): - * xfns.c (syms_of_xfns): - * xmenu.c (syms_of_xmenu): - * xsettings.c (syms_of_xsettings): - * xterm.c (syms_of_xterm): Use DEFSYM. - -2011-06-24 Teodor Zlatanov - - * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h. - -2011-06-23 Paul Eggert - - Integer and buffer overflow fixes (Bug#8873). - - * print.c (printchar, strout): Check for string overflow. - (PRINTPREPARE, printchar, strout): - Don't set size unless allocation succeeds. - - * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int, - for sizes. Check for string overflow more accurately. - Simplify newline removal at end; this suppresses a GCC 4.6.0 warning. - - * macros.c: Integer and buffer overflow fixes. - * keyboard.h (struct keyboard.kbd_macro_bufsize): - * macros.c (Fstart_kbd_macro, store_kbd_macro_char): - Use ptrdiff_t, not int, for sizes. - Don't increment bufsize until after realloc succeeds. - Check for size-calculation overflow. - (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result. - - * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling. - - * lread.c: Integer overflow fixes. - (read_integer): Radix is now EMACS_INT, not int, - to improve quality of diagnostics for out-of-range radices. - Calculate buffer size correctly for out-of-range radices. - (read1): Check for integer overflow in radices, and in - read-circle numbers. - (read_escape): Avoid int overflow. - (Fload, openp, read_buffer_size, read1) - (substitute_object_recurse, read_vector, read_list, map_obarray): - Use ptrdiff_t, not int, for sizes. - (read1): Use EMACS_INT, not int, for sizes. - Check for size overflow. - - * image.c (cache_image): Check for size arithmetic overflow. - - * lread.c: Integer overflow issues. - (saved_doc_string_size, saved_doc_string_length) - (prev_saved_doc_string_size, prev_saved_doc_string_length): - Now ptrdiff_t, not int. - (read1): Don't assume doc string length fits in int. Check for - out-of-range doc string lengths. - (read_list): Don't assume file position fits in int. - (read_escape): Check for hex character overflow. - -2011-06-22 Leo Liu - - * minibuf.c (Fcompleting_read_default, Vcompleting_read_function): - Move to minibuffer.el. - -2011-06-22 Paul Eggert - - Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking. - The following patches are for when GLYPH_DEBUG && !XASSERT. - * dispextern.h (trace_redisplay_p, dump_glyph_string): - * dispnew.c (flush_stdout): - * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph): - Mark as externally visible. - * dispnew.c (check_window_matrix_pointers): Now static. - * dispnew.c (window_to_frame_vpos): - * xfns.c (unwind_create_frame): - * xterm.c (x_check_font): Remove unused local. - * scroll.c (CHECK_BOUNDS): - * xfaces.c (cache_fache): Rename local to avoid shadowing. - * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static. - * xdisp.c (check_window_end): Now a no-op if !XASSERTS. - (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos) - (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos): + Do not allow font caches to grow too large. + * alloc.c (compact_font_cache_entry, compact_font_caches): + New functions or stub if not HAVE_WINDOW_SYSTEM. + (compact_undo_list): Factor out from Fgarbage_collect. + Add comment. + (mark_face_cache): Mark face font. Move down to avoid + extra prototypes. + (mark_terminals): Do not mark font cache here. + (Fgarbage_collect): Call compaction functions described + above. Adjust comment. + +2013-10-20 Jan Djärv + + * emacs.c (main): On Cocoa, if GUI session and 0 is not a tty, + chdir to HOME (bug#15607). + + * nsterm.m (Qcocoa, Qgnustep): New variables. + (syms_of_nsterm): Defsym Qcocoa, Qgnustep. Fprovide appropriate one. + (ns_get_color): Make selection color work for GNUStep also. + +2013-10-18 Eli Zaretskii + + * keyboard.c (make_lispy_event): Remove GPM-specific code that + handles mouse clicks. Instead, let GPM use the same code as all + the other mice use. See the discussion starting at + http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html + for the details of the problem with the menu bar this fixes. + +2013-10-18 Dmitry Antipov + + Remove port-specific display name lists to avoid extra + complexity and data duplication with display info lists. + * xterm.h (x_display_name_list): Remove declaration. + * xterm.c (x_display_name_list): Remove. + (x_term_init, x_delete_display, syms_of_xterm): Adjust users. + * xfns.c (x_display_info_for_name, Fx_display_list): + Likewise. Use x_display_list where appropriate. + * w32term.h (w32_display_name_list): Remove declaration. + * w32term.c (w32_display_name_list): Remove. + (w32_initialize_display_info, x_delete_display, syms_of_w32term): + Adjust users. + * w32fns.c (x_display_info_for_name, Fx_display_list): + Likewise. Use x_display_list where appropriate. + * nsterm.h (ns_display_name_list): Remove declaration. + * nsterm.m (ns_display_name_list): Remove. + (ns_term_init, syms_of_nsterm): Adjust users. + * nsfns.m (ns_display_info_for_name, Fx_display_list): + Likewise. Use x_display_list where appropriate. + * termhooks.h (TERMINAL_FONT_CACHE): New macro. + * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER. + (mark_terminals): Mark per-terminal font cache. + +2013-10-17 Barry O'Reilly + + Don't run timers in input-pending-p. Its new check-timers param + provides the prior behavior. (Bug#15045). + * src/keyboard.c (Finput_pending_p): Accept optional check-timers + param. + +2013-10-17 Paul Eggert + + Make some functions static in non-Microsoft builds. + On my platform (Fedora 19 x86-64), this shrinks the + Emacs executable (text+data) by 0.25%. + * dispextern.h (erase_phys_cursor) [!WINDOWSNT]: + (load_color) [!MSDOS]: + * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]: + * keyboard.h (make_ctrl_char) [!WINDOWSNT]: + * lisp.h (check_existing): + * process.h (conv_sockaddr_to_lisp, network_interface_list) + (network_interface_info) [!WINDOWSNT]: + * termhooks.h (encode_terminal_code) [!WINDOWSNT]: + Remove extern decls. + * fileio.c (check_existing): + * keyboard.c (make_ctrl_char) [!WINDOWSNT]: + * process.c (conv_sockaddr_to_lisp, network_interface_list) + (network_interface_info) [!WINDOWSNT]: + * term.c (encode_terminal_code) [!WINDOWSNT]: + * xdisp.c (erase_phys_cursor) [!WINDOWSNT]: + * xfaces.c (load_color) [!MSDOS]: Now static. - (debug_method_add): Use va_list and vsprintf rather than relying - on undefined behavior with wrong number of arguments. - (dump_glyph, dump_glyph_row, Fdump_glyph_matrix): - Don't assume ptrdiff_t and EMACS_INT are the same width as int. - In this code, it's OK to assume C99 behavior for ptrdiff_t formats - since we're not interested in debugging glyphs with old libraries. - * xfaces.c (cache_face): Move debugging code earlier; this pacifies - GCC 4.6.0's static checking. - -2011-06-22 Paul Eggert - - Integer overflow and signedness fixes (Bug#8873). - A few related buffer overrun fixes, too. - - * font.c (font_score): Use EMACS_INT, not int, to store XINT value. - - * dispextern.h (struct face.stipple): - * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap) - (x_bitmap_mask, x_allocate_bitmap_record) - (x_create_bitmap_from_data, x_create_bitmap_from_file) - (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask) - (x_create_bitmap_from_xpm_data): - * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last): - * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size) - (.bitmaps_last): - * xfaces.c (load_pixmap): - * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap): - * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size) - (.bitmaps_last, struct x_output.icon_bitmap): - Use ptrdiff_t, not int, for bitmap indexes. - (x_allocate_bitmap_record): Check for size overflow. - * dispextern.h, lisp.h: Adjust to API changes elsewhere. - - Use ptrdiff_t, not int, for overlay counts. - * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT): - * editfns.c (overlays_around, get_pos_property): - * textprop.c (get_char_property_and_overlay): - * xdisp.c (next_overlay_change, note_mouse_highlight): - * xfaces.c (face_at_buffer_position): - * buffer.c (OVERLAY_COUNT_MAX): New macro. - (overlays_at, overlays_in, sort_overlays, Foverlays_at) - (Fnext_overlay_change, Fprevious_overlay_change) - (mouse_face_overlay_overlaps, Foverlays_in): - Use ptrdiff_t, not int, for sizes. - (overlays_at, overlays_in): Check for size-calculation overflow. - - * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int. - - * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen. - (x_session_initialize): Do not assume string length fits in int. - - * xsettings.c (apply_xft_settings): Fix potential buffer overrun. - This is unlikely, but can occur if DPI is outlandish. - - * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font): - * xselect.c (Fx_get_atom_name): Avoid need for strlen. - - * xrdb.c: Don't assume strlen fits in int; avoid some strlens. - * xrdb.c (magic_file_p, search_magic_path): - Omit last arg SUFFIX; it was always 0. All callers changed. - (magic_file_p): Use ptrdiff_t, not int. Check for size overflow. - - * xfont.c (xfont_match): Avoid need for strlen. - - * xfns.c: Don't assume strlen fits in int. - (xic_create_fontsetname, x_window): Use ptrdiff_t, not int. - - * xdisp.c (message_log_check_duplicate): Return intmax_t, - not unsigned long, as we prefer signed integers. All callers changed. - Detect integer overflow in repeat count. - (message_dolog): Don't assume print length fits in 39 bytes. - (display_mode_element): Don't assume strlen fits in int. - - * termcap.c: Don't assume sizes fit in int and never overflow. - (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes. - (gobble_line): Check for size-calculation overflow. - - * minibuf.c (Fread_buffer): - * lread.c (intern, intern_c_string): - * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]: - Don't assume string length fits in int. - - * keyboard.c (parse_tool_bar_item): - * gtkutil.c (style_changed_cb): Avoid need for strlen. - - * font.c: Don't assume string length fits in int. - (font_parse_xlfd, font_parse_fcname, font_unparse_fcname): - Use ptrdiff_t, not int. - (font_intern_prop): Don't assume string length fits in int. - Don't assume integer property fits in fixnum. - * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int. - - * filelock.c: Fix some buffer overrun and integer overflow issues. - (get_boot_time): Don't assume gzip command string fits in 100 bytes. - Reformulate so as not to need the command string. - Invoke gzip -cd rather than gunzip, as it's more portable. - (lock_info_type, lock_file_1, lock_file): - Don't assume pid_t and time_t fit in unsigned long. - (LOCK_PID_MAX): Remove; we now use more-reliable bounds. - (current_lock_owner): Prefer signed type for sizes. - Use memcpy, not strncpy, where memcpy is what is really wanted. - Don't assume (via atoi) that time_t and pid_t fit in int. - Check for time_t and/or pid_t out of range, e.g., via a network share. - Don't alloca where an auto var works fine. - - * fileio.c: Fix some integer overflow issues. - (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name): - Don't assume string length fits in int. - (directory_file_name): Don't assume string length fits in long. - (make_temp_name): Don't assume pid fits in int, or that its print - length is less than 20. - - * data.c (Fsubr_name): Rewrite to avoid a strlen call. - - * coding.c (make_subsidiaries): Don't assume string length fits in int. - - * callproc.c (child_setup): Rewrite to avoid two strlen calls. - - * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT. - We prefer signed integers, even for size calculations. - - * emacs.c: Don't assume string length fits in 'int'. - (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int. - (main): Don't invoke strlen when not needed. - - * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string. - (XD_DEBUG_MESSAGE): Don't waste a byte. - - * callproc.c (getenv_internal_1, getenv_internal) - (Fgetenv_internal): - * buffer.c (init_buffer): Don't assume string length fits in 'int'. - - * lread.c (invalid_syntax): Omit length argument. - All uses changed. This doesn't fix a bug, but it simplifies the - code away from its former Hollerith-constant appearance, and it's - one less 'int' to worry about when looking at integer-overflow issues. - (string_to_number): Simplify 2011-04-26 change by invoking xsignal1. - - * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr). - This didn't break anything, but it didn't help either. - It's confusing to put a bogus integer in a place where the actual - value does not matter. - (LIST_END_P): Remove unused macro and its bogus comment. - (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT. - - * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT. - This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE, - implementation. - (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT. - We prefer signed types, and the value cannot exceed the EMACS_INT - range anyway (because otherwise the length would not be representable). - (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t, - not EMACS_UINT and EMACS_INT, when converting pointer to integer. - This avoids a GCC warning when WIDE_EMACS_INT. - - * indent.c (sane_tab_width): New function. - (current_column, scan_for_column, Findent_to, position_indentation) - (compute_motion): Use it. This is just for clarity. - (Fcompute_motion): Don't assume hscroll and tab offset fit in int. - - * image.c (xbm_image_p): Don't assume stated width, height fit in int. - - * lisp.h (lint_assume): New macro. - * composite.c (composition_gstring_put_cache): - * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0. - - * editfns.c, insdel.c: - Omit unnecessary forward decls, to simplify future changes. - - * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths. - - * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'. - - * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'. - Use much-faster test for byte-length change. - Don't assume string byte-length fits in 'int'. - Check that character arg fits in 'int'. - (mapcar1): Declare byte as byte, for clarity. - - * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication. - - * fns.c (concat): Catch string overflow earlier. - Do not rely on integer wraparound. - - * dispextern.h (struct it.overlay_strings_charpos) - (struct it.selective): Now EMACS_INT, not int. - * xdisp.c (forward_to_next_line_start) - (back_to_previous_visible_line_start) - (reseat_at_next_visible_line_start, next_element_from_buffer): - Don't arbitrarily truncate the value of 'selective' to int. - - * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0. - - * composite.c: Don't truncate sizes to 'int'. - (composition_gstring_p, composition_reseat_it) - (composition_adjust_point): Use EMACS_INT, not int. - (get_composition_id, composition_gstring_put_cache): Use EMACS_INT, - not EMACS_UINT, for indexes. - - * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT. + * fileio.c (check_existing, check_executable, check_writable): + * process.c (network_interface_list, network_interface_info): + Move earlier, so that we don't need forward decls. + * gnutls.c (fn_gnutls_transport_set_errno) + (emacs_gnutls_transport_set_errno) [!WINDOWNT]: + Remove; unused. + * w32.c (init_environment): Use faccessat rather than + check_existing, partly for consistency with the rest of the code + in this file, partly so that check_existing can be static. - * buffer.c: Include . - (struct sortvec.priority, struct sortstr.priority): - Now EMACS_INT, not int. - (compare_overlays, cmp_for_strings): Avoid subtraction overflow. - (struct sortstr.size, record_overlay_string) - (struct sortstrlist.size, struct sortlist.used): - Don't truncate size to int. - (record_overlay_string): Check for size-calculation overflow. - (init_buffer_once): Check at compile-time, not run-time. + Make VALMASK visible to GDB even if clang is used (Bug#15574). + * emacs.c (MAIN_PROGRAM): New macro. + * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros. + (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them. -2011-06-22 Jim Meyering + bool vector int width fixes + * data.c (bool_vector_spare_mask, Fbool_vector_count_matches) + (Fbool_vector_count_matches_at): + Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count + can exceed PTRDIFF_MAX, at least in theory. + (Fbool_vector_count_matches_at): + Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX. - Don't leak an XBM-image-sized buffer - * image.c (xbm_load): Free the image buffer after using it. +2013-10-16 Paul Eggert -2011-06-21 Paul Eggert + * process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func. + (struct sockaddr): Add forward decl, for platforms that lack it. - Port to Sun C. - * composite.c (find_automatic_composition): Omit needless 'return 0;' - that Sun C diagnosed. - * fns.c (secure_hash): Fix pointer signedness issue. - * intervals.c (static_offset_intervals): New function. - (offset_intervals): Use it. +2013-10-16 Jan Djärv -2011-06-21 Leo Liu + * nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return + Qnil (Bug#15628). - * deps.mk (fns.o): - * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and - sha512.h. +2013-10-16 Eli Zaretskii - * fns.c (secure_hash): Rename from crypto_hash_function and change - the first arg to accept symbols. - (Fsecure_hash): New primitive. - (syms_of_fns): New symbols. + * w32.c (network_interface_get_info, network_interface_list) + (network_interface_info): New functions. (Bug#15610) + (GetAdaptersInfo_Proc): New typedef. + (get_adapters_info): New wrapper function. + (globals_of_w32): Initialize g_b_init_get_adapters_info. -2011-06-20 Deniz Dogan + * process.h (network_interface_list, network_interface_info): + New prototypes. - * process.c (Fset_process_buffer): Clarify return value in - docstring. + * process.c (conv_sockaddr_to_lisp): Now externally-visible. + (Fnetwork_interface_list, Fnetwork_interface_info): Define for + all systems. Return non-nil for systems that HAVE_NET_IF_H and + for WINDOWSNT. Doc fix. + (syms_of_process): Defsubr Snetwork_interface_list and + Snetwork_interface_info unconditionally. -2011-06-18 Chong Yidong + * menu.c (have_boxes): Fix redundant simulation of radio buttons + in NS GUI sessions. (Bug#15629) - * dispnew.c (add_window_display_history): Use BVAR. +2013-10-16 Dmitry Antipov - * xdisp.c (debug_method_add): Use BVAR. - (check_window_end, dump_glyph_matrix, dump_glyph) - (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C. + * fns.c (Fstring_as_unibyte): Use xlispstrdup. - * xfaces.c (check_lface_attrs, check_lface, dump_realized_face): - Likewise. +2013-10-15 Paul Eggert - * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache - check till after the cache is created in init_frame_faces. - -2011-06-17 Stefan Monnier - - * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup. - -2011-06-16 Paul Eggert - - * lisp.h: Include , for INT_MAX, LONG_MAX, LLONG_MAX. - Without this, prin1 mishandles Lisp_Misc_Save_Value printing on - hosts with pre-C99 libraries, because pD is wrongly defined to "t". - - Improve buffer-overflow checking (Bug#8873). - * fileio.c (Finsert_file_contents): - * insdel.c (insert_from_buffer_1, replace_range, replace_range_2): - Remove the old (too-loose) buffer overflow checks. - They weren't needed, since make_gap checks for buffer overflow. - * insdel.c (make_gap_larger): Catch buffer overflows that were missed. - The old code merely checked for Emacs fixnum overflow, and relied - on undefined (wraparound) behavior. The new code avoids undefined - behavior, and also checks for ptrdiff_t and/or size_t overflow. - - * editfns.c (Finsert_char): Don't dump core with very negative counts. - Tune. Don't use wider integers than needed. Don't use alloca. - Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test. - - * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing. - - * insdel.c, lisp.h (buffer_overflow): New function. - (insert_from_buffer_1, replace_range, replace_range_2): - * insdel.c (make_gap_larger): - * editfns.c (Finsert_char): - * fileio.c (Finsert_file_contents): Use it, to normalize wording. - - * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed. - -2011-06-15 Paul Eggert - - Integer overflow and signedness fixes (Bug#8873, Bug#8828). + * print.c (print_object): Print " ..." when truncating bool vectors. - * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772. - (GET_CCL_RANGE, IN_INT_RANGE): Use it. +2013-10-15 Eli Zaretskii - * fileio.c: Don't assume EMACS_INT fits in off_t. - (emacs_lseek): New static function. - (Finsert_file_contents, Fwrite_region): Use it. - Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate. + * w32inevt.c (do_mouse_event): Support mouse wheel and all the 5 + standard mouse buttons. - * fns.c (Fload_average): Don't assume 100 * load average fits in int. - - * fns.c: Don't overflow int when computing a list length. - * fns.c (QUIT_COUNT_HEURISTIC): New constant. - (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted - truncation on 64-bit hosts. Check for QUIT every - QUIT_COUNT_HEURISTIC entries rather than every other entry; that's - faster and is responsive enough. - (Flength): Report an error instead of overflowing an integer. - (Fsafe_length): Return a float if the value is not representable - as a fixnum. This shouldn't happen except in contrived situations. - (Fnthcdr, Fsort): Don't assume list length fits in int. - (Fcopy_sequence): Don't assume vector length fits in int. + * termhooks.h (struct input_event): Remove incorrect commentary. - * alloc.c: Check that resized vectors' lengths fit in fixnums. - (header_size, word_size): New constants. - (allocate_vectorlike): Don't check size overflow here. - (allocate_vector): Check it here instead, since this is the only - caller of allocate_vectorlike that could cause overflow. - Check that the new vector's length is representable as a fixnum. +2013-10-15 Paul Eggert - * fns.c (next_almost_prime): Don't return a multiple of 3 or 5. - The previous code was bogus. For example, next_almost_prime (32) - returned 39, which is undesirable as it is a multiple of 3; and - next_almost_prime (24) returned 25, which is a multiple of 5 so - why was the code bothering to check for multiples of 7? - - * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length. - - * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now. - - Variadic C functions now count arguments with ptrdiff_t. - This partly undoes my 2011-03-30 change, which replaced int with size_t. - Back then I didn't know that the Emacs coding style prefers signed int. - Also, in the meantime I found a few more instances where arguments - were being counted with int, which may truncate counts on 64-bit - machines, or EMACS_INT, which may be unnecessarily wide. - * lisp.h (struct Lisp_Subr.function.aMANY) - (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): - Arg counts are now ptrdiff_t, not size_t. - All variadic functions and their callers changed accordingly. - (struct gcpro.nvars): Now size_t, not size_t. All uses changed. - * bytecode.c (exec_byte_code): Check maxdepth for overflow, - to avoid potential buffer overrun. Don't assume arg counts fit in 'int'. - * callint.c (Fcall_interactively): Check arg count for overflow, - to avoid potential buffer overrun. Use signed char, not 'int', - for 'varies' array, so that we needn't bother to check its size - calculation for overflow. - * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args. - * eval.c (apply_lambda): - * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length. - (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed. - (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args. - - * callint.c (Fcall_interactively): Don't use index var as event count. - - * vm-limit.c (check_memory_limits): Fix incorrect extern function decls. - * mem-limits.h (SIZE): Remove; no longer used. - - * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works. - - Remove unnecessary casts. - * xterm.c (x_term_init): - * xfns.c (x_set_border_pixel): - * widget.c (create_frame_gcs): Remove casts to unsigned long etc. - These aren't needed now that we assume ANSI C. - - * sound.c (Fplay_sound_internal): Remove cast to unsigned long. - It's more likely to cause problems (due to unsigned overflow) - than to cure them. - - * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts. - - * unexelf.c (unexec): Don't assume BSS addr fits in unsigned. - - * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned. - - * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX. - - * lisp.h (CHAR_TABLE_SET): Omit now-redundant test. - - * lread.c (Fload): Don't compare a possibly-garbage time_t value. - - GLYPH_CODE_FACE returns EMACS_INT, not int. - * dispextern.h (merge_faces): - * xfaces.c (merge_faces): - * xdisp.c (get_next_display_element, next_element_from_display_vector): - Don't assume EMACS_INT fits in int. - - * character.h (CHAR_VALID_P): Remove unused parameter. - * fontset.c, lisp.h, xdisp.c: All uses changed. - - * editfns.c (Ftranslate_region_internal): Omit redundant test. - - * fns.c (concat): Minor tuning based on overflow analysis. - This doesn't fix any bugs. Use int to hold character, instead - of constantly refetching from Emacs object. Use XFASTINT, not - XINT, for value known to be a character. Don't bother comparing - a single byte to 0400, as it's always less. - - * floatfns.c (Fexpt): - * fileio.c (make_temp_name): Omit unnecessary cast to unsigned. - - * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT - for characters. - - * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives. - - * data.c (Faset): If ARRAY is a string, check that NEWELT is a char. - Without this fix, on a 64-bit host (aset S 0 4294967386) would - incorrectly succeed when S was a string, because 4294967386 was - truncated before it was used. - - * chartab.c (Fchar_table_range): Use CHARACTERP to check range. - Otherwise, an out-of-range integer could cause undefined behavior - on a 64-bit host. - - * composite.c: Use int, not EMACS_INT, for characters. - (fill_gstring_body, composition_compute_stop_pos): Use int, not - EMACS_INT, for values that are known to be in character range. - This doesn't fix any bugs but is the usual style inside Emacs and - may generate better code on 32-bit machines. - - Make sure a 64-bit char is never passed to ENCODE_CHAR. - This is for reasons similar to the recent CHAR_STRING fix. - * charset.c (Fencode_char): Check that character arg is actually - a character. Pass an int to ENCODE_CHAR. - * charset.h (ENCODE_CHAR): Verify that the character argument is no - wider than 'int', as a compile-time check to prevent future regressions - in this area. - - * character.c (char_string): Remove unnecessary casts. - - Make sure a 64-bit char is never passed to CHAR_STRING. - Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform, - by silently ignoring the top 32 bits, allowing some values - that were far too large to be valid characters. - * character.h: Include . - (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character - arguments are no wider than unsigned, as a compile-time check - to prevent future regressions in this area. - * data.c (Faset): - * editfns.c (Fchar_to_string, general_insert_function, Finsert_char) - (Fsubst_char_in_region): - * fns.c (concat): - * xdisp.c (decode_mode_spec_coding): - Adjust to CHAR_STRING's new requirement. - * editfns.c (Finsert_char, Fsubst_char_in_region): - * fns.c (concat): Check that character args are actually - characters. Without this test, these functions did the wrong - thing with wildly out-of-range values on 64-bit hosts. - - Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts. - These casts should not be needed on 32-bit hosts, either. - * keyboard.c (read_char): - * lread.c (Fload): Remove casts to unsigned. - - * lisp.h (UNSIGNED_CMP): New macro. - This fixes comparison bugs on 64-bit hosts. - (ASCII_CHAR_P): Use it. - * casefiddle.c (casify_object): - * character.h (ASCII_BYTE_P, CHAR_VALID_P) - (SINGLE_BYTE_CHAR_P, CHAR_STRING): - * composite.h (COMPOSITION_ENCODE_RULE_VALID): - * dispextern.h (FACE_FROM_ID): - * keyboard.c (read_char): Use UNSIGNED_CMP. - - * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t, - not to EMACS_INT, to avoid GCC warning. - - * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals. - - * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast. - The cast incorrectly truncated 64-bit byte offsets to 32 bits, and - isn't needed on 32-bit machines. - - * buffer.c (Fgenerate_new_buffer_name): - Use EMACS_INT for count, not int. - (advance_to_char_boundary): Return EMACS_INT, not int. - - * data.c (Qcompiled_function): Now static. - - * window.c (window_body_lines): Now static. - - * image.c (gif_load): Rename local to avoid shadowing. - - * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow. - (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member. - * alloc.c (make_save_value): Integer argument is now of type - ptrdiff_t, not int. - (mark_object): Use ptrdiff_t, not int. - * lisp.h (pD): New macro. - * print.c (print_object): Use it. - - * alloc.c: Use EMACS_INT, not int, to count objects. - (total_conses, total_markers, total_symbols, total_vector_size) - (total_free_conses, total_free_markers, total_free_symbols) - (total_free_floats, total_floats, total_free_intervals) - (total_intervals, total_strings, total_free_strings): - Now EMACS_INT, not int. All uses changed. - (Fgarbage_collect): Compute overall total using a double, so that - integer overflow is less likely to be a problem. Check for overflow - when converting back to an integer. - (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks) - (n_vectors, n_symbol_blocks, n_marker_blocks): Remove. - These were 'int' variables that could overflow on 64-bit hosts; - they were never used, so remove them instead of repairing them. - (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'. - (inhibit_garbage_collection): Set gc_cons_threshold to max value. - Previously, this ceilinged at INT_MAX, but that doesn't work on - 64-bit machines. - (allocate_pseudovector): Don't use EMACS_INT when int would do. - - * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int. - (allocate_vectorlike): Check for ptrdiff_t overflow. - (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT - when a (possibly-narrower) signed value would do just as well. - We prefer using signed arithmetic, to avoid comparison confusion. - - * alloc.c: Catch some string size overflows that we were missing. - (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0, - for convenience in STRING_BYTES_MAX. - (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h. - The definition here is exact; the one in lisp.h was approximate. - (allocate_string_data): Check for string overflow. This catches - some instances we weren't catching before. Also, it catches - size_t overflow on (unusual) hosts where SIZE_MAX <= min - (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits - and ptrdiff_t and EMACS_INT are both 64 bits. - - * character.c, coding.c, doprnt.c, editfns.c, eval.c: - All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND. - * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX. - - * character.c (string_escape_byte8): Fix nbytes/nchars typo. - - * alloc.c (Fmake_string): Check for out-of-range init. - -2011-06-15 Stefan Monnier - - * eval.c (Fdefvaralias): Also mark the target as variable-special-p. - -2011-06-14 Jan Djärv - - * xfns.c (x_set_scroll_bar_default_width): Remove argument to - xg_get_default_scrollbar_width. - - * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3. - (int_gtk_range_get_value): Move to the scroll bar part of the file. - (style_changed_cb): Call update_theme_scrollbar_width and call - x_set_scroll_bar_default_width and xg_frame_set_char_size for - all frames (Bug#8505). - (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505). - Call gtk_window_set_resizable if HAVE_GTK3. - (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width - and height if HAVE_GTK3 (Bug#8505). - (scroll_bar_width_for_theme): New variable. - (update_theme_scrollbar_width): New function. - (xg_get_default_scrollbar_width): Move code to - update_theme_scrollbar_width, just return scroll_bar_width_for_theme. - (xg_initialize): Call update_theme_scrollbar_width. - - * gtkutil.h (xg_get_default_scrollbar_width): Remove argument. - - * emacsgtkfixed.c, emacsgtkfixed.h: New files. - -2011-06-12 Martin Rudalics - - * frame.c (make_frame): Call other_buffer_safely instead of - other_buffer. - - * window.c (temp_output_buffer_show): Call display_buffer with - second argument Vtemp_buffer_show_specifiers and reset latter - immediately after the call. - (Vtemp_buffer_show_specifiers): New variable. - (auto_window_vscroll_p, next_screen_context_lines) - (Vscroll_preserve_screen_position): Remove leading asterisks from - doc-strings. - -2011-06-12 Paul Eggert - - Fix minor problems found by GCC 4.6.0 static checking. - * buffer.c (Qclone_number): Remove for now, as it's unused. - (record_buffer, Funrecord_buffer): Rename local to avoid shadowing. - (record_buffer): Remove unused local. - * frame.c (other_visible_frames, frame_buffer_list): Now static. - (set_frame_buffer_list): Remove; unused. - * frame.h (other_visible_frames): Remove decl. - * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF. - * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls. - (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only - if HAVE_GPM. - * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF. - * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): - Define only if HAVE_GPM. - * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static. - (update_hints_inhibit): Remove; never set. All uses removed. - * widgetprv.h (emacsFrameClassRec): Remove decl. - * window.c (delete_deletable_window): Now returns void, since it - wasn't returning anything. - (compare_window_configurations): Remove unused locals. - * xfns.c (x_set_scroll_bar_default_width): Remove unused locals. - * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF. - (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers - the same widths as pointers. This follows up on the 2011-05-06 patch. - * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID. - * xterm.h: Likewise. - (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF. - -2011-06-12 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - (LISP_H): Add lib/intprops.h. - -2011-06-11 Chong Yidong - - * image.c (gif_load): Add animation frame delay to the metadata. - (syms_of_image): Use DEFSYM. New symbol `delay'. - -2011-06-11 Martin Rudalics - - * window.c (delete_deletable_window): Re-add. - (Fset_window_configuration): Rewrite to handle dead buffers and - consequently deletable windows. - (window_tree, Fwindow_tree): Remove. Supply functionality in - window.el. - (compare_window_configurations): Simplify code. - -2011-06-11 Andreas Schwab - - * image.c (imagemagick_load_image): Fix type mismatch. - (Fimagemagick_types): Likewise. - - * window.h (replace_buffer_in_windows): Declare. - -2011-06-11 Martin Rudalics - - * buffer.c: New Lisp objects Qbuffer_list_update_hook and - Qclone_number. Remove external declaration of Qdelete_window. - (Fbuffer_list): Rewrite doc-string. Minor restructuring of - code. - (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer): - Run Qbuffer_list_update_hook if allowed. - (Fother_buffer): Rewrite doc-string. Major rewrite for new - buffer list implementation. - (other_buffer_safely): New function. - (Fkill_buffer): Replace call to replace_buffer_in_all_windows by - calls to replace_buffer_in_windows and - replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook - if allowed. - (record_buffer): Inhibit quitting and rewrite using quittable - functions. Run Qbuffer_list_update_hook if allowed. - (Frecord_buffer, Funrecord_buffer): New functions. - (switch_to_buffer_1, Fswitch_to_buffer): Remove. - Move switch-to-buffer to window.el. - (bury-buffer): Move to window.el. - (Vbuffer_list_update_hook): New variable. - - * lisp.h (other_buffer_safely): Add prototype in buffer.c - section. - - * window.h (resize_frame_windows): Move up in code. - (Fwindow_frame): Remove EXFUN. - (replace_buffer_in_all_windows): Remove prototype. - (replace_buffer_in_windows_safely): Add prototype. - - * window.c: Declare Qdelete_window static again. Move down - declaration of select_count. - (Fnext_window, Fprevious_window): Rewrite doc-strings. - (Fother_window): Move to window.el. - (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER - cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case. - (Fdelete_windows_on, Freplace_buffer_in_windows): Move to - window.el. - (replace_buffer_in_windows): Implement by calling - Qreplace_buffer_in_windows. - (replace_buffer_in_all_windows): Remove with some functionality - moved into replace_buffer_in_windows_safely. - (replace_buffer_in_windows_safely): New function. - (select_window_norecord, select_frame_norecord): Move in front - of run_window_configuration_change_hook. Remove now obsolete - declarations. - (Fset_window_buffer): Rewrite doc-string. - Call Qrecord_window_buffer. - (keys_of_window): Move binding for other-window to window.el. + Disallow bool vector operations on mixed-length operands. + The old behavior left garbage in the result vector sometimes, + and didn't seem to be useful. + * data.c (Qwrong_length_argument): New static var. + (wrong_length_argument): New function. + (bool_vector_binop_driver): Check that args agree in length. -2011-06-11 Chong Yidong + * keyboard.c, keyboard.h (all_kboards): Now static. - * dispextern.h (struct image): Replace data member, whose int_val - and ptr_val fields were not used by anything, with a single - lisp_val object. +2013-10-15 Xue Fuqiao - * image.c (Fimage_metadata, make_image, mark_image, tiff_load) - (gif_clear_image, gif_load, imagemagick_load_image) - (gs_clear_image, gs_load): Callers changed. + * buffer.c (syms_of_buffer) : Add usage + note from the lispref. -2011-06-10 Paul Eggert +2013-10-15 Dmitry Antipov - * buffer.h: Include , for time_t. - Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra. + * nsterm.h (struct ns_display_info): Remove set-but-unused + member image_cache (image caches are per-terminal anyway). + (FRAME_X_IMAGE_CACHE): Remove. + * nsterm.m (ns_initialize_display_info): Adjust user. - Fix minor problems found by static checking. +2013-10-14 Eli Zaretskii - * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't. + * w32proc.c: Include mingw_time.h. - Make identifiers static if they are not used in other modules. - * data.c (Qcompiled_function, Qframe, Qvector): - * image.c (QimageMagick, Qsvg): - * minibuf.c (Qmetadata): - * window.c (resize_window_check, resize_root_window): Now static. - * window.h (resize_window_check, resize_root_window): Remove decls. + * w32.c: Include mingw_time.h. - * window.c (window_deletion_count, delete_deletable_window): - Remove; unused. - (window_body_lines): Now static. - (Fdelete_other_windows_internal): Mark vars as initialized. - Make sure 'resize_failed' is initialized. - (run_window_configuration_change_hook): Rename local to avoid shadowing. - (resize_window_apply): Remove unused local. - * window.h (delete_deletable_window): Remove decl. - - * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing. - (imagemagick_load_image): Fix pointer signedness problem by changing - last arg from unsigned char * to char *. All uses changed. - Also, fix a local for similar reasons. - Remove unused locals. Remove locals to avoid shadowing. - (fn_rsvg_handle_free): Remove; unused. - (svg_load, svg_load_image): Fix pointer signedness problem. - (imagemagick_load_image): Don't use garbage pointer image_wand. - - * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals. - -2011-06-10 Chong Yidong - - * image.c (gif_load): Fix omitted cast error introduced by - 2011-06-06 change. - -2011-06-10 Martin Rudalics - - * window.h (resize_proportionally, orig_total_lines) - (orig_top_line): Remove from window structure. - (set_window_height, set_window_width, change_window_heights) - (Fdelete_window): Remove prototypes. - (resize_frame_windows): Remove duplicate declaration. - -2011-06-10 Eli Zaretskii - - * window.h (resize_frame_windows, resize_window_check) - (delete_deletable_window, resize_root_window) - (resize_frame_windows): Declare prototypes. - - * window.c (resize_window_apply): Make definition be "static" to - match the prototype. - -2011-06-10 Martin Rudalics - - * window.c: Remove declarations of Qwindow_size_fixed, - window_min_size_1, window_min_size_2, window_min_size, - size_window, window_fixed_size_p, enlarge_window, delete_window. - Remove static from declaration of Qdelete_window, it's - temporarily needed by Fbury_buffer. - (replace_window): Don't assign orig_top_line and - orig_total_lines. - (Fdelete_window, delete_window): Remove. Window deletion is - handled by window.el. - (window_loop): Remove DELETE_OTHER_WINDOWS case. - Replace Fdelete_window calls with calls to Qdelete_window. - (Fdelete_other_windows): Remove. Deleting other windows is - handled by window.el. - (window_fixed_size_p): Remove. Fixed-sizeness of windows is - handled in window.el. - (window_min_size_2, window_min_size_1, window_min_size): Remove. - Window minimum sizes are handled in window.el. - (shrink_windows, size_window, set_window_height) - (set_window_width, change_window_heights, window_height) - (window_width, CURBEG, CURSIZE, enlarge_window) - (adjust_window_trailing_edge, Fadjust_window_trailing_edge) - (Fenlarge_window, Fshrink_window): Remove. Window resizing is - handled in window.el. - (make_dummy_parent): Rename to make_parent_window and give it a - second argument horflag. - (make_window): Don't set resize_proportionally any more. - (Fsplit_window): Remove. Windows are split in window.el. - (save_restore_action, save_restore_orig_size) - (shrink_window_lowest_first, save_restore_orig_size): Remove. - Resize mini windows in window.el. - (grow_mini_window, shrink_mini_window): Implement by calling - Qresize_root_window_vertically, resize_window_check and - resize_window_apply. - (saved_window, Fset_window_configuration, save_window_save): - Do not handle orig_top_line, orig_total_lines, and - resize_proportionally. - (window_min_height, window_min_width): Move to window.el. - (keys_of_window): Move bindings for delete-other-windows, - split-window, delete-window and enlarge-window to window.el. - - * buffer.c: Temporarily extern Qdelete_window. - (Fbury_buffer): Temporarily call Qdelete_window instead of - Fdelete_window (Fbury_buffer will move to window.el soon). - - * frame.c (set_menu_bar_lines_1): Remove code handling - orig_top_line and orig_total_lines. - - * dispnew.c (adjust_frame_glyphs_initially): Don't use - set_window_height but set heights directly. - (change_frame_size_1): Use resize_frame_windows. - - * xdisp.c (init_xdisp): Don't use set_window_height but set - heights directly. - - * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): - Use resize_frame_windows instead of change_window_heights and run - run_window_configuration_change_hook. - - * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows - instead of change_window_heights and run - run_window_configuration_change_hook. - -2011-06-09 Martin Rudalics - - * window.c (replace_window): Rename second argument REPLACEMENT to - NEW. New third argument SETFLAG. Rewrite. - (delete_window, make_dummy_parent): Call replace_window with - third argument 1. - (window_list_1): Move down in code. - (run_window_configuration_change_hook): Move set_buffer part - before select_frame_norecord part in order to unwind correctly. - Rename count1 to count. - (recombine_windows, delete_deletable_window, resize_root_window) - (Fdelete_other_windows_internal) - (Frun_window_configuration_change_hook, make_parent_window) - (resize_window_check, resize_window_apply, Fresize_window_apply) - (resize_frame_windows, Fsplit_window_internal) - (Fdelete_window_internal, Fresize_mini_window_internal): - New functions. - (syms_of_window): New variables Vwindow_splits and Vwindow_nest. + Implement scrolling of TTY menus when the screen is too short. -2011-06-08 Martin Rudalics + * term.c (tty_menu_display): Accept an additional argument, the + menu item from which to start displaying the menu. Account for + the value of Y when limiting the menu to the number of available + screen lines. + (mi_result): New enumeration. + (read_menu_input): Return enumerated value. When the y coordinate + hits min_y or max_y, return scroll indication instead of wrapping + around the menu. + (tty_menu_activate): Handle the scrolling indications from + read_menu_input. Compute the first menu item to display and pass + it to tty_menu_display. - * window.h (window): Add some new members to window structure - - normal_lines, normal_cols, new_total, new_normal, clone_number, - splits, nest, prev_buffers, next_buffers. - (WINDOW_TOTAL_SIZE): Move here from window.c. - (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here. +2013-10-14 Dmitry Antipov - * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p): - Remove. - (make_dummy_parent): Set new members of windows structure. - (make_window): Move down in code. Handle new members of window - structure. - (Fwindow_clone_number, Fwindow_splits, Fset_window_splits) - (Fwindow_nest, Fset_window_nest, Fwindow_new_total) - (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers) - (Fset_window_prev_buffers, Fwindow_next_buffers) - (Fset_window_next_buffers, Fset_window_clone_number): - New functions. - (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start) - (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p): - Doc-string fixes. - (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter): - Argument WINDOW can be now internal window too. - (Fwindow_use_time): Move up in code. - (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES. - Rewrite doc-string. - (Fset_window_configuration, saved_window) - (Fcurrent_window_configuration, save_window_save): Handle new - members of window structure. - (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH) - (MIN_SAFE_WINDOW_HEIGHT): Move to window.h. - (syms_of_window): New Lisp objects Qrecord_window_buffer, - Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows, - Qget_mru_window, Qresize_root_window, - Qresize_root_window_vertically, Qsafe, Qabove, Qbelow, - Qauto_buffer_name; staticpro them. - -2011-06-07 Martin Rudalics - - * window.c (Fwindow_total_size, Fwindow_left_column) - (Fwindow_top_line, window_body_lines, Fwindow_body_size) - (Fwindow_list_1): New functions. - (window_box_text_cols): Replace with window_body_cols. - (Fwindow_width, Fscroll_left, Fscroll_right): - Use window_body_cols instead of window_box_text_cols. - (delete_window, Fset_window_configuration): - Call delete_all_subwindows with window as argument. - (delete_all_subwindows): Take a window as argument and not a - structure. Rewrite. - (window_loop): Remove handling of GET_LRU_WINDOW and - GET_LARGEST_WINDOW. - (Fget_lru_window, Fget_largest_window): Move to window.el. - - * window.h: Extern window_body_cols instead of - window_box_text_cols. delete_all_subwindows now takes a - Lisp_Object as argument. + * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK) + (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK) + (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME): + Adjust to match the change described below. + (struct terminal): Move must_write_spaces, line_ins_del_ok, + char_ins_del_ok, scroll_region_ok, scroll_region_cost and + memory_below_frame members to... + * termchar.h (struct tty_display_info): ...here because they're + relevant only on TTYs. Prefer unsigned bitfield where appropriate. + * term.c (init_tty): + * nsterm.m (ns_create_terminal): + * w32term.c (w32_create_terminal): + * xterm.c (x_create_terminal): Adjust users. + * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg + to filter out non-TTY frames. Adjust comment. + (scrolling): Adjust user. Prefer eassert for debugging check. - * indent.c (compute_motion, Fcompute_motion): - Use window_body_cols instead of window_box_text_cols. - - * frame.c (delete_frame): Call delete_all_subwindows with root - window as argument. - -2011-06-07 Daniel Colascione - - * fns.c (Fputhash): Document return value. - -2011-06-06 Chong Yidong - - * image.c (gif_load): Implement gif89a spec "no disposal" method. - -2011-06-06 Paul Eggert - - Cons<->int and similar integer overflow fixes (Bug#8794). - - Check for overflow when converting integer to cons and back. - * charset.c (Fdefine_charset_internal, Fdecode_char): - Use cons_to_unsigned to catch overflow. - (Fencode_char): Use INTEGER_TO_CONS. - * composite.h (LGLYPH_CODE): Use cons_to_unsigned. - (LGLYPH_SET_CODE): Use INTEGER_TO_CONS. - * data.c (long_to_cons, cons_to_long): Remove. - (cons_to_unsigned, cons_to_signed): New functions. - These signal an error for invalid or out-of-range values. - * dired.c (Ffile_attributes): Use INTEGER_TO_CONS. - * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER. - * font.c (Ffont_variation_glyphs): - * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS. - * lisp.h: Include . - (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros. - (cons_to_signed, cons_to_unsigned): New decls. - (long_to_cons, cons_to_long): Remove decls. - * undo.c (record_first_change): Use INTEGER_TO_CONS. - (Fprimitive_undo): Use CONS_TO_INTEGER. - * xfns.c (Fx_window_property): Likewise. - * xselect.c: Include . - (x_own_selection, selection_data_to_lisp_data): - Use INTEGER_TO_CONS. - (x_handle_selection_request, x_handle_selection_clear) - (x_get_foreign_selection, Fx_disown_selection_internal) - (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER. - (lisp_data_to_selection_data): Use cons_to_unsigned. - (x_fill_property_data): Use cons_to_signed. - Report values out of range. - - Check for buffer and string overflow more precisely. - * buffer.h (BUF_BYTES_MAX): New macro. - * lisp.h (STRING_BYTES_MAX): New macro. - * alloc.c (Fmake_string): - * character.c (string_escape_byte8): - * coding.c (coding_alloc_by_realloc): - * doprnt.c (doprnt): - * editfns.c (Fformat): - * eval.c (verror): - Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM, - since they may not be the same number. - * editfns.c (Finsert_char): - * fileio.c (Finsert_file_contents): - Likewise for BUF_BYTES_MAX. - - * image.c: Use ptrdiff_t, not int, for sizes. - (slurp_file): Switch from int to ptrdiff_t. - All uses changed. - (slurp_file): Check that file size fits in both size_t (for - malloc) and ptrdiff_t (for sanity and safety). - - * fileio.c (Fverify_visited_file_modtime): Avoid time overflow - if b->modtime has its maximal value. - - * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits. - - Don't assume time_t can fit into int. - * buffer.h (struct buffer.modtime): Now time_t, not int. - * fileio.c (Fvisited_file_modtime): No need for time_t cast now. - * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value. - - Minor fixes for signed vs unsigned integers. - * character.h (MAYBE_UNIFY_CHAR): - * charset.c (maybe_unify_char): - * keyboard.c (read_char, reorder_modifiers): - XINT -> XFASTINT, since the integer must be nonnegative. - * ftfont.c (ftfont_spec_pattern): - * keymap.c (access_keymap, silly_event_symbol_error): - XUINT -> XFASTINT, since the integer must be nonnegative. - (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT, - since it makes no difference and we prefer signed. - * keyboard.c (record_char): Use XUINT when all the neighbors do. - (access_keymap): NATNUMP -> INTEGERP, since the integer must be - nonnegative. - -2011-06-06 Stefan Monnier - - * window.h (Fwindow_frame): Declare. - -2011-06-06 Paul Eggert - - * alloc.c: Simplify handling of large-request failures (Bug#8800). - (SPARE_MEMORY): Always define. - (LARGE_REQUEST): Remove. - (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST. - -2011-06-06 Martin Rudalics - - * lisp.h: Move EXFUNS for Fframe_root_window, - Fframe_first_window and Fset_frame_selected_window to window.h. - - * window.h: Move EXFUNS for Fframe_root_window, - Fframe_first_window and Fset_frame_selected_window here from - lisp.h. - - * frame.c (Fwindow_frame, Fframe_first_window) - (Fframe_root_window, Fframe_selected_window) - (Fset_frame_selected_window): Move to window.c. - (Factive_minibuffer_window): Move to minibuf.c. - (Fother_visible_frames_p): New function. - - * minibuf.c (Factive_minibuffer_window): Move here from frame.c. - - * window.c (decode_window, decode_any_window): Move up in code. - (Fwindowp, Fwindow_live_p): Rewrite doc-strings. - (inhibit_frame_unsplittable): Remove unused variable. - (Fwindow_buffer): Move up and rewrite doc-string. - (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next) - (Fwindow_prev): New functions. - (Fwindow_frame): Move here from frame.c. Accept any window as - argument. - (Fframe_root_window, Fframe_first_window) - (Fframe_selected_window): Move here from frame.c. Accept frame - or arbitrary window as argument. Update doc-strings. - (Fminibuffer_window): Move up in code. - (Fwindow_minibuffer_p): Move up in code and simplify. - (Fset_frame_selected_window): Move here from frame.c. - Marginal rewrite. - (Fselected_window, select_window, Fselect_window): Move up in - code. Minor doc-string fixes. - -2011-06-06 Paul Eggert - - * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800). - Do not assume that spare memory exists; that assumption is valid - only if SYSTEM_MALLOC. - (LARGE_REQUEST): New macro, so that the issue of large requests - is separated from the issue of spare memory. - -2011-06-05 Andreas Schwab - - * editfns.c (Fformat): Correctly handle zero flag with hexadecimal - format. (Bug#8806) - - * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning. - - * xfns.c (x_set_scroll_bar_default_width): Move declarations - before statements. - -2011-06-05 Jan Djärv - - * gtkutil.c (xg_get_default_scrollbar_width): New function. - - * gtkutil.h: Declare xg_get_default_scrollbar_width. - - * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get - min width by calling x_set_scroll_bar_default_width (Bug#8505). - -2011-06-05 Juanma Barranquero - - * xdisp.c (single_display_spec_intangible_p): Remove declaration. - -2011-06-04 Chong Yidong - - * xselect.c (x_clipboard_manager_save): Remove redundant arg. - (x_clipboard_manager_save): Add return value. - (x_clipboard_manager_error_1, x_clipboard_manager_error_2): - New error handlers. - (x_clipboard_manager_save_frame, x_clipboard_manager_save_all): - Obey Vx_select_enable_clipboard_manager. Catch errors in - x_clipboard_manager_save (Bug#8779). - (Vx_select_enable_clipboard_manager): New variable. - (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790). - -2011-06-04 Dan Nicolaescu - - * emacs.c (main): Warn when starting a GTK emacs in daemon mode. - -2011-06-04 YAMAMOTO Mitsuharu - - * fringe.c (update_window_fringes): Don't update overlay arrow bitmap - in the current matrix if keep_current_p is non-zero. - -2011-06-04 Eli Zaretskii - - * bidi.c (bidi_level_of_next_char): Fix last change. - -2011-06-03 Eli Zaretskii - - Support bidi reordering of text covered by display properties. - - * bidi.c (bidi_copy_it): Use offsetof instead of emulating it. - (bidi_fetch_char, bidi_fetch_char_advance): New functions. - (bidi_cache_search, bidi_cache_iterator_state) - (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): - Support character positions inside a run of characters covered by a - display string. - (bidi_paragraph_init, bidi_resolve_explicit_1) - (bidi_level_of_next_char): Call bidi_fetch_char and - bidi_fetch_char_advance instead of FETCH_CHAR and - FETCH_CHAR_ADVANCE. - (bidi_init_it): Initialize new members. - (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro - definitions. - (bidi_explicit_dir_char): Lookup character type in bidi_type_table, - instead of using explicit *_CHAR codes. - (bidi_resolve_explicit, bidi_resolve_weak): - Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of - bidirectional text is supported only in multibyte buffers. - (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use - it to initialize the frame_window_p member of struct bidi_it. - (bidi_cache_iterator_state, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if - bidi_it->nchars is non-positive. - (bidi_level_of_next_char): Don't try to lookup the cache for the - next/previous character if nothing is cached there yet, or if we - were just reseat()'ed to a new position. - - * xdisp.c (set_cursor_from_row): Set start and stop points - according to the row's direction when priming the loop that looks - for the glyph on which to display cursor. - (single_display_spec_intangible_p): Function deleted. - (display_prop_intangible_p): Reimplement to call - handle_display_spec instead of single_display_spec_intangible_p. - Accept 3 additional arguments needed by handle_display_spec. - This fixes incorrect cursor motion across display property with complex - values: lists, `(when COND...)' forms, etc. - (single_display_spec_string_p): Support property values that are - lists with the argument STRING its top-level element. - (display_prop_string_p): Fix the condition for processing a - property that is a list to be consistent with handle_display_spec. - (handle_display_spec): New function, refactored from the - last portion of handle_display_prop. - (compute_display_string_pos): Accept additional argument - FRAME_WINDOW_P. Call handle_display_spec to determine whether the - value of a `display' property is a "replacing spec". - (handle_single_display_spec): Accept 2 additional arguments BUFPOS - and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from - the display property, but just return a value indicating whether - the display property will replace the characters it covers. - (Fcurrent_bidi_paragraph_direction): Initialize the nchars and - frame_window_p members of struct bidi_it. - (compute_display_string_pos, compute_display_string_end): - New functions. - (push_it): Accept second argument POSITION, where pop_it should - jump to continue iteration. - (reseat_1): Initialize bidi_it.disp_pos. - - * keyboard.c (adjust_point_for_property): Adjust the call to - display_prop_intangible_p to its new signature. - - * dispextern.h (struct bidi_it): New member frame_window_p. - (bidi_init_it): Update prototypes. - (display_prop_intangible_p): Update prototype. - (compute_display_string_pos, compute_display_string_end): - Declare prototypes. - (struct bidi_it): New members nchars and disp_pos. ch_len is now - EMACS_INT. - -2011-06-02 Paul Eggert - - Malloc failure behavior now depends on size of allocation. - * alloc.c (buffer_memory_full, memory_full): New arg NBYTES. - * lisp.h: Change signatures accordingly. - * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c: - All callers changed. (Bug#8762) - - * gnutls.c: Use Emacs's memory allocators. - Without this change, the gnutls library would invoke malloc etc. - directly, which causes problems on non-SYNC_INPUT hosts, and which - runs afoul of improving memory_full behavior. (Bug#8761) - (fn_gnutls_global_set_mem_functions): New macro or function pointer. - (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc, - xfree instead of the default malloc, realloc, free. - (Fgnutls_boot): No need to check for memory allocation failure, - since xmalloc does that for us. - - Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771) - * category.c (hash_get_category_set): - * ccl.c (ccl_driver): - * charset.c (Fdefine_charset_internal): - * charset.h (struct charset.hash_index): - * composite.c (get_composition_id, gstring_lookup_cache) - (composition_gstring_put_cache): - * composite.h (struct composition.hash_index): - * dispextern.h (struct image.hash): - * fns.c (next_almost_prime, larger_vector, cmpfn_eql) - (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql) - (hashfn_equal, hashfn_user_defined, make_hash_table) - (maybe_resize_hash_table, hash_lookup, hash_put) - (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE) - (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector) - (Fsxhash, Fgethash, Fputhash, Fmaphash): - * image.c (make_image, search_image_cache, lookup_image) - (xpm_put_color_table_h): - * lisp.h (struct Lisp_Hash_Table): - * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion): - * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT' - for hashes and hash indexes, instead of 'unsigned' and 'int'. - * alloc.c (allocate_vectorlike): - Check for overflow in vector size calculations. - * ccl.c (ccl_driver): - Check for overflow when converting EMACS_INT to int. - * fns.c, image.c: Remove unnecessary static decls that would otherwise - need to be updated by these changes. - * fns.c (make_hash_table, maybe_resize_hash_table): - Check for integer overflow with large hash tables. - (make_hash_table, maybe_resize_hash_table, Fmake_hash_table): - Prefer the faster XFLOAT_DATA to XFLOATINT where either will do. - (SXHASH_REDUCE): New macro. - (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector): - Use it instead of discarding useful hash info with large hash values. - (sxhash_float): New function. - (sxhash): Use it. No more need for "& INTMASK" due to above changes. - * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc. - (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK): - Rewrite to use FIXNUM_BITS, as this simplifies things. - (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put): - Adjust signatures to match updated version of code. - (consing_since_gc): Now EMACS_INT, since a single hash table can - use more than INT_MAX bytes. - -2011-06-01 Dan Nicolaescu - - Make it possible to build with GCC-4.6+ -O2 -flto. - - * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE. - -2011-06-01 Stefan Monnier - - * minibuf.c (get_minibuffer, read_minibuf_unwind): - Call minibuffer-inactive-mode. - -2011-05-31 Juanma Barranquero - - * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)): - Update dependencies. +2013-10-14 Dmitry Antipov -2011-05-31 Dan Nicolaescu + * xfaces.c (PT_PER_INCH): Remove unused macro. + * termhooks.h (struct terminal): Remove set-but-unused + member fast_clear_end_of_line. + (FRAME_FAST_CLEAR_END_OF_LINE): Remove. + * nsterm.m (ns_create_terminal): + * term.c (init_tty): + * w32term.c (w32_create_terminal): + * xterm.c (x_create_terminal): Adjust users. - * data.c (init_data): Remove code for UTS, this system is not - supported anymore. +2013-10-14 Paul Eggert -2011-05-31 Dan Nicolaescu + * lisp.h (bool_vector_size): New function. + All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x). + * data.c (bool_vector_spare_mask, bool_vector_binop_driver) + (Fbool_vector_not, Fbool_vector_count_matches_at): + Remove uses of 'eassume' that should no longer be needed, + because they are subsumed by the 'eassume' in bool_vector_size. - Don't force ./temacs to start in terminal mode. +2013-10-12 Eli Zaretskii - * frame.c (make_initial_frame): Initialize faces in all cases, not - only when CANNOT_DUMP is defined. - * dispnew.c (init_display): Remove CANNOT_DUMP condition. + * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back + after inclusion of gif_lib.h, thus fixing compiler warnings caused + by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu. -2011-05-31 Dan Nicolaescu +2013-10-11 Eli Zaretskii - * dispnew.c (add_window_display_history): Use const for the string - pointer. Remove declaration, not needed. + * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO + have different dimensions. (Bug#15575) -2011-05-31 Paul Eggert + * dispnew.c (fill_up_frame_row_with_spaces): Now has external + visibility. - Use 'inline', not 'INLINE'. - - * alloc.c, fontset.c (INLINE): Remove. - * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c: - * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c: - * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline. - * gmalloc.c (register_heapinfo): Use inline unconditionally. - * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__. + * dispextern.h (fill_up_frame_row_with_spaces): Add prototype. -2011-05-31 Dan Nicolaescu +2013-10-11 Dmitry Antipov - Make it possible to run ./temacs. + * term.c (tty_menu_show): Never return with unbalanced + specpdl. Use eassert for debugging check. Adjust style. - * callproc.c (set_initial_environment): Remove CANNOT_DUMP code, - syms_of_callproc does the same thing. Remove test for - "initialized", do it in the caller. - * emacs.c (main): Avoid calling set_initial_environment when dumping. +2013-10-11 Eli Zaretskii -2011-05-31 Stefan Monnier + * term.c (read_menu_input): Make selection of menu items + cyclical. Suggested by Dmitry Antipov . + (tty_menu_activate): Fix off-by-one error when computing max_y. - * minibuf.c (Finternal_complete_buffer): Return `category' metadata. - (read_minibuf): Use get_minibuffer. - (syms_of_minibuf): Use DEFSYM. - (Qmetadata): New var. - * data.c (Qbuffer): Don't make it static. - (syms_of_data): Use DEFSYM. +2013-10-11 Teodor Zlatanov -2011-05-31 Paul Eggert + * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS + audit logging (only used with GnuTLS 3.x) and enable it. - * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751) - (CCL_CODE_MIN): New macro. +2013-10-11 Dmitry Antipov -2011-05-30 Paul Eggert + * dispnew.c (redraw_frame): Remove useless #ifdef because + FRAME_MSDOS_P is a compile-time zero everywhere except MS-DOS. + Also, move TTY fflush to... + * term.c (tty_update_end): ...this function. + +2013-10-11 Eli Zaretskii - * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests. + * xdisp.c (display_tty_menu_item): Make sure we never write beyond + the end of the frame's glyph matrix. (Bug#15575) + + * term.c (tty_menu_display): Don't move cursor while overwriting + frame's glyphs with menu items. Limit the number of items + displayed to what can be shown on the available screen lines, + excluding the echo area. + (tty_menu_activate): Limit the Y coordinate allowed by + read_menu_input to the last screen line used for menu display. + +2013-10-11 Paul Eggert + + * lisp.h (eassume): New macro. + Also, include , for 'assume'. + * alloc.c (bool_vector_payload_bytes, Fmake_bool_vector) + (vroundup, vector_nbytes): + * data.c (bool_vector_spare_mask, bool_vector_binop_driver) + (Fbool_vector_not, Fbool_vector_count_matches) + (Fbool_vector_count_matches_at): + Use eassume, not eassert. + * casetab.c (set_identity, shuffle): + * composite.c (composition_gstring_put_cache): + * dispnew.c (update_frame_1): + * ftfont.c (ftfont_shape_by_flt): + * image.c (gif_load): + * intervals.c (offset_intervals): + * macfont.m (macfont_shape): + Remove calls to 'assume' that are no longer needed, because + --enable-gcc-warnings no longer generates bogus warnings + when these calls are removed. + +2013-10-11 Dmitry Antipov + + * xdisp.c (deep_copy_glyph_row): Remove unused locals. + +2013-10-10 Stefan Monnier + + * fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name. + (Qsubstitute_env_in_file_name): New var. + (syms_of_fileio): Define it. + +2013-10-10 Eli Zaretskii + + * xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of + FROM and TO are identical. Copy only the glyphs of TEXT_AREA. + (Bug#15575) + + * term.c (save_and_enable_current_matrix): Don't allocate and + don't save margin areas. + (restore_desired_matrix): Don't restore margin areas. + (free_saved_screen): Don't free margin areas. + +2013-10-10 Paul Eggert + + * image.c: Pacify --enable-gcc-warnings. + (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString): + #define only if used. + +2013-10-10 Eli Zaretskii + + * image.c (GIFLIB_MAJOR): Define to 4 if undefined. + (GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined. + (GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer. + (gif_load): For giflib v5.x and later, display the error message + produced by giflib when its functions fail. + (syms_of_image) [HAVE_NTGUI]: New DEFSYM. + (Bug#15531) + +2013-10-10 Dmitry Antipov + + * keyboard.c (last_event_timestamp): Remove. For X selection and + GTK popup menus, it may be obtained from per-frame X display info. + (kbd_buffer_store_event_hold, kbd_buffer_get_event) + (process_special_events): Adjust users. + * keyboard.h (last_event_timestamp): Remove declaration. + * xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg. + Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup. + * menu.h (xmenu_show): Adjust prototype. + * menu.c (Fx_popup_menu): Adjust user. + * xselect.c (x_own_selection, x_get_foreign_selection) + (Fx_disown_selection_internal): Use dpyinfo->last_user_time. + +2013-10-10 Dmitry Antipov + + * keyboard.c (init_kboard): Now static. Add arg + to denote window system. Adjust comment. + (init_keyboard): Adjust user. + (allocate_kboard): New function. + (syms_of_keyboard): + * nsterm.m (ns_term_init): + * term.c (init_tty): + * w32term.c (w32_create_terminal): + * xterm.c (x_term_init): Use it. + * keyboard.h (init_kboard): Remove prototype. + (allocate_kboard): Add prototype. - * eval.c (Qdebug): Now static. - * lisp.h (Qdebug): Remove decl. This reverts a part of the - 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of - 2011-04-14T06:48:41Z!eggert@cs.ucla.edu. +2013-10-10 Barry Fishman (tiny change) -2011-05-29 Chong Yidong + * image.c (GIFLIB_MAJOR): Ensure it's defined. + (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531) - * image.c: Various fixes to ImageMagick code comments. - (Fimagemagick_types): Doc fix. +2013-10-09 Paul Eggert -2011-05-29 Paul Eggert + * fns.c (sxhash_bool_vector): Fix buffer read overrun. - Minor fixes prompted by GCC 4.6.0 warnings. +2013-10-09 Eli Zaretskii - * xselect.c (converted_selections, conversion_fail_tag): Now static. + * term.c (tty_menu_activate): Flush the output stream after + showing the cursor, and don't mark the frame garbaged at exit from + the function. Fixes redisplay glitches when moving from one menu + to another. - * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h". - (x_clipboard_manager_save_all): Move extern decl to ... - * xterm.h: ... here, so that it can be checked for consistency. +2013-10-09 Jan Djärv -2011-05-29 Chong Yidong + * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8 + or throw error (Bug#15570). - * xselect.c (x_clipboard_manager_save_frame) - (x_clipboard_manager_save_all): New functions. - (Fx_clipboard_manager_save): Lisp function deleted. +2013-10-09 Paul Eggert - * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all. - * frame.c (delete_frame): Call x_clipboard_manager_save_frame. + * intervals.c (temp_set_point_both): Move test into 'eassert', + for speed. - * xterm.h: Update prototype. + * lisp.h (eassert): Don't use 'assume'. + Sometimes 'assume' wins in performance, and sometimes it loses, + so it shouldn't be used all the time. Perhaps we need two + flavors of 'eassert', one for where 'assume' is far more likely + to help or to hurt; but that can be done later. + Problem reported by Dmitry Antipov in + . + Also, don't include ; no longer needed. -2011-05-28 William Xu +2013-10-09 Glenn Morris - * nsterm.m (ns_term_shutdown): Synchronize user defaults before - exiting (Bug#8239). + * eval.c (Fcond): Doc tweak. -2011-05-28 Jim Meyering +2013-10-09 Eli Zaretskii - Avoid a sign-extension bug in crypto_hash_function. - * fns.c (to_uchar): Define. - (crypto_hash_function): Use it to convert some newly-signed - variables to unsigned, to avoid sign-extension bugs. For example, - without this change, (md5 "truc") would evaluate to - 45723a2aff78ff4fff7fff1114760e62 rather than the expected - 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in - https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html. + * xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass + expressions with side effects to eassert. (Bug#15565) -2011-05-27 Paul Eggert +2013-10-09 Stefan Monnier - Integer overflow fixes. + * fns.c (hashfn_user_defined): Allow hash functions to return any + Lisp_Object. - * dbusbind.c: Serial number integer overflow fixes. - (CHECK_DBUS_SERIAL_GET_SERIAL): New macro. - (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float - to hold a serial number that is too large for a fixnum. - (Fdbus_method_return_internal, Fdbus_method_error_internal): - Check for serial numbers out of range. Decode any serial number - that was so large that it became a float. (Bug#8722) - - * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg. - (Fdbus_call_method, Fdbus_call_method_asynchronously): - Use XFASTINT rather than XUINT when numbers are nonnegative. - (xd_append_arg, Fdbus_method_return_internal): - (Fdbus_method_error_internal): Likewise. Also, for unsigned - arguments, check that Lisp number is nonnegative, rather than - silently wrapping negative numbers around. (Bug#8722) - (xd_read_message_1): Don't assume dbus_uint32_t can fit in int. - (Bug#8722) - - * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT. - - * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'. - - ccl: Add integer overflow checks. - * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT): - (IN_INT_RANGE): New macros. - (ccl_driver): Use them to check for integer overflow when - decoding a CCL program. Many of the new checks are whether XINT (x) - fits in int; it doesn't always, on 64-bit hosts. The new version - doesn't catch all possible integer overflows, but it's an - improvement. (Bug#8719) - - * alloc.c (make_event_array): Use XINT, not XUINT. - There's no need for unsigned here. - - * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t - This follows up to the 2011-05-06 change that substituted uintptr_t - for EMACS_INT. This case wasn't caught back then. - - Rework Fformat to avoid integer overflow issues. - * editfns.c: Include unconditionally, as it's everywhere - now (part of C89). Include . - (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed. - (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns. - (Fformat): Avoid the prepass trying to compute sizes; it was only - approximate and thus did not catch overflow reliably. Instead, walk - through the format just once, formatting and computing sizes as we go, - checking for integer overflow at every step, and allocating a larger - buffer as needed. Keep track separately whether the format is - multibyte. Keep only the most-recently calculated precision, rather - than them all. Record whether each argument has been converted to - string. Use EMACS_INT, not int, for byte and char and arg counts. - Support field widths and precisions larger than INT_MAX. Avoid - sprintf's undefined behavior with conversion specifications such as %#d - and %.0c. Fix bug with strchr succeeding on '\0' when looking for - flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when - formatting out-of-range floating point numbers with int - formats. (Bug#8668) - - * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN. - - * data.c: Avoid integer truncation in expressions involving floats. - * data.c: Include . - (arith_driver): When there's an integer overflow in an expression - involving floating point, convert the integers to floating point - so that the resulting value does not suffer from catastrophic - integer truncation. For example, on a 64-bit host (* 4 - most-negative-fixnum 0.5) should yield about -4.6e+18, not zero. - Do not rely on undefined behavior after integer overflow. - - merge count_size_as_multibyte, parse_str_to_multibyte - * character.c, character.h (count_size_as_multibyte): - Rename from parse_str_to_multibyte; all uses changed. - Check for integer overflow. - * insdel.c, lisp.h (count_size_as_multibyte): Remove, - since it's now a duplicate of the other. This is more of - a character than a buffer op, so better that it's in character.c. - * fns.c, print.c: Adjust to above changes. - -2011-05-27 Stefan Monnier - - * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup. - -2011-05-27 Paul Eggert - - * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings. - (x_handle_selection_request, frame_for_x_selection): Remove unused vars. - (x_clipboard_manager_save): Now static. - (Fx_clipboard_manager_save): Rename local to avoid shadowing. - - * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings. - (crypto_hash_function): Now static. - Fix pointer signedness problems. Avoid unnecessary initializations. - -2011-05-27 Chong Yidong - - * termhooks.h (Vselection_alist): Make it terminal-local. - - * terminal.c (create_terminal): Initialize it. - - * xselect.c: Support for clipboard managers. - (Vselection_alist): Move to termhooks.h as terminal-local var. - (LOCAL_SELECTION): New macro. - (x_atom_to_symbol): Handle x_display_info_for_display fail case. - (symbol_to_x_atom): Remove gratuitous arg. - (x_handle_selection_request, lisp_data_to_selection_data) - (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed. - (x_own_selection, x_get_local_selection, x_convert_selection): - New arg, specifying work frame. Use terminal-local Vselection_alist. - (some_frame_on_display): Delete unused function. - (Fx_own_selection_internal, Fx_get_selection_internal) - (Fx_disown_selection_internal, Fx_selection_owner_p) - (Fx_selection_exists_p): New optional frame arg. - (frame_for_x_selection, Fx_clipboard_manager_save): New functions. - (x_handle_selection_clear): Don't treat other terminals with the - same keyboard specially. Use the terminal-local Vselection_alist. - (x_clear_frame_selections): Use Frun_hook_with_args. +2013-10-08 Paul Eggert - * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms. - - * xterm.h: Add support for those atoms. - -2011-05-26 Chong Yidong - - * xselect.c: ICCCM-compliant handling of MULTIPLE targets. - (converted_selections, conversion_fail_tag): New global variables. - (x_selection_request_lisp_error): Free the above. - (x_get_local_selection): Remove unnecessary code. - (x_reply_selection_request): Args changed; handle arbitrary array - of converted selections stored in converted_selections. - Separate the XChangeProperty and SelectionNotify steps. - (x_handle_selection_request): Rewrite to handle MULTIPLE target. - (x_convert_selection): New function. - (x_handle_selection_event): Simplify. - (x_get_foreign_selection): Don't ignore incoming requests while - waiting for an answer; this will fail when we implement - SAVE_TARGETS, and seems unnecessary anyway. - (selection_data_to_lisp_data): Recognize ATOM_PAIR type. - (Vx_sent_selection_functions): Doc fix. + Fix minor problems found by static checking. + * dispnew.c (save_current_matrix): Omit unnecessary casts. + * dispnew.c (update_frame_with_menu): Mark debug local as used. + * keyboard.c, keyboard.h (Qmouse_movement): Now static. + * keyboard.c (read_menu_command): Remove unused local. + * lisp.h (read_menu_command): New decl. + * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for + benefit of STRING_CHAR_AND_LENGTH. All uses changed. + Return ptrdiff_t, not int. + * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t, + not int, for benefit of xpalloc. + (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc + and xpalloc. + (have_menus_p): Remove; unused. + (tty_menu_add_pane, tty_menu_add_selection): Change signedness of + local char * pointer to pacify STRING_CHAR_AND_LENGTH. + (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy): + Now static. + (save_and_enable_current_matrix): Omit unnecessary casts. + (read_menu_input): Omit local extern decl (now in lisp.h). + Don't access uninitialized storage if mouse_get_xy fails. + (tty_menu_activate): Mark local as initialized, for lint. + (tty_menu_activate, tty_meny_show): Remove unused locals. -2011-05-26 Leo Liu +2013-10-08 Eli Zaretskii - * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699) + Support menus on text-mode terminals. + * xterm.h (xw_popup_dialog): Add prototype. -2011-05-25 YAMAMOTO Mitsuharu + * xmenu.c (Fx_popup_dialog): Function moved to menu.c. + (xmenu_show): Block input here, instead in Fx_popup_menu. + (xw_popup_dialog): New function, with X-specific bits of popup + dialogs. - * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p. + * xdisp.c (deep_copy_glyph_row, display_tty_menu_item): + New functions. - * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row - for fringe update if it has periodic bitmap. - (row_equal_p): Also compare left_fringe_offset, right_fringe_offset, - and fringe_bitmap_periodic_p. + * window.c (Fset_window_configuration): Use run-time tests of the + frame type instead of compile-time conditionals, when menu-bar + lines are considered. + + * w32term.h (w32con_hide_cursor, w32con_show_cursor) + (w32_popup_dialog): New prototypes. + + * w32menu.c (Fx_popup_dialog): Function deleted. + (w32_popup_dialog): New function, with w32 specific bits of popup + dialogs. Block input here. + + * w32inevt.c (w32_console_read_socket): Minor change to add + debugging TTY events. + + * w32fns.c (show_hourglass): If returning early because the frame + is not a GUI frame, unblock input. + + * w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX) + (cursorY): New functions. + + * termhooks.h (cursorX, cursorY): Prototypes of functions on + WINDOWSNT, macros that call curX and curY elsewhere. + + * termchar.h (struct tty_display_info) : New flag. + + * term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32 + specific function to hide and show cursor on a text-mode terminal. + (tty_menu_struct, struct tty_menu_state): New structures. + (tty_menu_create, tty_menu_make_room, tty_menu_search_pane) + (tty_menu_calc_size, mouse_get_xy, tty_menu_display) + (have_menus_p, tty_menu_add_pane, tty_menu_add_selection) + (tty_menu_locate, save_and_enable_current_matrix) + (restore_desired_matrix, screen_update, read_menu_input) + (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback) + (tty_pop_down_menu, tty_menu_last_menubar_item) + (tty_menu_new_item_coords, tty_menu_show): New functions. + (syms_of_term): New DEFSYMs for tty-menu-* symbols. + + * nsterm.h (ns_popup_dialog): Adjust prototype. + + * nsmenu.m (ns_menu_show): Block and unblock input here, instead + of in x-popup-menu. + (ns_popup_dialog): Adapt order of arguments to the other + *_menu_show implementations. + (Fx_popup_dialog): Function deleted. + + * msdos.c (x_set_menu_bar_lines): Delete unused function. + + * menu.h (tty_menu_show, menu_item_width): provide prototypes. + + * menu.c (have_boxes): New function. + (single_keymap_panes): Use it instead of a compile-time + conditional. + (single_menu_item): Use run-time tests of the frame type instead + of compile-time conditionals. + (encode_menu_string): New function. + (list_of_items, list_of_panes): Use it instead of ENCODE_STRING + the macro, since different types of frame need different encoding + of menu items. + (digest_single_submenu): Use run-time tests of frame type instead + of, or in addition to, compile-time conditionals. + (menu_item_width, Fmenu_bar_menu_at_x_y): New functions. + (Fx_popup_menu): Detect when the function is called from keyboard + on a TTY. Don't barf when invoked on a text-mode frame. + Check frame type at run time, instead of compile-time conditionals for + invoking terminal-specific menu-show functions. + Call tty_menu_show on text-mode frames. + (Fx_popup_dialog): Move here from xmenu.c. Test frame types at + run time to determine which alternative to invoke; support dialogs + on TTYs. + + * keyboard.h : Declare. + + * keyboard.c : Now extern. + : New static variable. + (read_key_sequence): Accept an additional argument, a flag to + prevent redisplay during reading of the key sequence. All callers + changed. + (read_menu_command): New function. + (read_char): When COMMANDFLAG is -2, do not redisplay and do not + autosave. + (toolkit_menubar_in_use): New function. + (make_lispy_event): Use it instead of a compile-time test. - * fringe.c (get_fringe_bitmap_data): New function. - (draw_fringe_bitmap_1, update_window_fringes): Use it. - (update_window_fringes): Record periodicity of fringe bitmap in glyph - row. Mark glyph row for fringe update if periodicity changed. + * fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on + window-system being available. - * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row - for fringe update unless it has periodic bitmap. + * editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call + to x-popup-dialog on the frame type, they all now support popup + dialogs. -2011-05-25 Kenichi Handa + * dispnew.c (save_current_matrix): Save the margin areas. + (restore_current_matrix): Restore margin areas. + (update_frame_with_menu): New function. - * xdisp.c (get_next_display_element): Set correct it->face_id for - a static composition. + * dispextern.h (display_tty_menu_item, update_frame_with_menu): + Add prototypes. -2011-05-24 Leo Liu + * alloc.c (make_save_ptr): Now compiled unconditionally. - * deps.mk (fns.o): - * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h. +2013-10-08 Dmitry Antipov - * fns.c (crypto_hash_function, Fsha1): New function. - (Fmd5): Use crypto_hash_function. - (syms_of_fns): Add Ssha1. + * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment. + (redraw_frame, update_frame): Adjust users. + * dispextern.h (set_window_update_flags): Adjust prototype. + * xdisp.c (redisplay_internal): When updating all frames with zero + windows_or_buffers_changed, assume that only the windows that shows + current buffer should be really updated. -2011-05-22 Paul Eggert +2013-10-08 Dmitry Antipov - * gnutls.c: Remove unused macros. - (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function): - (fn_gnutls_transport_set_push_function) [!WINDOWSNT]: - Remove macros that are defined and never used. - Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14). + Do not allocate huge temporary memory areas and objects while encoding + for file I/O, thus reducing an enormous memory usage for large buffers. + See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html. + * coding.h (struct coding_system): New member raw_destination. + * coding.c (setup_coding_system): Initialize it to zero. + (encode_coding_object): If raw_destination is set, do not create + dst_object. Add comment. + * fileio.c (toplevel): New constant E_WRITE_MAX. + (e_write): Do not encode more than E_WRITE_MAX characters per one loop + iteration. Use raw_destination if E_WRITE_MAX characters is encoded. -2011-05-22 Chong Yidong +2013-10-08 Jan Djärv - * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS. - (Fx_get_selection_internal): Minor cleanup. - (Fx_own_selection_internal): Rename arguments for consistency with - select.el. + * nsterm.m (windowDidExitFullScreen:): + (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS. -2011-05-22 Paul Eggert +2013-10-08 Paul Eggert - * xselect.c (QSAVE_TARGETS): New static var, to fix build failure. + Fix race where emacs aborts when sent SIGTERM (Bug#15534). + * keyboard.c (unblock_input_to): Don't process pending signals + if a fatal error is in progress. -2011-05-22 Chong Yidong + * lisp.h (bits_word, BITS_WORD_MAX): New type and macro. + All uses of 'size_t' and 'SIZE_MAX' changed to use them, when + they're talking about words in Lisp bool vectors. + (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T. All uses changed. + * data.c (popcount_bits_word): Rename from popcount_size_t. + (bits_word_to_host_endian): Rename from size_t_to_host_endian. + All uses changed. - * xselect.c (syms_of_xselect): Include character.h; use DEFSYM. +2013-10-07 Paul Eggert -2011-05-21 YAMAMOTO Mitsuharu + Improve support for popcount and counting trailing zeros (Bug#15550). + * data.c: Include , . + (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE) + (NEED_GENERIC_POPCOUNT, popcount_size_t_generic) + (popcount_size_t_msc, popcount_size_t_gcc): + Remove; now done by Gnulib. + (popcount_size_t): Now a macro that defers to Gnulib. + (count_trailing_zero_bits): Return int, for consistency with + Gnulib and because Emacs prefers signed to unsigned int. + Don't assume that size_t is either unsigned int or unsigned long + or unsigned long long. + (size_t_to_host_endian): Do not assume that size_t is either + exactly 32 or exactly 64 bits wide. + * lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG + etc., so that it's now an enum constant, not a macro. + No need to assume that it's either 32 or 64. - * dispnew.c (scrolling_window): Don't exclude the case that the - last enabled row in the desired matrix touches the bottom boundary. +2013-10-07 Jan Djärv -2011-05-21 Glenn Morris + * nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only + on >= 10.7. - * Makefile.in ($(etc)/DOC): Make second command line even shorter. - (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion, - and add some more files. +2013-10-07 Dmitry Antipov -2011-05-20 Eli Zaretskii + * insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed. + * xdisp.c (handle_fontified_prop): Likewise. Use bool for boolean. - * callproc.c (Fcall_process) [MSDOS]: Fix arguments to - report_file_error introduced by the change from 2011-05-07. +2013-10-07 Paul Eggert -2011-05-20 Paul Eggert + emacs_read and emacs_write now use void *, not char *. + * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast. + * sysdep.c (emacs_read, emacs_write, emacs_write_sig): + Buffer arg is now void *, not char *. This matches plain + 'read' and 'write' better, and avoids a constraint violation + on Solaris 9 with Oracle Studio. - * systime.h (Time): Define only if emacs is defined. - This is to allow ../lib-src/profile.c to be compiled on FreeBSD, - where the include path doesn't have X11/X.h by default. See - . +2013-10-07 Dmitry Antipov -2011-05-20 Kenichi Handa + * alloc.c (Fmake_string): For ASCII char initializer, prefer + memset to explicit loop. Otherwise copy largest possible chunk + from initialized to uninitialized part, thus allowing the longer + memcpy runs and reducing the number of loop iterations. - * composite.c (find_automatic_composition): Fix previous change. +2013-10-06 Jan Djärv -2011-05-20 Glenn Morris + * nsterm.m (ns_update_begin): If native fullscreen and no toolbar, + hide toolbar (Bug#15388). + (windowDidEnterFullScreen:): If presentation options are zero, + set them here (Bug#15388). + (ns_update_auto_hide_menu_bar): Remove runtime check. + Don't auto hide dock unless menubar is also auto hidden. - * lisp.mk: New file, split from Makefile.in. - * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@. - (shortlisp): Remove. - ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp. +2013-10-05 Xue Fuqiao -2011-05-19 Glenn Morris + * editfns.c (message): Mention batch mode in doc string. - * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT) - (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT) - (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove. - (lisp): Set the order to that of loadup.el. - (shortlisp): Make it a copy of $lisp. - (SOME_MACHINE_LISP): Remove. - ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too. - Use just $shortlisp, not $SOME_MACHINE_LISP too. +2013-10-05 Jan Djärv -2011-05-18 Kenichi Handa + * nsterm.m (check_native_fs): Remove erroneous comment. - * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency. - (BACKWARD_CHAR): Wrap the arg STOP by parenthesis. - (find_automatic_composition): Mostly rewrite for efficiency. +2013-10-04 Dmitry Antipov -2011-05-18 Juanma Barranquero + * xdisp.c (redisplay_internal): Simplify because scan_for_column now + uses find_newline instead of scan_newline and so doesn't move point. - * makefile.w32-in: Update dependencies. +2013-10-04 Paul Eggert -2011-05-18 Christoph Scholtes + Use hardware support for byteswapping on glibc x86 etc. + On Fedora 19 x86-64, the new bswap_64 needs 1 instruction, + whereas the old swap64 needed 30. + * fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]: + * sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]: + Use byteswap.h's macros to swap bytes. + * lisp.h (swap16, swap32, swap64): Remove. + All uses replaced by bswap_16, bswap_32, bswap_64. - * menu.c: Include limits.h (fixes the MS-Windows build broken by - 2011-06-18T18:49:19Z!cyd@stupidchicken.com). + * bytecode.c (exec_byte_code): Use some more volatile variables + to work around local variables getting clobbered by longjmp. + Port to pre-C99, which doesn't allow decls after stmts. -2011-05-18 Paul Eggert +2013-10-03 Paul Eggert - Fix some integer overflow issues, such as string length overflow. + * lisp.h (eassert): Assume that COND is true when optimizing. + In other words, take on the behavior of eassert_and_assume. + This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64). + (eassert_and_assume): Remove. All uses replaced by eassert. - * insdel.c (count_size_as_multibyte): Check for string overflow. + * xdisp.c (Qglyphless_char): Now static. - * character.c (lisp_string_width): Check for string overflow. - Use EMACS_INT, not int, for string indexes and lengths; in - particular, 2nd arg is now EMACS_INT, not int. Do not crash if - the resulting string length overflows an EMACS_INT; instead, - report a string overflow if no precision given. When checking for - precision exhaustion, use a check that cannot possibly have - integer overflow. (Bug#8675) - * character.h (lisp_string_width): Adjust to new signature. + Adjust to merge from gnulib. + * conf_post.h (__has_builtin, assume): Remove; gnulib now does these. + * lisp.h: Include , for 'assume'. - * alloc.c (string_overflow): New function. - (Fmake_string): Use it. This doesn't change behavior, but saves - a few bytes and will simplify future changes. - * character.c (string_escape_byte8): Likewise. - * lisp.h (string_overflow): New decl. - - Fixups, following up to the user-interface timestamp change. - * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time - for UI timestamps, instead of unsigned long. - * msdos.c (mouse_get_pos): Likewise. - * w32inevt.c (movement_time, w32_console_mouse_position): Likewise. - * w32gui.h (Time): Define by including "systime.h" rather than by - declaring it ourselves. (Bug#8664) - - * dispextern.h (struct image): Don't assume time_t <= unsigned long. - * image.c (clear_image_cache): Likewise. - - * term.c (term_mouse_position): Don't assume time_t wraparound. + * eval.c (clobbered_eassert): New macro. + (internal_catch, internal_condition_case) + (internal_condition_case_1, internal_condition_case_2) + (internal_condition_case_n): Use it instead of eassert + when the argument contains locals clobbered by longjmp. + Don't use clobbered locals outside of clobbered_eassert. + (internal_lisp_condition_case): Use a volatile variable + to work around a local variable's getting clobbered. - Be more systematic about user-interface timestamps. - Before, the code sometimes used 'Time', sometimes 'unsigned long', - and sometimes 'EMACS_UINT', to represent these timestamps. - This change causes it to use 'Time' uniformly, as that's what X uses. - This makes the code easier to follow, and makes it easier to catch - integer overflow bugs such as Bug#8664. - * frame.c (Fmouse_position, Fmouse_pixel_position): - Use Time, not unsigned long, for user-interface timestamps. - * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise. - (button_down_time, make_lispy_position, make_lispy_movement): Likewise. - * keyboard.h (last_event_timestamp): Likewise. - * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise. - * menu.h (xmenu_show): Likewise. - * term.c (term_mouse_position): Likewise. - * termhooks.h (struct input_event.timestamp): Likewise. - (struct terminal.mouse_position_hook): Likewise. - * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise. - * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise. - * systime.h (Time): New decl. Pull it in from if - HAVE_X_WINDOWS, otherwise define it as unsigned long, which is - what it was before. - * menu.h, termhooks.h: Include "systime.h", for Time. - - * keyboard.c (make_lispy_event): Fix problem in integer overflow. - Don't assume that the difference between two unsigned long values - can fit into an integer. At this point, we know button_down_time - <= event->timestamp, so the difference must be nonnegative, so - there's no need to cast the result if double-click-time is - nonnegative, as it should be; check that it's nonnegative, just in - case. This bug is triggered when events are more than 2**31 ms - apart (about 25 days). (Bug#8664) - - * xselect.c (last_event_timestamp): Remove duplicate decl. - (x_own_selection): Remove needless cast to unsigned long. - - * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes - that always fit in int. Use a sentinel instead of a counter, to - avoid a temp and to allay GCC's concerns about possible int overflow. - * frame.h (struct frame): Use int for menu_bar_items_used - instead of EMACS_INT, since it always fits in int. - - * menu.c (grow_menu_items): Check for int overflow. - - * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils. - - * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers. - Before, the code was not consistent. These values cannot exceed - 2**31 - 1 so there's no need to make them unsigned. - (x_x_to_emacs_modifiers): Accept int and return EMACS_INT. - (x_emacs_to_x_modifiers): Accept EMACS_INT and return int. - (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers - as modifiers. - * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change. - - * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT. - (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT. - Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)), - presumably because the widths might not match. - - * window.c (size_window): Avoid needless test at loop start. - -2011-05-18 Courtney Bane (tiny change) - - * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687). - -2011-05-12 Drew Adams - - * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655). - -2011-05-12 YAMAMOTO Mitsuharu - - * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and - `width' to `bar_area_x' and `bar_area_width', respectively. - (x_scroll_run): Take account of fringe background extension. - - * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: - Rename local vars `left' and `width' to `bar_area_x' and - `bar_area_width', respectively. - (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe - background extension. - -2011-05-10 Jim Meyering - - * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the". - -2011-05-10 Juanma Barranquero - - * image.c (Finit_image_library): Return t for built-in image types, - like pbm and xbm. (Bug#8640) - -2011-05-09 Andreas Schwab - - * w32menu.c (set_frame_menubar): Fix submenu allocation. - -2011-05-07 Eli Zaretskii - - * w32console.c (Fset_screen_color): Doc fix. - (Fget_screen_color): New function. - (syms_of_ntterm): Defsubr it. - - * callproc.c (call_process_cleanup) [MSDOS]: Don't close and - unlink the temporary file if Fcall_process didn't create it in the - first place. - (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the - child process will be redirected to a file specified with `:file'. - Don't try to re-open tempfile in that case, and set fd[0] to -1 as - cue to call_process_cleanup not to close that handle. - -2011-05-07 Ben Key - - * makefile.w32-in: The bootstrap-temacs rule now makes use of - one of two shell specific rules, either bootstrap-temacs-CMD or - bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical - to the previous implementation of the bootstrap-temacs rule. - The bootstrap-temacs-CMD rule is similar to the previous - implementation of the bootstrap-temacs rule except that it - makes use of the ESC_CFLAGS variable instead of the CFLAGS - variable. +2013-10-03 Stefan Monnier - These changes, along with some changes to nt/configure.bat, - nt/gmake.defs, and nt/nmake.defs, are required to extend my - earlier fix to add support for --cflags and --ldflags options - that include quotes so that it works whether make uses cmd or - sh as the shell. + * lisp.h (struct handler): Merge struct handler and struct catchtag. + (PUSH_HANDLER): New macro. + (catchlist): Remove. + (handlerlist): Always declare. -2011-05-06 Michael Albinus + * eval.c (catchlist): Remove (merge with handlerlist). + (handlerlist, lisp_eval_depth): Not static any more. + (internal_catch, internal_condition_case, internal_condition_case_1) + (internal_condition_case_2, internal_condition_case_n): + Use PUSH_HANDLER. + (unwind_to_catch, Fthrow, Fsignal): Adjust to merged + handlerlist/catchlist. + (internal_lisp_condition_case): Use PUSH_HANDLER. Adjust to new + handlerlist which can only handle a single condition-case handler at + a time. + (find_handler_clause): Simplify since we only a single branch here + any more. - * dbusbind.c (QCdbus_type_unix_fd): Declare static. - (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it - is a constant. - (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or - a string. Handle both cases. - (Fdbus_call_method_asynchronously, Fdbus_register_signal) - (Fdbus_register_method): Use Qinvalid_function. - -2011-05-06 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - (LISP_H): Add inttypes.h and stdin.h. - (PROCESS_H): Add unistd.h. - -2011-05-06 Eli Zaretskii - - * lread.c: Include limits.h (fixes the MS-Windows build broken by - 2011-05-06T07:13:19Z!eggert@cs.ucla.edu). - -2011-05-06 Paul Eggert - - * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local. - - * term.c (vfatal): Remove stray call to va_end. - It's not needed and the C Standard doesn't allow it here anyway. - - Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux. - * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545) - - * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM - bytes. - - * term.c: Don't include , as does that. - - * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering. - - * process.c (Fformat_network_address): Fix typo: args2 -> *args2. - - * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times). - - * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601). - - * charset.h (struct charset.code_space): Now has 15 elements, not 16. - * charset.c (Fdefine_charset_internal): Don't initialize - charset.code_space[15]. The value was garbage, on hosts with - 32-bit int (Bug#8600). - - * lread.c (read_integer): Be more consistent with string-to-number. - Use string_to_number to do the actual conversion; this avoids - rounding errors and fixes some other screwups. Without this fix, - for example, #x1fffffffffffffff was misread as -2305843009213693952. - (digit_to_number): Move earlier, for benefit of read_integer. - Return -1 if the digit is out of range for the base, -2 if it is - not a digit in any supported base. (Bug#8602) + * bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase + and Bpophandler. + (bcall0): New function. + (exec_byte_code): Add corresponding cases. Improve error message when + encountering an invalid byte-code. Let Bunwind_protect accept + a function (rather than a list of expressions) as argument. - * doprnt.c (doprnt): Support arbitrary pI values, such as "I64". + * alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist, + and make them unconditional now that they're heap-allocated. - * dispnew.c (scrolling_window): Return 1 if we scrolled, - to match comment at start of function. This also removes a - GCC warning about overflow in a 32+64-bit port. +2013-10-03 Stefan Monnier - * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify. + * charset.c (Fdecode_char, Fencode_char): Remove description of + `restriction' arg. now that it's hidden by advertised-calling-convention. - * dbusbind.c: Do not use XPNTR on a value that may be an integer. - Reported by Stefan Monnier in - . - (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): - Use SYMBOLP-guarded XSYMBOL, not XPNTR. +2013-10-02 Jan Djärv - * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t. - (EMACS_UINTPTR): Likewise, with uintptr_t. + * macfont.m (mac_ctfont_create_preferred_family_for_attributes): + Remove unused variable (from mac-port). + (macfont_draw): Use s->ybase for correct y position. - * lisp.h: Prefer 64-bit EMACS_INT if available. - (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit - on 32-bit hosts that have 64-bit int, so that they can access - large files. - However, temporarily disable this change unless the temporary - symbol WIDE_EMACS_INT is defined. +2013-10-02 Dmitry Antipov - * lread.c, process.c: Do not include ; lisp.h does it now. + * frame.h (struct frame): Drop has_minibuffer member because... + (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it. + * frame.c (make_frame, make_minibuffer_frame): Adjust users. - Prefer intptr_t/uintptr_t for integers the same widths as pointers. - This removes an assumption that EMACS_INT and long are the same - width as pointers. The assumption is true for Emacs porting targets - now, but we want to make other targets possible. - * lisp.h: Include , for INTPTR_MAX, UINTPTR_MAX. - (EMACS_INTPTR, EMACS_UINTPTR): New macros. - In the rest of the code, change types of integers that hold casted - pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically - replacing EMACS_INT, long, EMACS_UINT, and unsigned long. - (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed. - (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here. - No need to cast type when ORing. - (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR. - * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast. - * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to - assume EMACS_INT is the same width as char *. - * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb): - (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item): - Remove no-longer-needed casts. - (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback): - (xg_tool_bar_help_callback, xg_make_tool_item): - Use EMACS_INTPTR to hold an integer - that will be cast to void *; this can avoid a GCC warning - if EMACS_INT is not the same width as void *. - * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast. - * xdisp.c (display_echo_area_1, resize_mini_window_1): - (current_message_1, set_message_1): - Use a local to convert to proper width without a cast. - * xmenu.c (dialog_selection_callback): Likewise. +2013-10-02 Dmitry Antipov - * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long. - Also, don't assume VALBITS / RAND_BITS is less than 5, - and don't rely on undefined behavior when shifting a 1 left into - the sign bit. - * lisp.h (get_random): Change signature to match. + * window.h (struct window): Prefer enum text_cursor_kinds to int + for phys_cursor_type member. Move the latter, phys_cursor_width, + phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM. + * window.c (replace_window, make_window): Adjust users. - * lread.c (hash_string): Use size_t, not int, for hash computation. - Normally we prefer signed values; but hashing is special, because - it's better to use unsigned division on hash table sizes so that - the remainder is nonnegative. Also, size_t is the natural width - for hashing into memory. The previous code used 'int', which doesn't - retain enough info to hash well into very large tables. - (oblookup, oblookup_last_bucket_number, Funintern): Likewise. +2013-10-02 Dmitry Antipov - * dbusbind.c: Don't possibly lose pointer info when converting. - (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): - Use XPNTR rather than XHASH, so that the high-order bits of - the pointer aren't lost when converting through void *. - - * eval.c (Fautoload): Don't double-shift a pointer. + * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because + this module is never compiled otherwise. - * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long. - -2011-05-06 Juanma Barranquero - - * gnutls.c (DEF_GNUTLS_FN): - * image.c (DEF_IMGLIB_FN): Make function pointers static. - -2011-05-05 Andreas Schwab - - * lread.c (lisp_file_lexically_bound_p): Stop scanning at end - marker. (Bug#8610) - -2011-05-05 Eli Zaretskii - - * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]: - New version that can reserve upto 2GB of heap space. - -2011-05-05 Chong Yidong - - * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534). - -2011-05-05 Teodor Zlatanov - - * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to - `gnutls_certificate_set_x509_key_file'. - -2011-05-05 Juanma Barranquero - - * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)): - Update dependencies. +2013-10-01 Alp Aker -2011-05-04 Juanma Barranquero + * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect + (Bug#15500). - * gnutls.h (emacs_gnutls_write, emacs_gnutls_read): - * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): - Remove unused parameter `fildes'. - * process.c (read_process_output, send_process): Don't pass it. +2013-09-29 Eli Zaretskii -2011-05-04 Juanma Barranquero + * xdisp.c (get_next_display_element): Don't call face_for_font in + a build configured --without-x. (Bug#15484) - Fix previous change: the library cache is defined in w32.c. - * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop. - (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI". +2013-09-29 Jan Djärv -2011-05-04 Juanma Barranquero + * window.c (calc_absolute_offset): #elif should be #elif defined. - Implement dynamic loading of GnuTLS on Windows. + * frame.c (delete_frame): Block/unblock input to overcome race + condition (Bug#15475). - * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro. - (emacs_gnutls_write, emacs_gnutls_read): Mark as extern. - (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): - Declare. +2013-09-29 Andreas Politz (tiny change) - * gnutls.c (Qgnutls_dll): Define. - (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros. - (gnutls_*): Declare function pointers. - (init_gnutls_functions): New function to initialize function pointers. - (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit) - (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers. - (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): - Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno. - (emacs_gnutls_write, emacs_gnutls_read) - (emacs_gnutls_handle_error, Fgnutls_error_fatalp) - (Fgnutls_available_p): New function. - (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers. - (syms_of_gnutls) : Initialize and staticpro it. - (syms_of_gnutls) : defsubr it. + * frame.c (delete_frame): Record selected frame only after + calling Qdelete_frame_functions (Bug#15477). - * image.c: Include w32.h. - (Vimage_type_cache): Delete. - (syms_of_image) : Don't initialize and staticpro it. - (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead. - (w32_delayed_load): Move to w32.c. +2013-09-28 Jan Djärv - * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare. + * nsterm.m (ns_selection_color): Remove. + (ns_get_color): Check for ns_selection_(fg|bg)_color using + NSColor selectedText(Background)Color. Only for COCOA. + (ns_term_init): Remove assignment of ns_selection_color, logic + moved to ns_get_color. - * w32.c (QCloaded_from, Vlibrary_cache): Define. - (w32_delayed_load): Move from image.c. When loading a library, record - its filename in the :loaded-from property of the library id. - (globals_of_w32) : - Initialize and staticpro them. - (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions. + * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from + NS_SELECTION_COLOR_DEFAULT. + (NS_SELECTION_FG_COLOR_DEFAULT): New. - * process.c: Include lisp.h before w32.h, not after. - (wait_reading_process_output): Call emacs_gnutls_record_check_pending - instead of gnutls_record_check_pending. +2013-09-28 Eli Zaretskii - * callproc.c, emacs.c: Include lisp.h before w32.h, not after. + * xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct + frame' does not have the tool_bar_window member. -2011-05-04 Teodor Zlatanov +2013-09-26 Barry O'Reilly - * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options - instead of :keyfiles. Give GnuTLS the keylist and the CRL lists - as passed in. + Signal error when reading an empty byte-code object (Bug#15405) + * lread.c (read1): signal error + * alloc.c (make_byte_code): eassert header size + (sweep_vectors): change an int to size_t -2011-05-03 Jan Djärv +2013-09-24 Paul Eggert - * xterm.c (x_set_frame_alpha): Do not set property on anything - else than FRAME_X_OUTER_WINDOW (Bug#8608). + * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums + instead of ints, as it's the usual style for offsetof constants. See: + http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html -2011-05-02 Juanma Barranquero + * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount. + This is ugly, but it should fix the performance problem for older + GCC versions in the short run. I'll look into integrating the + Gnulib module for popcount, as a better fix. + See the thread starting in: + http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html + (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]: + (popcount_size_t_msc) [USE_MSC_POPCOUNT]: + (popcount_size_t_gcc) [USE_GCC_POPCOUNT]: + (popcount_size_t): Use it. - * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596) +2013-09-24 Daniel Colascione -2011-05-02 Juanma Barranquero + * process.c (Fnetwork_interface_info): Fix build break due to + vector changes. - * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon) - (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again) - (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake) - (gnutls_global_initialized, Qgnutls_bootprop_priority) - (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles) - (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel) - (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags) - (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error) - (Qgnutls_bootprop_callbacks_verify): Make static. +2013-09-24 Paul Eggert -2011-05-01 Andreas Schwab + * dispnew.c (clear_glyph_row, copy_row_except_pointers): + Prefer signed to unsigned integers where either will do. + No need for 'const' on locals that do not escape. + Omit easserts with unnecessary and unportable assumptions about + alignment. Avoid unnecessary casts to char *. - * callproc.c: Indentation fixup. +2013-09-24 Dmitry Antipov - * sysdep.c (wait_for_termination_1): Make static. - (wait_for_termination, interruptible_wait_for_termination): - Move after wait_for_termination_1. + Use union for the payload of struct Lisp_Vector. + This helps to avoid a few glitches dictated by C's aliasing rules. + * lisp.h (struct Lisp_Vector): Use union for next and + contents member. Adjust comment. Change related users. + * alloc.c (next_in_free_list, set_next_in_free_list): Remove. + Related users changed. + * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c: + * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c: + * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c: + * xfaces.c, xfont.c, xmenu.c: Related users changed. -2011-05-01 Lars Magne Ingebrigtsen +2013-09-24 Dmitry Antipov - * sysdep.c (interruptible_wait_for_termination): New function - which is like wait_for_termination, but allows keyboard - interruptions. + Optimize glyph row clearing and copying routines. + * dispextern.h (struct glyph_row): Change layout of struct + glyph_row to help copy_row_except_pointers. Adjust comment. + * dispnew.c (null_row): Remove. + (clear_glyph_row): Use offsetof and memset to find and clear + just the members that need clearing. Adjust comment. + (copy_row_except_pointers): Likewise for copying. - * callproc.c (Fcall_process): Add (:file "file") as an option for - the STDOUT buffer. - (Fcall_process_region): Ditto. +2013-09-24 Paul Eggert -2011-04-30 Eli Zaretskii + Some minor cleanups of recently-added bool vector code. + * conf_post.h (assume): Always return void. Use lint version + only if GCC and MSC versions don't apply. + * conf_post.h (assume): + * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits): + Depend on _MSC_VER, not __MSC_VER, for consistency with + the rest of Emacs. + * data.c (bool_vector_spare_mask, popcount_size_t_generic) + (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t) + (bool_vector_binop_driver, count_trailing_zero_bits) + (size_t_to_host_endian): Now static, not static inline; + the latter isn't needed with modern compilers and doesn't + work with older compilers anyway. + + * alloc.c (valgrind_p): Use bool for boolean. + +2013-09-23 Dmitry Antipov + + * xdisp.c (noninteractive_need_newline, message_log_need_newline) + (overlay_arrow_seen, message_enable_multibyte, line_number_displayed) + (display_last_displayed_message_p, message_buf_print) + (message_cleared_p, help_echo_showing_p, hourglass_shown_p): + Use bool for boolean. + * dispextern.h (cancel_line, init_desired_glyphs): + Remove ancient leftover. + (help_echo_showing_p, hourglass_shown_p): + * lisp.h (noninteractive_need_newline): Adjust declaration. + +2013-09-23 Dmitry Antipov + + * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame): + Move to... + * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame): + ...this file and convert the latter to static. Adjust comment. + (make_initial_frame): + * window.c (init_window_once): Adjust user. + * frame.h (last_nonminibuf_frame): Remove declaration. + * lisp.h (selected_frame): Likewise. + * msdos.c (the_only_display_info): Adjust comment. + +2013-09-23 Eli Zaretskii + + * xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in + computing the end column of mouse-highlight that comes from + display or overlay strings. (Bug#15437) + (note_mouse_highlight): Adapt calculation of last argument to + mouse_face_from_string_pos to the above change. + + * conf_post.h (__has_builtin): Define to zero, if undefined, on + all platforms, not just for clang. + +2013-09-23 Jan Djärv + + * filelock.c (lock_file_1): Rearrange to remove compiler warning + about excess arguments to snprintf. + + * conf_post.h(assume): Use __builtin_unreachable for clang. + +2013-09-23 Juanma Barranquero + + * w32console.c (initialize_w32_display): Remove unused variable hlinfo. + * w32term.c (w32_scroll_bar_handle_click): Remove unused variable f. + +2013-09-23 Daniel Colascione + + * alloc.c (USE_VALGRIND): New macro; on by default + when ENABLE_CHECKING. + (mark_maybe_object, mark_maybe_pointer) + [USE_VALGRIND]: Mark conservatively-scanned regions valid for + valgrind purposes. + (valgrind_p) [USE_VALGRIND]: New variable. + (init_alloc) [USE_VALGRIND]: Initialize valgrind_p. + +2013-09-22 Jan Djärv + + * process.c (wait_reading_process_output): Change int pnamelen to + socklen_t. + + * nsterm.m (setMarkedText:selectedRange:): + (deleteWorkingText): + * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:): + * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog + argument to unsigned long to avoid warning. + (nsfont_draw): Use 0.25 instead of Fix2X (kATSItalicQDSkew). + + * conf_post.h (assume): Fix compiler error: x shall be cond. + +2013-09-22 Daniel Colascione + + * xfns.c (x_get_monitor_attributes): Suppress unused variable + warning when compiling without a window system. + +2013-09-22 Daniel Colascione + + * data.c (Qbool_vector_p): New symbol. + (bool_vector_spare_mask, popcount_size_t_generic) + (popcount_size_t_msc, popcount_size_t_gcc) + (popcount_size_t) + (bool_vector_binop_driver) + (count_trailing_zero_bits, size_t_to_host_endian) + (Fbool_vector_exclusive_or) + (Fbool_vector_union) + (Fbool_vector_intersection, Fbool_vector_set_difference) + (Fbool_vector_subsetp, Fbool_vector_not) + (Fbool_vector_count_matches) + (Fbool_vector_count_matches_at): New functions. + (syms_of_data): Intern new symbol, functions. + * alloc.c (bool_vector_payload_bytes): New function. + (Fmake_bool_vector): Instead of calling Fmake_vector, + which performs redundant initialization and argument checking, + just call allocate_vector ourselves. Make sure we clear any + terminating padding to zero. + (vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes + instead of open-coding the size calculation. + (vroundup_ct): New macro. + (vroundup): Assume argument >= 0; invoke vroundup_ct. + * casetab.c (shuffle, set_identity): Change lint_assume to assume. + * composite.c (composition_gstring_put_cache): + Change lint_assume to assume. + * conf_post.h (assume): New macro. + (lint_assume): Remove. + * dispnew.c (update_frame_1): Change lint_assume to assume. + * ftfont.c (ftfont_shape_by_flt): Change lint_assume + to assume. + * image.c (gif_load): Change lint_assume to assume. + * lisp.h (eassert_and_assume): New macro. + (Qbool_vector_p): Declare. + (CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros. + (swap16, swap32, swap64): New inline functions. + * macfont.c (macfont_shape): Change lint_assume to assume. + * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout. + * xsettings.c (parse_settings): Use new swap16 and + swap32 from lisp.h instead of file-specific macros. + +2013-09-22 Eli Zaretskii + + * xdisp.c (try_window_id): Don't abort if cursor row could not be + found (which can legitimately happen when the glyph row at the + window start is disabled in the current_matrix. (Bug#15365) + +2013-09-22 Paul Eggert + + Fix syntax.h bug introduced by recent INLINE change. + syntax.h defined an extern inline function SYNTAX_ENTRY that was + conditionally compiled one way in some modules, and a different + way in others. This doesn't work with extern inline functions, + which must have the same definition in all modules, because the + defining code might be shared across modules, depending on the + implementation. Symptoms reported by Martin Rudalics in: + http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html + * regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove. + (SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros, + overriding the corresponding functions in syntax.h. + * syntax.h (syntax_property_entry, syntax_property_with_flags) + (syntax_property): New inline functions. + (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX): + Rewrite in terms of these new functions. + +2013-09-21 Eli Zaretskii + + * dired.c (directory_files_internal): Use multibyte_chars_in_text, + not chars_in_text, whose result depends on the multibyteness of + the current buffer. (Bug#15426) + +2013-09-20 Paul Eggert + + Port recent change to hosts where pointers aren't 'long'. + * xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event): + Don't assume that pointers are the same width as 'long'. + Add a compile-time check that a pointer fits into two X slots. + + A simpler, centralized INLINE. + * conf_post.h (INLINE): Define only if not already defined. + This allows us to use a single INLINE, defined by one file + per executable. + * 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. + * blockinput.h, keyboard.c (BLOCKINPUT_INLINE): + * buffer.h, buffer.c (BUFFER_INLINE): + * category.h, category.c (CATEGORY_INLINE): + * character.h, character.c (CHARACTER_INLINE): + * charset.h, charset.c (CHARSET_INLINE): + * composite.h, composite.c (COMPOSITE_INLINE): + * dispextern.h, dispnew.c (DISPEXTERN_INLINE): + * frame.h, frame.c (FRAME_INLINE): + * intervals.h, intervals.c (INTERVALS_INLINE): + * keyboard.h, keyboard.c (KEYBOARD_INLINE): + * lisp.h, alloc.c (LISP_INLINE): + * process.h, process.c (PROCESS_INLINE): + * syntax.h, syntax.c (SYNTAX_INLINE): + * systime.h, sysdep.c (SYSTIME_INLINE): + * termhooks.h, terminal.h (TERMHOOKS_INLINE): + * window.h, window.c (WINDOW_INLINE): + Remove. All uses replaced with INLINE. + +2013-09-20 Dmitry Antipov + + * xterm.c (handle_one_xevent): Revert part of 2013-09-17 change + to avoid Bug#15398. + +2013-09-19 Eli Zaretskii + + * w32reg.c (w32_get_string_resource): Make the first 2 arguments + 'const char *' to avoid compiler warnings due to similar change in + the prototype of x_get_string_resource. + +2013-09-19 Dmitry Antipov + + * xterm.h (struct x_display_info): New members last_mouse_glyph_frame, + last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time, + going to replace static variables below. Adjust comments. + * xterm.c (last_mouse_glyph, last_mouse_glyph_frame) + (last_mouse_scroll_bar, last_mouse_movement_time): Remove. + (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement) + (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm): + Related users changed. + * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame, + last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and + last_mouse_movement_time, going to replace static variables below. + Adjust comments. + * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar) + (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time): + Remove. + (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click) + (x_scroll_bar_report_motion, syms_of_w32term): Related users changed. + * nsterm.h (struct ns_display_info): New members last_mouse_glyph, + last_mouse_movement_time and last_mouse_scroll_bar, going to replace + static variables below. + * nsterm.m (last_mouse_glyph, last_mouse_movement_time) + (last_mouse_scroll_bar): Remove. + (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered) + (mouseExited): Related users changed. + +2013-09-19 Dmitry Antipov + + Do not use external array to process X scroll bar messages. + * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove. + (x_send_scroll_bar_event): Pack window pointer into two slots + of XClientMessageEvent if we're 64-bit. Adjust comment. + (x_scroll_bar_to_input_event): Unpack accordingly. + +2013-09-18 Dmitry Antipov + + Ifdef away recent changes which aren't relevant to NS port. + * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight) + [!HAVE_NS]: Declare as such. + * frame.c (x_mouse_grabbed, x_redo_mouse_highlight) + [!HAVE_NS]: Define as such. + +2013-09-18 Dmitry Antipov + + * frame.c (x_redo_mouse_highlight): New function + to factor out common code used in W32 and X ports. + * dispextern.h (x_redo_mouse_highlight): Add prototype. + * xterm.h (struct x_display_info): + * w32term.h (struct w32_display_info): + * nsterm.h (struct ns_display_info): New members + last_mouse_motion_frame, last_mouse_motion_x and + last_mouse_motion_y, going to replace static variables below. + * xterm.c (last_mouse_motion_event, last_mouse_motion_frame) + (redo_mouse_highlight): Remove. + (note_mouse_movement, syms_of_xterm): Adjust user. + (handle_one_xevent): Likewise. Use x_redo_mouse_highlight. + * w32term.c (last_mouse_motion_event, last_mouse_motion_frame) + (redo_mouse_highlight): Remove. + (note_mouse_movement, syms_of_w32term): Adjust user. + (w32_read_socket): Likewise. Use x_redo_mouse_highlight. + * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame): + Remove. + (note_mouse_movement, mouseMoved, syms_of_nsterm): + * nsfns.m (compute_tip_xy): Adjust user. + +2013-09-18 Dmitry Antipov + + * frame.c (x_mouse_grabbed): New function. + * dispextern.h (x_mouse_grabbed): Add prototype. + (last_mouse_frame): Remove declaration. + * xterm.h (struct x_display_info): + * w32term.h (struct w32_display_info): + * nsterm.h (struct ns_display_info): New member + last_mouse_frame, going to replace... + * xdisp.c (last_mouse_frame): ...global variable. + (note_tool_bar_highlight): + * w32term.c (w32_mouse_position, w32_read_socket): + * xterm.c (XTmouse_position, handle_one_xevent): + Use x_mouse_grabbed. + * nsterm.m (ns_mouse_position, mouseDown): Adjust user. + +2013-09-17 Dmitry Antipov + + * w32term.c (w32_read_socket): Avoid temporary + variables in a call to x_real_positions. + * xterm.c (handle_one_xevent): Likewise. + +2013-09-17 Dmitry Antipov + + * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function. + (x_icon_type): Remove prototype. + (x_bitmap_icon) [!HAVE_NS]: Declare as such. + * frame.c (x_icon_type): Remove. + * w32term.c (x_make_frame_visible, x_iconify_frame): + * xterm.c (x_make_frame_visible, x_iconify_frame): + Use x_set_bitmap_icon to factor out common code. + +2013-09-17 Dmitry Antipov + + * dispextern.h (check_x_display_info, x_get_string_resource): + Declare here just once and unify the latter. + * frame.c (check_x_display_info, x_get_string_resource): + * nsterm.h (check_x_display_info): + * xrdb.c (x_get_string_resource): + * xterm.h (check_x_display_info): Remove prototypes. + * nsfns.m (x_get_string_resource): Likewise. Adjust definition. + * w32reg.c (x_get_string_resource): Likewise. + (w32_get_rdb_resource): Adjust user. + +2013-09-17 Dmitry Antipov + + * xterm.h (struct x_display_info): New member + x_pending_autoraise_frame, going to replace... + * xterm.c (pending_autoraise_frame): ...static variable. + (x_new_focus_frame, XTread_socket): Adjust users. + * w32term.h (struct w32_display_info): New member + w32_pending_autoraise_frame, going to replace... + * w32term.c (pending_autoraise_frame): ...global variable. + (x_new_focus_frame, w32_read_socket): Adjust users. + +2013-09-17 Glenn Morris + + * xdisp.c (message_dolog): If we create *Messages*, + switch it to messages-buffer-mode. + +2013-09-17 Paul Eggert + + Don't overuse 'const' in types of locals. + * bidi.c (bidi_count_bytes): + * gtkutil.c, gtkutil.h (xg_event_is_for_menubar) + (xg_event_is_for_scrollbar): + * xselect.c (x_handle_property_notify) + (x_handle_selection_notify, x_handle_dnd_message): + * xsettings.c, xsettings.h (xft_settings_event): + * xterm.c (x_handle_net_wm_state, handle_one_event) + (x_menubar_window_to_frame, x_detect_focus_change) + (construct_mouse_click, note_mouse_movement) + (x_scroll_bar_to_input_event, x_scroll_bar_expose) + (x_scroll_bar_handle_click, x_scroll_bar_note_movement) + (handle_one_xevent, x_handle_net_wm_state): + * xterm.h (x_handle_property_notify, x_handle_selection_notify) + (x_handle_dnd_message): + Avoid unnecessary 'const', typically the second 'const' in + 'const foo * const arg', a 'const' that does not affect the API + and doesn't significantly help the human reader. + +2013-09-17 Dmitry Antipov + + * image.c (fn_g_type_init) [WINDOWSNT]: Define and load + only if Glib < 2.36.0. + (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0. + * xsettings.c (init_gconf, init_gsettings): Do not check + for g_type_init. + * xterm.c (handle_one_xevent): Do not call to x_clear_area + if GTK >= 2.7.0. + (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC. + +2013-09-16 Jan Djärv + + * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0 + before calling g_type_init. + + * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ... + + * nsterm.m (syms_of_nsterm): ... to here. + +2013-09-16 Dmitry Antipov + + * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean. + (ignore_next_mouse_click_timeout): Use Time as X does. + (handle_one_xevent): Avoid cast and use unsigned comparison. + +2013-09-16 Dmitry Antipov + + Do not copy X event in handle_one_xevent except KeyPress case. + Wnen XEvent is processed, it is unlikely to be changed except + KeyPress case, so we can avoid copying and use const pointer to + const data to make sure that an event is not changed elsewhere. + * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent * + const' and do not create local copy except for the KeyPress event. + Use casts to avoid a few glitches. Adjust formatting. Add comments. + (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user. + (x_handle_net_wm_state, x_menubar_window_to_frame) + (x_detect_focus_change, construct_mouse_click, note_mouse_movement) + (x_scroll_bar_to_input_event, x_scroll_bar_expose) + (x_scroll_bar_handle_click, x_scroll_bar_note_movement): + * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar): + * xselect.c (x_handle_property_notify, x_handle_selection_notify) + (x_handle_dnd_message): + * xsettings.c (xft_settings_event): + Use 'const XEvent * const' where appropriate. + * xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes. + +2013-09-16 Dmitry Antipov + + Fix X event waiting to handle multiple frames. + * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type. + * xterm.c (pending_event_wait): Remove. Adjust users. + (x_detect_focus_change): Pass frame arg. + (handle_one_xevent): Find related frame early and clear per-frame + wait_event_type only if this is an event for the relevant frame. + (x_wait_for_event): Use per-frame wait_event_type. + +2013-09-15 Jan Djärv + + * nsfns.m (Fx_create_frame): Fix font driver registration for + GNUStep. + + * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 + for syms_of_macfont. + + * nsterm.m: Include macfont.h. + (ns_tmp_flags, ns_tmp_font): Remove. + (ns_compute_glyph_string_overhangs): Check for driver Qns. + (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags, + ns_tmp_font. Call ns_draw_text_decoration here instead of nsfont.m. + (changeFont:): Fix code style. Check for font driver type when + getiing font. + + * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and + (f)->descent. + + * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove. + (nsfont_open): Set font driver type. + Set font->ascent and font->descent. Figure out font instead of + ns_tmp_font, and flags instead of ns_tmp_flags. + Fix indentation. Remove call to ns_draw_text_decoration, + moved to nsterm. + + * nsfns.m: Include macfont.h. + (Fx_create_frame): Register macfont driver, make a better default font. + (Fns_popup_font_panel): Get font from macfont driver, if used. + + * macfont.m, macfont.h, maccuvs.h: New files. + + * font.h: Declare syms_of_macfont. + + * font.c (syms_of_font): Call syms_of_macfont. + + * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o. + +2013-09-15 Dmitry Antipov + + Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999, + and it is always zero for others, so I assume that this is an ancient + leftover which nobody will want to change any more. + * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove. + (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): + * frame.c (x_set_scroll_bar_width): + * w32fns.c (w32_createscrollbar): + * w32term.c (w32_set_vertical_scroll_bar): + * xfns.c (x_set_scroll_bar_default_width): + * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar) + (x_scroll_bar_expose): Related users changed. + +2013-09-15 Dmitry Antipov + + * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment. + (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER. + (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]: + Define as such. + * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT): + Define once here... + * nsterm.h, w32term.h, xterm.h: ...and not here. + * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET): + Remove unused Xisms. + * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because + these modules are never compiled otherwise. + +2013-09-14 Eli Zaretskii + + * buffer.c (syms_of_buffer) : + Doc fix. (Bug#15375) + +2013-09-13 Dmitry Antipov + + Unify Fx_focus_frame between all ports. + * frame.h (x_focus_frame): New prototype. + * xfns.c (Fx_focus_frame): Remove. + (syms_of_xfns): Do not defsubr it. + (x_focus_frame): X implementation. + * nsfns.m (Fx_focus_frame): Remove. + (syms_of_nsfns): Do not defsubr it. + (x_focus_frame): NS implementation. + * w32term.c (Fx_focus_frame): Remove. + (x_focus_on_frame): Rename to... + (x_focus_frame): W32 implementation. + * w32term.h (x_focus_on_frame): Remove prototype. + * w32fns.c (Fx_focus_frame): Remove. + (syms_of_w32fns): Do not defsubr it. + * frame.c (Fx_focus_frame): Define here. + (syms_of_frame): Defsubr here. + * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame. + +2013-09-13 Dmitry Antipov + + Unify FRAME_window_system_DISPLAY_INFO macros between all ports. + All of them are replaced with FRAME_DISPLAY_INFO, defined in + each port to reference the port-specific window system data. + * msdos.h (FRAME_X_DISPLAY_INFO): Remove. + (FRAME_DISPLAY_INFO): Define. + * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove. + (FRAME_DISPLAY_INFO): Define. Adjust users. + * xterm.h (FRAME_X_DISPLAY_INFO): Remove. + (FRAME_DISPLAY_INFO): Define. Adjust users. + * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify. + * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m: + * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c: + * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c: + * xselect.c, xterm.c: All related users changed. + +2013-09-13 Dmitry Antipov + + * xterm.h (x_window_to_frame, x_any_window_to_frame) + (x_menubar_window_to_frame): Remove prototypes. + * xfns.c (x_window_to_frame, x_any_window_to_frame) + (x_menubar_window_to_frame, x_top_window_to_frame): + Move from here... + * xterm.c (x_window_to_frame, x_any_window_to_frame) + (x_menubar_window_to_frame, x_top_window_to_frame): + ...to here and convert all but the last to static. + +2013-09-12 Eli Zaretskii + + * lisp.mk (lisp): Add w32-common-fns.elc. + +2013-09-12 Xue Fuqiao + + * charset.c (char_charset): Document an exception for char-charset. + +2013-09-12 Dmitry Antipov + + * xterm.h (x_display_info): New field last_user_time... + * xterm.c (toplevel): ...to replace static last_user_time. + (handle_one_xevent, x_ewmh_activate_frame): Adjust users. + +2013-09-12 Dmitry Antipov + + * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip + scroll bar values to prevent thumb from disappear and update comment. + +2013-09-11 Glenn Morris + + * emacs.c (usage_message): Possessive apostrophe tweak. + +2013-09-11 Dmitry Antipov + + * nsterm.m (syms_of_nsterm): Use Qns. + * w32fns.c (Fx_open_connection): Remove old '#if 0' code. + * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32. + * xfns.c (x_display_info_for_name, Fx_open_connection): + Remove old '#if 0' code. + (syms_of_xfns): Use Qx. + * termhooks.h (fullscreen_hook): Remove the leftover. + (struct terminal): Fix typo in comment. + +2013-09-11 Dmitry Antipov + + Cleaning up a few X scroll bar bits. + * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member. + * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]: + New member last_seen_part, going to replace... + * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part. + (xt_action_hook) [USE_LUCID]: Adjust user. + (xm_scroll_callback, xg_scroll_callback): Do not bloat with + Lucid-specific scroll bar support. + (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part + to int and adjust to use last_seen_part member. + (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user. + (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]: + Initialize last_seen_part. + +2013-09-11 Stefan Monnier + + * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when + insert-buffer-substring an empty string. + +2013-09-11 Paul Eggert + + * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out, + avoiding a GCC warning. + +2013-09-11 Dmitry Antipov + + Ifdef away frame tool bar code when it is not really used. + * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]: + Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string + and minimize_tool_bar_window_p under the above. + (fset_current_tool_bar_string, fset_desired_tool_bar_string) + (fset_tool_bar_window): Likewise. + * dispnew.c (clear_current_matrices, clear_desired_matrices) + (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame) + (change_frame_size_1): + * window.c (window_from_coordinates, Frecenter): Adjust users. + * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar + code is not really used. + * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line) + (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info) + (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight) + [!USE_GTK && !HAVE_NS]: Define as such. + (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face) + (note_mouse_highlight, expose_frame): + * xfns.c (x_set_tool_bar_lines): + * xterm.c (handle_one_xevent): Adjust users. + +2013-09-11 Paul Eggert + + Fix corruption with multiple emacsclient -t instances (Bug#15222). + This bug was introduced by my 2013-08-26 patch, which incorrectly + assumed that the terminfo implementation doesn't use termcap buffers. + * term.c (init_tty) [TERMINFO]: Remove optimization, as + these buffers apparently are used after all. + * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too. + (struct tty_display_info): Define members termcap_term_buffer and + termcap_strings_buffer even if TERMINFO. + +2013-09-11 Dmitry Antipov + + Fix last change. + * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient + 'usage' docstring entry to pacify make-docfile. + +2013-09-11 Barry O'Reilly + + Change comparison functions =, <, >, <=, >= to take many arguments. + * data.c: Change comparison functions' interface and implementation. + * lisp.h: Make arithcompare available for efficient two arg + comparisons. + * bytecode.c: Use arithcompare. + * fileio.c: Use new interface. + +2013-09-11 Stefan Monnier + + * keyboard.c (read_char): Don't break immediate_echo (bug#15332). + +2013-09-10 Stefan Monnier + + * eval.c (Feval): Document the new use of `lexical'. + +2013-09-09 Dmitry Antipov + + Review and drop old frame resize hack. + * frame.h (struct frame): Remove force_flush_display_p. + * dispnew.c (update_frame): Adjust user and don't call + flush_frame here. The comment has said that there was an issues + with redisplaying fringes, but I don't see any differences with + and without this hack. Hopefully we can continue without it. + * xdisp.c (clear_garbaged_frames): Adjust user and do not clear + current frame matrices twice if resized_p is set. + +2013-09-09 Dmitry Antipov + + Do not populate pure Xism x_sync to other ports. + * frame.h (x_sync): Move under HAVE_X_WINDOWS. + * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such. + * nsfns.m, w32xfns.c (x_sync): Remove no-op. + * w32term.h (x_sync): Remove prototype. + +2013-09-09 Dmitry Antipov + + Cleanup frame flushing. + * dispextern.h (struct redisplay_interface): + Drop flush_display_optional because flush_display is enough + for X and flushing via RIF is just a no-op for others. + * frame.h (flush_frame): New function. + * dispnew.c (update_frame): + * minibuf.c (read_minibuf): + * xdisp.c (echo_area_display, redisplay_preserve_echo_area): + Use it. + * keyboard.c (detect_input_pending_run_timers): Do not flush + all frames but selected one in redisplay_preserve_echo_area. + * nsterm.m (ns_flush): Remove no-op. + (ns_redisplay_interface): Adjust user. + * w32term.h (x_flush): Remove no-op. + (w32_redisplay_interface): Adjust user. + * xterm.c (x_flush): Simplify because we do not flush all + frames at once any more. Adjust comment. + (x_redisplay_interface): Adjust user. + +2013-09-07 Paul Eggert + + Port --without-x --enable-gcc-warnings to Fedora 19. + * gfilenotify.c (globals_of_gfilenotify): + Call g_type_init only if using an older glib version that needs it. + +2013-09-06 Dmitry Antipov + + * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id) + (last_glyphless_glyph_merged_face_id): Remove declarations. + * dispextern.h (merge_glyphless_glyph_face): Add prototype. + * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id) + (last_glyphless_glyph_merged_face_id): Now static. + (merge_escape_glyph_face): New function, refactored from... + (get_next_display_element): ...here. + (merge_glyphless_glyph_face): New function, refactored from... + (produce_glyphless_glyph): ...here... + * term.c (produce_glyphless_glyph): ...and here. + +2013-09-06 Stefan Monnier + + * eval.c (eval_sub): Only call Ffunction if necessary. + +2013-09-06 Dmitry Antipov + + Attempt to make redisplay more selective when changing cursor type. + * frame.h (struct frame): New bitfield cursor_type_changed. + * xdisp.c (cursor_type_changed): Remove. + (try_cursor_movement, redisplay_window, try_window_id) + (set_frame_cursor_types, try_window_reusing_current_matrix): + Adjust to use per-frame bitfield. + (redisplay_internal): Look for cursor type change on each visible + frame and consider all frames if cursor type has been changed on + the frame other than selected. If cursor type has been changed on + selected frame only, do not use fast update. + +2013-09-06 Dmitry Antipov + + Attempt to make redisplay more selective when changing fonts. + * frame.h (struct frame): New bitfield fonts_changed. + * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration. + (adjust_frame_glyphs): Add prototype. + * dispnew.c (fonts_changed_p): Remove. + (adjust_glyphs): Remove because we do not + adjust matrices on all frames at once any more. + (adjust_frame_glyphs): Block and unblock input here. + (adjust_glyph_matrix): Use fonts_changed. + (change_frame_size_1): Use adjust_frame_glyphs. + * font.c (font_open_entity): Use fonts_changed. + * frame.c (set_menu_bar_lines, Fmake_terminal_frame): + * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip): + * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply) + (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window) + (shrink_mini_window, Fresize_mini_window_internal) + (window_scroll_pixel_based, Fset_window_configuration) + (apply_window_adjustment, Fset_window_vscroll): + * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip): + Use adjust_frame_glyphs. + * xdisp.c (redisplay_tool_bar, redisplay_window, try_window) + (try_window_reusing_current_matrix, try_window_id, display_line) + (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed. + (redisplay_internal): Consider fonts_changed and adjust frame + matrices for each frame only if the frame is visible. If font + has been changed on some frame during full redisplay, retry + only visible frames where the font has been actually changed. + +2013-09-05 Dmitry Antipov + + Cache current header and mode line height for each window. + * window.h (struct window): New fields mode_line_height + and header_line_height. + * window.c (make_window): Initialize them. + * dispextern.h (CURRENT_MODE_LINE_HEIGHT) + (CURRENT_HEADER_LINE_HEIGHT): Use them. Adjust comment. + (current_mode_line_height, current_header_line_height): + Remove declaration. + * xdisp.c (current_mode_line_height, current_header_line_height): + Remove. + (pos_visible_p, init_xdisp): Adjust user. + (redisplay_window): Invalidate mode_line_height and + header_line_height if current and desired matrices do not agree. - * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)' - rather than `XVECTOR (FOO)->size'. +2013-09-05 Dmitry Antipov - * process.c: Remove HAVE_INTTYPES_H condition from inclusion of - inttypes.h, as a gnulib replacement is used if it not available in - system headers. + * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER. + * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice. -2011-04-21 Eli Zaretskii +2013-09-05 Dmitry Antipov - Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files. - * fileio.c (Finsert_file_contents): Don't limit file size to 1/4 - of MOST_POSITIVE_FIXNUM. (Bug#8528) + Make --without-x compatible with --enable-gcc-warnings. + * font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM. + * font.h (struct font_driver): Move draw, get_bitmap and free_bitmap + members under HAVE_WINDOW_SYSTEM. + * keyboard.c (make_lispy_focus_out): Likewise. + (record_menu_key): Move under HAVE_MENUS. + * xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and + THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM. + (syms_of_xdisp): Adjust user. + (window_box_edges): Define only if HAVE_WINDOW_SYSTEM. + (start_hourglass, cancel_hourglass): + * xfaces.c (toplevel): Likewise with PT_PER_INCH, + clear_font_table_count, CLEAR_FONT_TABLE_COUNT + and CLEAR_FONT_TABLE_NFONTS. + (set_font_frame_param, clear_face_gcs, realize_non_ascii_face): + Declare only if HAVE_WINDOW_SYSTEM. + (lface_same_font_attributes_p, clear_face_gcs): Define only + if HAVE_WINDOW_SYSTEM. - * coding.c (coding_alloc_by_realloc): Error out if destination - will grow beyond MOST_POSITIVE_FIXNUM. - (decode_coding_emacs_mule): Abort if there isn't enough place in - charbuf for the composition carryover bytes. Reserve an extra - space for up to 2 characters produced in a loop. - (decode_coding_iso_2022): Abort if there isn't enough place in - charbuf for the composition carryover bytes. +2013-09-05 Dmitry Antipov -2011-04-21 Eli Zaretskii + * frame.c (check_minibuf_window): Update 'frame' with frame pointer. + * xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]: + Don't pass C integer to XINT (tiny fix for 2013-09-03 change). - * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of - aborting when %lld or %lll format is passed. - [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when - %llo or %llx format is passed. (Bug#8545) +2013-09-05 Stefan Monnier - * window.c (window_scroll_line_based): Use a marker instead of - simple variables to record original value of point. (Bug#7952) + * cmds.c (Fself_insert_command): Don't pass a non-integer to XINT. - * doprnt.c (doprnt): Fix the case where a multibyte sequence - produced by %s or %c overflows available buffer space. (Bug#8545) +2013-09-04 Paul Eggert -2011-04-28 Paul Eggert + * alloc.c (make_event_array): First arg is now ptrdiff_t, not int. + This fixes a type error on hosts where ptrdiff_t is wider than int. - * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545). - (SIZE_MAX): Move defn after all includes, as they might #define it. +2013-09-04 Stefan Monnier -2011-04-28 Juanma Barranquero + * keyboard.c (read_key_sequence_vs): New function. + (Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out + common code. - * w32.c (init_environment): Warn about defaulting HOME to C:\. + * callint.c (Fcall_interactively): Always return a vector for 'K'. -2011-04-28 Juanma Barranquero +2013-09-04 Paul Eggert - * keyboard.c (Qdelayed_warnings_hook): Define. - (command_loop_1): Run `delayed-warnings-hook' - if Vdelayed_warnings_list is non-nil. - (syms_of_keyboard) : DEFSYM it. - (syms_of_keyboard) : DEFVAR_LISP it. + Makefile improvements. + * Makefile.in (config.status): Don't use double-colon rules, as + they are not portable according to POSIX. Fix shell typo with `; + I guess this rule has never been tested? + (VCSWITNESS): New macro, to override any environment var. -2011-04-28 Eli Zaretskii +2013-09-04 Dmitry Antipov - * doprnt.c (doprnt): Don't return value smaller than the buffer - size if the message was truncated. (Bug#8545). + * xterm.h (struct x_display_info): Do not track X connection + fd separately because it is always available from Display. + * xterm.c (x_term_init, x_delete_terminal, x_delete_display): + Adjust users. -2011-04-28 Juanma Barranquero +2013-09-03 Dmitry Antipov + + * buffer.c (drop_overlay): + * fileio.c (restore_point_unwind): Prefer unchain_marker to + Fset_marker (X, Qnil, ...) (which is the same but a bit slower). + +2013-09-03 Dmitry Antipov + + * buffer.c (Fmake_overlay, Fmove_overlay): + * intervals.c (set_point_from_marker): + * print.c (PRINTPREPARE): Prefer signal_error + to plain error and report unsuitable marker too. + +2013-09-03 Dmitry Antipov + + * xterm.h (struct scroll_bar): Prefer int to Lisp_Object + for 'dragging' member. + (struct x_output): Remove set-but-unused leftovers + 'left_before_move' and 'top_before_move'. + * gtkutil.c (xg_set_toolkit_scroll_bar_thumb): + * xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback) + (xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback) + (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create) + (x_scroll_bar_set_handle, XTset_vertical_scroll_bar) + (x_scroll_bar_handle_click, x_scroll_bar_note_movement) + (x_scroll_bar_report_motion, x_set_offset): Related users changed. + * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed. + +2013-09-03 Jan Djärv + + * nsfont.m (INVALID_GLYPH): New define. + (nsfont_encode_char): Use INVALID_GLYPH. + (ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138). + +2013-09-02 Dmitry Antipov + + * xterm.c (x_last_mouse_movement_time): Revert last change. + This code should use XDisplayMotionBufferSize to check display's + motion history first, and there are few other issues as well. + (x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent. + (handle_one_xevent): Adjust user. + +2013-09-02 Martin Rudalics + + * dispnew.c (Flast_nonminibuf_frame): Move from here ... + * frame.c (Flast_nonminibuf_frame): ... to here. + (check_minibuf_window): Don't abort if no window was found + (Bug#15247). + +2013-09-02 Dmitry Antipov + + Use XGetMotionEvents to ask the last mouse motion time from X server. + * xterm.c (X_MOTION_HISTORY): Default to 1. + (x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function. + (x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version. + (note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]: + Ifdef away legacy code. + (XTmouse_position, x_scroll_bar_report_motion): + Use x_last_mouse_movement_time. + (handle_one_xevent): Use event.xunmap and not event.xmap when handling + UnmapNotify event. + +2013-09-02 Dmitry Antipov + + * msdos.c (last_mouse_window): Move to... + (dos_rawgetc): ...this function and adjust comment. + * nsterm.m (last_window): Rename to last_mouse_window, move to... + (mouseMoved): ...this function and adjust comment. + * w32term.c (last_window): Likewise with... + (w32_read_socket): ...this function. + * xterm.c (last_window): Likewise with... + (handle_one_xevent): ...this function. + +2013-09-02 Dmitry Antipov + + * window.h (Vmouse_window, Vmouse_event): Remove the leftovers. + * xterm.c (toplevel): Drop obsolete comment and move compose_status... + (handle_one_xevent): ...to here. + (STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op + otherwise. + +2013-09-02 Dmitry Antipov + + * msdos.c (IT_set_terminal_window): Remove no-op. + (initialize_msdos_display): Adjust terminal setup. + * w32console.c (w32con_set_terminal_window): Remove no-op. + (initialize_w32_display): Adjust terminal setup. + * w32term.c (w32_set_terminal_window): Remove no-op. + (w32_create_terminal): Adjust terminal setup. + * xterm.c (XTset_terminal_window): Remove no-op. + (x_create_terminal): Adjust terminal setup. + +2013-09-01 Dmitry Antipov + + * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes): + Remove no-ops. + (ns_create_terminal): Adjust terminal setup. + * w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes): + Remove no-ops. + (w32_create_terminal): Adjust terminal setup. + * xterm.c (XTset_terminal_modes, XTreset_terminal_modes): + Remove no-ops. + (x_create_terminal): Adjust terminal setup. + +2013-09-01 Dmitry Antipov + + * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent. + (CLIP_TEXT_POS_FROM_MARKER): New macro. + * dispnew.c (buffer_posn_from_coords): + * window.c (Fwindow_end, displayed_window_lines): + * xdisp.c (redisplay_mode_lines): Use it. + +2013-09-01 Jan Djärv + + * fontset.c (face_for_char): Check char in the current face font first + if HAVE_NS (Bug#15138). + +2013-08-31 Martin Rudalics + + * window.c (temp_output_buffer_show): Make sure window returned + by display_buffer is live (Bug#15213). + +2013-08-30 Dmitry Antipov + + Minor cleanup to avoid forward declarations. + * coding.h (struct ccl_spec): Remove forward declaration. + * composite.h (toplevel): Include font.h. + (struct composition_it, struct face, struct font_metrics): + Remove forward declaration. + * dispextern.h (struct image, struct atimer): Likewise. + * emacsgtkfixed.h (struct frame): Likewise. + * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h. + * font.h (struct font_driver, struct font, struct glyph_string) + (struct face): Remove forward declaration. + * fontset.h (struct face, struct font): Likewise. + * frame.h (toplevel): Style cleanup. + (enum output_method): Move to... + * termhooks.h (enum output_method): ...here. + (struct glyph, struct frame, struct ns_display_info) + (struct x_display_info, struct w32_display_info): + Remove forward declaration. + * xterm.h (toplevel): Include termhooks.h. + (struct font, struct window, struct glyph_matrix, struct frame) + (struct input_event, struct face, struct image): Remove forward + declaration. + * gtkutil.h (struct _widget_value): Likewise. + * keyboard.h (toplevel): Include termhooks.h. + (struct input_event): Remove forward declaration. + +2013-08-29 Dmitry Antipov + + * intervals.c (set_point_from_marker): New function. + * editfns.c (Fgoto_char): + * process.c (Finternal_default_process_filter): + * window.c (select_window_1): Use it. + * buffer.h (set_point_from_marker): Add prototype. + +2013-08-29 Eli Zaretskii + + * w32.c (term_winsock): Call release_listen_threads before calling + WSACleanup. + (_sys_wait_accept): Wait for accept event in a loop with a finite + timeout, instead of waiting indefinitely. Will hopefully avoid + hanging during exit because WSACleanup deadlocks waiting for the + event object to be released. (Bug#14333) + + * w32proc.c (release_listen_threads): New function, signals all + the reader threads that listen for connections to stop waiting. + + * w32.h (release_listen_threads): Add prototype. + +2013-08-29 Dmitry Antipov + + * alloc.c (Fmake_marker, build_marker): Zero need_adjustment + field of new marker (for sanity and safety). + * lisp.h (XSETMARKER): Remove unused macro (it doesn't work + anyway because XMISCTYPE is a function and can't be an lvalue). + +2013-08-29 Dmitry Antipov + + * xterm.c (x_clear_area): Lost 7th arg because it is always False. + (x_after_update_window_line, x_scroll_bar_create): + (x_scroll_bar_set_handle, XTset_vertical_scroll_bar): + (handle_one_xevent, x_clear_frame_area): + * gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos): + * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users. + * xterm.h (x_clear_area): Adjust prototype. + +2013-08-29 Dmitry Antipov + + Hook scanning and indentation functions to find_newline. This helps + to avoid duplicated code and renders more respect to newline cache. + * lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT. + * cmds.c (Fforward_line): + * indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p): + Use find_newline and avoid unnecessary point movements. + * search.c (scan_newline): Implement on top of find_newline. + +2013-08-28 Stefan Monnier + + * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically + scoped code (bug#11258). + +2013-08-28 Davor Cubranic (tiny change) + + * nsterm.m (last_window): New variable. + (EV_TRAILER2): New macro. + (EV_TRAILER): Call EV_TRAILER2. + (mouseMoved:): Add support for mouse-autoselect-window + on nextstep (Bug#6888). + +2013-08-28 Andreas Schwab + + * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P) + (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR): + Remove unused macro definitions. + (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE) + (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA): + Only define if emacs. + +2013-08-28 Dmitry Antipov + + Prefer enum glyph_row_area to int where appropriate. + * dispextern.h (enum glyph_row_area): Add ANY_AREA member. + Fix comment. + (window_box, window_box_width, window_box_left, window_box_left_offset) + (window_box_right, window_box_right_offset): Adjust prototypes. + * xdisp.c (window_box, window_box_width, window_box_left) + (window_box_left_offset, window_box_right, window_box_right_offset): + Use enum glyph_row_area. Adjust users and tweak comment where needed. + (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA. + * nsterm.m (ns_clip_to_row): + * w32term.c (w32_clip_to_row): + * xterm.c (x_clip_to_row): Likewise. + +2013-08-28 Dmitry Antipov + + * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) + (Fprevious_overlay_change): Fast path for buffer with no overlays. + +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + +2013-08-28 Dmitry Antipov + + Redesign redisplay interface to drop global output_cursor. + * dispextern.h (struct redisplay_interface): Remove cursor_to member. + (toplevel): Remove declaration of output_cursor. + (set_output_cursor, x_cursor_to): Remove prototype. + * window.h (struct window): New member output_cursor. + (output_cursor_to): New function to replace RIF member. + * dispnew.c (redraw_overlapped_rows, update_marginal_area) + (update_text_area, set_window_cursor_after_update): Use it. + * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove. + (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line): + * nsterm.m (ns_update_window_begin, ns_update_window_end): + * w32term.c (x_update_window_begin, x_update_window_end): + * xterm.c (x_update_window_begin, x_update_window_end): + Adjust to use per-window output cursor. + +2013-08-27 Paul Eggert + + Simplify SELECT_TYPE-related code. + Like EMACS_TIME, this portability layer is no longer needed, since + Emacs has been using fd_set as a portability layer for some time. + * sysselect.h (FD_SETSIZE): Rename from MAXDESC. All uses changed. + (SELECT_TYPE): Remove. All uses changed to fd_set. + (fd_set) [!FD_SET]: New typedef. + + 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. + * atimer.h, buffer.h, dispextern.h, xgselect.h: + Include rather than "systime.h"; that's all that's needed now. + * dispnew.c: Include rather than "systime.h"; + that's all that's needed now. + * 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. + * xgselect.c: Include , since our .h files don't. + +2013-08-27 Dmitry Antipov + + * xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:) + * nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE): + Remove the leftovers. + * gtkutil.c (toplevel): Do not declare Qxft but include + font.h to do so. + * image.c (toplevel): Do not declare Vlibrary_cache because + it's already done in lisp.h. + +2013-08-27 Dmitry Antipov + + * lisp.h (Mouse_HLInfo): Move from here... + * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h. + (reset_mouse_highlight): New function. + * msdos.c (dos_set_window_size, IT_update_begin) + (internal_terminal_init): + * nsterm.m (ns_update_window_end, x_free_frame_resources) + (ns_initialize_display_info): + * w32console.c (initialize_w32_display): + * w32term.c (x_update_window_end, x_free_frame_resources) + (w32_initialize_display_info): + * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init): + * window.c (Fdelete_other_windows_internal): + * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it. + * termchar.h (toplevel): + * xterm.h (toplevel): Include dispextern.h. + +2013-08-26 Paul Eggert - * w32fns.c (Fx_change_window_property, Fx_delete_window_property) - (Fx_window_property): #if-0 the whole functions, not just the bodies. - -2011-04-27 Paul Eggert - - * doprnt.c (doprnt): Support "ll" length modifier, for long long. - -2011-04-27 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - -2011-04-27 Eli Zaretskii - - Improve `doprnt' and its usage. (Bug#8545) - * doprnt.c (doprnt): Make sure `format' is never accessed beyond - `format_end'. Remove support for %l as a conversion specifier. - Don't use xrealloc. Improve diagnostics when the %l size modifier - is used. Update the commentary. - - * eval.c (verror): Simplify calculation of size_t. - - * coding.c (Ffind_operation_coding_system): Fix diagnostic error - messages. - -2011-04-27 Yoshiaki Kasahara (tiny change) - - * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing - change. - -2011-04-27 Paul Eggert - - * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF. - This makes this file independent of the recent pseudovector change. - -2011-04-26 Paul Eggert - - * keyboard.c (handle_user_signal): Fix pointer signedness problem. - - * gnutls.c (emacs_gnutls_handle_error): Remove unused local. - (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *. - Remove unused local. - (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0. - - * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546) - GCC 4.6.0 optimizes based on type-based alias analysis. - For example, if b is of type struct buffer * and v of type struct - Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size - != &v->size, and therefore "v->size = 1; b->size = 2; return - v->size;" must therefore return 1. This assumption is incorrect - for Emacs, since it type-puns struct Lisp_Vector * with many other - types. To fix this problem, this patch adds a new type struct - vectorlike_header that documents the constraints on layout of vectors - and pseudovectors, and helps optimizing compilers not get fooled - by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE - XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons. - * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of - the size member. - (XSETPVECTYPE): Rewrite in terms of new macro. - (XSETPVECTYPESIZE): New macro, specifying both type and size. - This is a bit clearer, and further avoids the possibility of - undesirable aliasing. - (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size. - (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR. - (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE, - since Lisp_Subr is a special case (no "next" field). - (ASIZE): Now uses header.size rather than size. - All previous uses of XVECTOR (foo)->size replaced to use this macro, - to avoid the hassle of writing XVECTOR (foo)->header.size. - (struct vectorlike_header): New type. - (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the - object, to help avoid aliasing. - (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP. - (SUBRP): Likewise, since Lisp_Subr is a special case. - * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table): - (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector): - (struct Lisp_Hash_Table): Combine first two members into a single - struct vectorlike_header member. All uses of "size" and "next" members - changed to be "header.size" and "header.next". - * buffer.h (struct buffer): Likewise. - * font.h (struct font_spec, struct font_entity, struct font): Likewise. - * frame.h (struct frame): Likewise. - * process.h (struct Lisp_Process): Likewise. - * termhooks.h (struct terminal): Likewise. - * window.c (struct save_window_data, struct saved_window): Likewise. - * window.h (struct window): Likewise. - * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector): - Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems. - * buffer.c (init_buffer_once): Likewise. - * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a - special case. - * process.c (Fformat_network_address): Use local var for size, - for brevity. - - * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR. - - Make the Lisp reader and string-to-float more consistent (Bug#8525) - * data.c (atof): Remove decl; no longer used or needed. - (digit_to_number): Move to lread.c. - (Fstring_to_number): Use new string_to_number function, to be - consistent with how the Lisp reader treats infinities and NaNs. - Do not assume that floating-point numbers represent EMACS_INT - without losing information; this is not true on most 64-bit hosts. - Avoid double-rounding errors, by insisting on integers when - parsing non-base-10 numbers, as the documentation specifies. - * lisp.h (string_to_number): New decl, replacing ... - (isfloat_string): Remove. - * lread.c: Include , for uintmax_t and strtoumax. - (read1): Do not accept +. and -. as integers; this - appears to have been a coding error. Similarly, do not accept - strings like +-1e0 as floating point numbers. Do not report - overflow for integer overflows unless the base is not 10 which - means we have no simple and reliable way to continue. - Break out the floating-point parsing into a new - function string_to_number, so that Fstring_to_number parses - floating point numbers consistently with the Lisp reader. - (digit_to_number): Move here from data.c. Make it static inline. - (E_CHAR, EXP_INT): Remove, replacing with ... - (E_EXP): New macro, to solve the "1.0e+" problem mentioned below. - (string_to_number): New function, replacing isfloat_string. - This function checks for valid syntax and produces the resulting - Lisp float number too. Rework it so that string-to-number - no longer mishandles examples like "1.0e+". Use strtoumax, - so that overflow for non-base-10 numbers is reported only when - there's no portable and simple way to convert to floating point. - - * textprop.c (set_text_properties_1): Rewrite for clarity, - and to avoid GCC warning about integer overflow. - - * intervals.h (struct interval): Use EMACS_INT for members - where EMACS_UINT might cause problems. See - . - (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed. - * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT. - All uses changed. - (offset_intervals): Tell GCC not to worry about length overflow - when negating a negative length. - - * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static. - (overrun_check_free): Likewise. - - * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check - in the common case where SDATA_DATA_OFFSET is a multiple of Emacs - word size. - - * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10. - (gnutls_make_error): Rename local to avoid shadowing. - (gnutls_emacs_global_deinit): ifdef out; not used. - (Fgnutls_boot): Use const for pointer to readonly storage. - Comment out unused local. Fix pointer signedness problems. - - * lread.c (openp): Don't stuff size_t into an 'int'. - Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning - about possible signed overflow. - - * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10. - (GDK_KEY_g): Don't define if already defined. - (xg_prepare_tooltip): Avoid pointer signedness problem. - (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts. - - * process.c (Fnetwork_interface_info): Avoid left-shift undefined - behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts. - - * xfns.c (Fx_window_property): Simplify a bit, - to make a bit faster and to avoid GCC 4.6.0 warning. - * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise. - - * fns.c (internal_equal): Don't assume size_t fits in int. - - * alloc.c (compact_small_strings): Tighten assertion a little. - - Replace pEd with more-general pI, and fix some printf arg casts. - * lisp.h (pI): New macro, generalizing old pEd macro to other - conversion specifiers. For example, use "...%"pI"d..." rather - than "...%"pEd"...". - (pEd): Remove. All uses replaced with similar uses of pI. - * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise. - * alloc.c (check_pure_size): Don't overflow by converting size to int. - * bidi.c (bidi_dump_cached_states): Use pI to avoid cast. - * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort. - * dbusbind.c (xd_append_arg): Use pI to avoid cast. - (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise. - * font.c (font_unparse_xlfd): Avoid potential buffer overrun on - 64-bit hosts. - (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts. - * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts. - * print.c (safe_debug_print, print_object): Likewise. - (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT - to int. - Use pI instead of if-then-else-abort. Use %p to avoid casts, - avoiding the 0 flag, which is not portable. - * process.c (Fmake_network_process): Use pI to avoid cast. - * region-cache.c (pp_cache): Likewise. - * xdisp.c (decode_mode_spec): Likewise. - * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined - behavior on 64-bit hosts with printf arg. - * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag. - (x_stop_queuing_selection_requests): Likewise. - (x_get_window_property): Don't truncate byte count to an 'int' - when tracing. - - * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right - here, since it parses constructs like leading '-' and spaces, - which are not wanted; and it overflows with large numbers. - Instead, simply match F[0-9]+, which is what is wanted anyway. - - * alloc.c: Remove unportable assumptions about struct layout. - (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros. - (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data): - (allocate_vectorlike, make_pure_vector): Use the new macros, - plus offsetof, to remove unportable assumptions about struct layout. - These assumptions hold on all porting targets that I know of, but - they are not guaranteed, they're easy to remove, and removing them - makes further changes easier. - - * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks". - This doesn't fix a bug but makes the code clearer. - (string_overrun_cookie): Now const. Use initializers that - don't formally overflow signed char, to avoid warnings. - (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that - can cause Emacs to crash when string overrun checking is enabled. - (allocate_buffer): Don't assume sizeof (struct buffer) is a - multiple of sizeof (EMACS_INT); it need not be, if - alignof(EMACS_INT) < sizeof (EMACS_INT). - (check_sblock, check_string_bytes, check_string_free_list): Protoize. - -2011-04-26 Juanma Barranquero - - * keyboard.c (QCrtl): Rename from Qrtl. All uses changed. - -2011-04-26 Teodor Zlatanov - - * gnutls.c (emacs_gnutls_handshake): Return an error if we're not - supposed to be handshaking. (Bug#8556) - Reported by Paul Eggert . - -2011-04-26 Daniel Colascione - - * lisp.h (Qdebug): List symbol. - * eval.c (Qdebug): Restore global linkage. - * keyboard.c (debug-on-event): New variable. - (handle_user_signal): Break into debugger when debug-on-event - matches the current signal symbol. - -2011-04-25 Dan Nicolaescu - - * alloc.c (check_sblock, check_string_bytes) - (check_string_free_list): Convert to standard C. - -2011-04-25 Teodor Zlatanov - - * w32.c (emacs_gnutls_push): Fix typo. - -2011-04-25 Eli Zaretskii - - * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about - "cast to pointer from integer of different size". - - Improve doprnt and its use in verror. (Bug#8545) - * doprnt.c (doprnt): Document the set of format control sequences - supported by the function. Use SAFE_ALLOCA instead of always - using `alloca'. - - * eval.c (verror): Don't limit the buffer size at size_max-1, that - is one byte too soon. Don't use xrealloc; instead xfree and - xmalloc anew. - -2011-04-24 Teodor Zlatanov - - * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the - callbacks stage. - - * gnutls.c: Renamed global_initialized to - gnutls_global_initialized. Added internals for the - :verify-hostname-error, :verify-error, and :verify-flags - parameters of `gnutls-boot' and documented those parameters in the - docstring. Start callback support. - (emacs_gnutls_handshake): Add Woe32 support. Retry handshake - unless a fatal error occurred. Call gnutls_alert_send_appropriate - on error. Return error code. - (emacs_gnutls_write): Call emacs_gnutls_handle_error. - (emacs_gnutls_read): Likewise. - (Fgnutls_boot): Return handshake error code. - (emacs_gnutls_handle_error): New function. - (wsaerror_to_errno): Likewise. - - * w32.h (emacs_gnutls_pull): Add prototype. - (emacs_gnutls_push): Likewise. + Fix minor problems found by static checking. + * image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static. + (expect): Avoid nested-if warning. + (x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning. + * nsmenu.m (fillWithWidgetValue:): Avoid type warning. + * nsterm.h, nsterm.m (ns_select): + * xgselect.c, xgselect.h (xg_select): + Adjust signature to better match pselect's. + * nsterm.m (ns_select): + Don't set *TIMEOUT, since pselect doesn't. + * regex.c (whitespace_regexp): Now const_re_char *, to avoid + diagnostic about assigning const char * to it. + * xfaces.c (x_display_info) [HAVE_NS]: Remove; unused. + +2013-08-26 Stefan Monnier + + * lread.c (substitute_object_recurse): Handle hash-tables as well + (bug#15190). + +2013-08-26 Paul Eggert + + Fix unlikely core dump in init_tty, and simplify terminfo case. + * term.c (init_tty) [TERMINFO]: Fix check for buffer overrun. + The old version incorrectly dumped core if malloc returned a + buffer containing only non-NUL bytes. + (init_tty): Do not allocate or free termcap buffers; the + struct does that for us now. + * termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant. + (struct tty_display_info): Define members termcap_term_buffer and + termcap_strings_buffer only if !TERMINFO, since terminfo doesn't + use them. Allocate them directly in struct rather than indirectly + via a pointer, to simplify init_tty. + + * frame.c (check_minibuf_window): Initialize 'window' properly, + so that Emacs reliably aborts later if 'window' is not initialized. + +2013-08-26 Jan Djärv + + * gtkutil.c (xg_initialize): Set gtk-menu-bar-accel to "" instead + of VoidSymbol (Bug#15154). + +2013-08-26 Dmitry Antipov + + * lisp.h (Mouse_HLInfo): Drop set-but-unused members + mouse_face_beg_y and mouse_face_end_y. + * xdisp.c (note_tool_bar_highlight, mouse_face_from_buffer_pos) + (mouse_face_from_string_pos, note_mode_line_or_margin_highlight): + Adjust users and update comment where appropriate. + +2013-08-26 Martin Rudalics + + * frame.c (check_minibuf_window): New function. + (delete_frame, Fmake_frame_invisible, Ficonify_frame): + Call check_minibuf_window (Bug#15183). - * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32. - (emacs_gnutls_push): Likewise. +2013-08-26 Dmitry Antipov -2011-04-24 Claudio Bley (tiny change) + * window.h (struct window): Replace last_cursor with last_cursor_vpos + because this is the only last cursor data we need to keep and consult. + * window.c (replace_window, set_window_buffer, Fsplit_window_internal): + * xdisp.c (mark_window_display_accurate_1, try_cursor_movement): + Adjust users. - * process.c (wait_reading_process_output): Check if GnuTLS - buffered some data internally if no FDs are set for TLS - connections. +2013-08-26 Dmitry Antipov - * makefile.w32-in (OBJ2): Add gnutls.$(O). - (LIBS): Link to USER_LIBS. - ($(BLD)/gnutls.$(0)): New target. + Fix recovering from possible decompression error. + Since insert_from_gap doesn't always move point, we can't use PT as + the position where the partially decompressed data ends, and + should count how many bytes was produced so far. + * decompress.c (struct decompress_unwind_data): Add nbytes member. + (unwind_decompress): Really delete partially uncompressed data. + (Fzlib_decompress_region): Take decompressed data size into account. -2011-04-24 Eli Zaretskii +2013-08-26 Dmitry Antipov - * xdisp.c (handle_single_display_spec): Rename the - display_replaced_before_p argument into display_replaced_p, to - make it consistent with the commentary. Fix typos in the - commentary. + * syntax.c (init_syntax_once): Adjust comment and do an early + initialization of Qchar_table_extra_slots just once... + * casetab.c (init_casetab_once): + * category.c (init_category_once): + * character.c (syms_of_character): + * coding.c (syms_of_coding): + * xdisp.c (syms_of_xdisp): ...and omit it here. + +2013-08-24 Eli Zaretskii + + * xdisp.c (get_next_display_element): Don't apply to characters + from a display vector the logic of setting it->end_of_box_run_p + suitable for characters from a buffer. (Bug#15175) + + * w32.c (fdutimens): Call 'utime', which is implemented on w32.c + to handle directories, rather than '_utime' which doesn't. + (Bug#15176) + +2013-08-24 Jan Djärv + + * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized + or fullscreen (Bug#14627). + +2013-08-24 Paul Eggert + + System-dependent integer overflow fixes. + * process.c (Fset_process_window_size): Signal an error if + the window size is outside the range supported by the lower level. + * sysdep.c (set_window_size): Return negative on error, + nonnegative on success, rather than -1, 0, 1 on not in system, + failure, success. This is simpler. Caller changed. + (serial_configure): Remove unnecessary initialization of local. + (procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory + size fits in unsigned long; this isn't true on some 32-bit hosts. + Avoid buffer overrun if some future version of /proc/meminfo has a + variable name longer than 20 bytes. + (system_process_attributes) [__FreeBSD__]: + Don't assume hw.availpages fits in 'int'. + +2013-08-23 Paul Eggert + + Don't let very long directory names overrun the stack. + Fix some related minor problems involving "//", vfork. + * callproc.c (encode_current_directory): New function. + (call_process): Don't append "/"; not needed. + * fileio.c (file_name_as_directory_slop): New constant. + (file_name_as_directory): Allow SRC to be longer than SRCLEN; + this can save the caller having to alloca. + (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name): + Use SAFE_ALLOCA, not alloca. + (directory_file_name, Fexpand_file_name): Leave leading "//" + alone, since it can be special even on POSIX platforms. + * callproc.c (call_process): + * process.c (Fformat_network_address): + * sysdep.c (sys_subshell): + Use encode_current_directory rather than rolling our own. + (create_process): No need to encode directory; caller does that now. + * process.h (encode_current_directory): New decl. + * sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers. + Rework to avoid 'goto xyzzy;'. + +2013-08-23 Eli Zaretskii + + * xdisp.c (handle_face_prop): If the default face was remapped use + the remapped face for strings from prefix properties. (Bug#15155) + +2013-08-23 Dmitry Antipov + + Minor cleanup for redisplay interface and few related functions. + * frame.h (enum text_cursor_kinds): Move from here... + * dispextern.h (enum text_cursor_kinds): ...to here. + (toplevel): Drop unnecessary declarations. + (struct redisplay_interface): Use bool and enum text_cursor_kinds + in update_window_end_hook and draw_window_cursor functions. + (display_and_set_cursor, x_update_cursor): Adjust prototypes. + * nsterm.m (ns_update_window_end, ns_draw_window_cursor): + * w32term.c (x_update_window_end, w32_draw_window_cursor): + * xterm.c (x_update_window_end, x_draw_window_cursor): + * xdisp.c (display_and_set_cursor, update_window_cursor) + (update_cursor_in_window_tree, x_update_cursor): Use bool and + enum text_cursor_kinds where appropriate. + +2013-08-23 Dmitry Antipov + + Redesign redisplay interface to drop updated_row and updated_area. + * dispextern.h (updated_row, updated_area): Remove declaration. + (struct redisplay_interface): Pass glyph row and row area parameters + to write_glyphs, insert_glyphs and clear_end_of_line functions. + (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line): + Adjust prototypes. + * dispnew.c (updated_row, updated_area): Remove. + (redraw_overlapped_rows, update_window_line): Adjust user. + (update_marginal_area, update_text_area): Likewise. Pass updated row + as a parameter. Prefer enum glyph_row_area to int where appropriate. + * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line): + Adjust users. - * textprop.c (syms_of_textprop): Remove dead code. - (copy_text_properties): Delete obsolete commentary about an - interface that was deleted long ago. Fix typos in the description - of arguments. +2013-08-22 Paul Eggert - * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list - to changes in oldXMenu/XMenu.h from 2011-04-16. - : Constify. - (IT_menu_make_room): menu->help_text is now `const char **'; - adjust. + * process.c (flush_pending_output): Remove stub. + All uses removed. - * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes - to changes in oldXMenu/XMenu.h from 2011-04-16. - (struct XMenu): Declare `help_text' `const char **'. +2013-08-21 Paul Eggert - * xfaces.c : Make extern again. + * callproc.c: Fix race that killed background processes (Bug#15144). + (call_process): New arg TEMPFILE_INDEX. Callers changed. + Record deleted process-id in critical section, not afterwards. + Don't mistakenly kill process created by a call-process invocation + that discards output and does not wait. - * syntax.c: Include sys/types.h before including regex.h, as - required by POSIX. +2013-08-21 Dmitry Antipov - * doc.c (get_doc_string): Improve the format passed to `error'. + Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE + and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES. + * alloc.c (toplevel): Remove unnecessary nested #if...#endif. + (mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort + to shut up compiler in mark_object. + (dump_zombies): Convert to global and add EXTERNALLY_VISIBLE. - * doprnt.c (doprnt): Improve commentary. +2013-08-21 Paul Eggert - * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal. + * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag. + We can't portably rely on PTY_OPEN doing that, even if + it calls posix_openpt with O_CLOEXEC. - * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan - them with etags. +2013-08-20 Kenichi Handa - * makefile.w32-in (globals.h): Add a dummy recipe, to make any - changes in globals.h immediately force recompilation. - (TAGS): Depend on $(CURDIR)/m/intel386.h and - $(CURDIR)/s/ms-w32.h. - (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h. + * character.c (string_char): Improve commentary. - * character.c (Fchar_direction): Function deleted. - (syms_of_character): Don't defsubr it. - : Deleted. +2013-08-20 Paul Eggert -2011-04-23 Eli Zaretskii + * image.c (SIGNATURE_DIGESTSIZE): Remove. + (struct animation_cache): Make signature a flexible array member. + All uses changed. This is a tad slower but may insulate us better + from future changes to ImageMagick. - Fix doprnt so it could be used again safely in `verror'. (Bug#8435) - * doprnt.c: Include limits.h. - (SIZE_MAX): New macro. - (doprnt): Return a size_t value. 2nd arg is now size_t. - Many local variables are now size_t instead of int or unsigned. - Improve overflow protection. Support `l' modifier for integer - conversions. Support %l conversion. Don't assume an EMACS_INT - argument for integer conversions and for %c. +2013-08-19 Paul Eggert - * lisp.h (doprnt): Restore prototype. + * image.c: Shrink memory needed for animation cache. + (SIGNATURE_DIGESTSIZE): New constant. + (struct animation_cache): Make 'signature' a fixed size array of bytes. + (imagemagick_create_cache): Copy the signature. This saves + several KB of memory that ImageMagick wastes per signature. + Don't bother updating the update_time, as the caller does that now. + (imagemagick_prune_animation_cache): Don't destroy the signature, as + it's a fixed size struct member now. + (imagemagick_get_animation_cache): Always destroy the signature, + as it's now imagemagick_create_cache's responsibility to copy it. + Avoid duplicate calls to strcmp and to imagemagick_create_cache, + and use memcmp rather than strcmp. + eassert that ImageMagick returns a signature of the specified length. - * makefile.w32-in ($(BLD)/callint.$(O)): Depend on - $(SRC)/character.h. +2013-08-19 Lars Magne Ingebrigtsen - * Makefile.in (base_obj): Add back doprnt.o. + * image.c (imagemagick_get_animation_cache): Don't segfault on + each invocation. + (imagemagick_get_animation_cache): Revert to previous definition + so that it actually works. But keep the memory leak fix. + (imagemagick_get_animation_cache): Fix memory leak. - * deps.mk (doprnt.o): Add back prerequisites. - (callint.o): Depend on character.h. +2013-08-19 Paul Eggert - * eval.c (internal_lisp_condition_case): Include the handler - representation in the error message. - (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug - when breaking from the loop. + * image.c: Fix animation cache signature memory leak. + Fix some other minor performance problems while we're at it. + (imagemagick_create_cache): Clear just the members that + need clearing. Don't set update_time, as caller does that now. + (imagemagick_prune_animation_cache, imagemagick_get_animation_cache): + Simplify by using pointer-to-pointer instead of a prev pointer. + (imagemagick_prune_animation_cache): Use make_emacs_time rather + than EMACS_TIME_FROM_DOUBLE, and DestroyString rather than free. + (imagemagick_get_animation_cache): Don't xstrdup the image signature; + it's already a copy. Free the signature probe unless it's cached. - * xdisp.c (vmessage): Call doprnt instead of vsnprintf. + * process.c (handle_child_signal): Fix crash; deleted pid (Bug#15106). + This was introduced by my 2013-08-12 fix for Bug#15035. - * callint.c (Fcall_interactively): When displaying error message - about invalid control letter, pass the character's codepoint, not - a pointer to its multibyte form. Improve display of the character - in octal and display also its hex code. +2013-08-19 Dmitry Antipov - * character.c (char_string): Use %x to display the (unsigned) - codepoint of an invalid character, to avoid displaying a bogus - negative value. + * image.c (imagemagick_create_cache, imagemagick_get_animation_cache) + (imagemagick_prune_animation_cache): Now static. - * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to - `error', not SYMBOL_NAME itself. +2013-08-18 Lars Magne Ingebrigtsen - * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for - character arguments to `error'. + * image.c (imagemagick_get_animation_cache): Don't segfault when + pruning all entries. - * charset.c (check_iso_charset_parameter): Fix incorrect argument - to `error' in error message about FINAL_CHAR argument. Make sure - FINAL_CHAR is a character, and use %c when it is passed as - argument to `error'. +2013-08-18 Ken Brown -2011-04-23 Eli Zaretskii + * sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger + static heap if ENABLE_CHECKING is defined. + (max_bss_sbrk_ptr): New variable. + (bss_sbrk): Use it. + (report_sheap_usage): Report maximum static heap usage instead of + ending static heap usage. - * s/ms-w32.h (localtime): Redirect to sys_localtime. +2013-08-17 Eli Zaretskii - * w32.c: Include . - (sys_localtime): New function. + * decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value + of zlib_initialized according to the results of calling + init_zlib_functions. -2011-04-23 Chong Yidong +2013-08-16 Lars Magne Ingebrigtsen - * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451). + * image.c: Implement an ImageMagick per-image cache. + (imagemagick_get_animation_cache): Fix a double-free error. + (imagemagick_load_image): Remove the ping_wand code, which only + apparently saved time on invalid animated images, and slowed down + everything else. Optimise for the common case. - * buffer.c (syms_of_buffer): Doc fix (Bug#6902). +2013-08-16 Xue Fuqiao -2011-04-23 Samuel Thibault (tiny change) + * buffer.c (syms_of_buffer) : Doc fix. - * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on - zombies (Bug#8467). + * editfns.c (insert_before_markers): Mention overlay in the doc string. -2011-04-19 Eli Zaretskii + * marker.c (set_marker): Remove documentation of undefined behavior. - * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of - gl_state.e_property when gl_state.object is Qt. +2013-08-15 Lars Magne Ingebrigtsen - * insdel.c (make_gap_larger): Remove limitation of buffer size - to <= INT_MAX. + * image.c (imagemagick_compute_animated_image): Animate correctly + when sub-images are smaller than the main image. + (imagemagick_compute_animated_image): Setting the iterator row to + zero is apparently not allowed. + (imagemagick_compute_animated_image): Allow images that say they + have sub-images that are bigger than the main image, but just crop + them. -2011-04-18 Chong Yidong +2013-08-15 Jan Djärv - * xdisp.c (lookup_glyphless_char_display) - (produce_glyphless_glyph): Handle cons cell entry in - glyphless-char-display. - (Vglyphless_char_display): Document it. + * nsmenu.m (menuWillOpen:): Fix preprocessor test (Bug#15001). - * term.c (produce_glyphless_glyph): Handle cons cell entry in - glyphless-char-display. +2013-08-15 Lars Magne Ingebrigtsen -2011-04-17 Chong Yidong + * image.c (imagemagick_compute_animated_image): Respect the GIF + disposal methods. - * xdisp.c (get_next_display_element): Remove unnecessary ifdefs. +2013-08-15 Ken Brown - * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions. + * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC. + * gmalloc.c (memalign) [CYGWIN]: Revert last change; it's not + needed. - * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing - definition for no-X builds. +2013-08-15 Paul Eggert -2011-04-16 Paul Eggert + Fix minor problems found by static checking. + * frame.c (delete_frame): + * xdisp.c (next_element_from_display_vector): + Avoid uninitialized local. + * image.c (imagemagick_compute_animated_image): Port to C89. + Prefer usual GNU indentation style for loops. + Be more careful about bizarrely large sizes, by using ptrdiff_t + instead of int. + +2013-08-15 Dmitry Antipov + + Fix infinite frame selection loop (Bug#15025). + * frame.c (delete_frame): Prefer fast ad-hoc loop to next_frame. + +2013-08-15 Eli Zaretskii + + * xdisp.c (compute_window_start_on_continuation_line): + When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines + to make sure we end up setting the window start at the leftmost + visible character of the display line. This avoids funky + horizontal shifting because the window start is not kept on the + same position. (Bug#15090) + (next_element_from_display_vector): Support 'box' face attribute + in the face definitions of a display vector. (Bug#15099) + +2013-08-15 Lars Magne Ingebrigtsen + + * image.c (imagemagick_compute_animated_image): Implement animated + images (bug#14700). + (imagemagick_compute_animated_image): Fix some compilation + warnings. Implement a very simple cache to make the animation + usable at all, but it should be replaced with a per-image cache. + +2013-08-15 Dmitry Antipov + + * lisp.h (FOR_EACH_ALIST_VALUE): New macro + to do `for' loops over alist values. + * buffer.h (FOR_EACH_BUFFER): + * process.c (FOR_EACH_PROCESS): Use it. + (handle_child_signal, status_notify, Fget_buffer_process) + (kill_buffer_processes): Use FOR_EACH_PROCESS. + +2013-08-15 Dmitry Antipov + + * term.c (get_named_tty, create_tty_output, tty_free_frame_resources) + (tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort. + * image.c (make_image_cache): For struct image_cache, prefer xmalloc + to xzalloc and so avoid redundant call to memset. + * xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo + members because it is allocated with xzalloc and so already zeroed. + +2013-08-14 Ken Brown + + * gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign + (Bug#15094). + +2013-08-14 Dmitry Antipov + + Utility function and macro to copy Lisp string to C string. + * lisp.h (xlispstrdupa): New macro. + (xlispstrdup): New prototype. + * alloc.c (xlispstrdup): New function. + * callint.c (Fcall_interactively): + * fileio.c (Ffile_name_directory, Fexpand_file_name) + (Fsubstitute_in_file_name): + * frame.c (Fmake_terminal_frame): Use xlispstrdupa. + * image.c (x_create_bitmap_from_file): + * w32term.c (w32_term_init): + * xterm.c (x_term_init): Use xlispstrdup. - Static checks with GCC 4.6.0 and non-default toolkits. +2013-08-14 Lars Magne Ingebrigtsen - * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl. + * image.c (imagemagick_load_image): Make animated pictures work. + There's still some problems with background color settings, though + (bug#14700). - * process.c (keyboard_bit_set): Define only if SIGIO. - (send_process_trap): Mark it with NO_RETURN if it doesn't return. - (send_process): Repair possible setjmp clobbering. + * decompress.c (unwind_decompress): Always restore point. - * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'. +2013-08-14 Xue Fuqiao - * eval.c: Include , for vsnprintf on non-GNU/Linux hosts. + * marker.c (set_marker): Reformat documentation. - * data.c (arith_error): Mark with NO_RETURN if it doesn't return. +2013-08-14 Paul Eggert - * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED): - Define only if needed. + * xdisp.c (cursor_type_changed): Now static. - * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier - by pacifying GCC about it. Maybe it's time to retire it? - * xfaces.c (USG, __TIMEVAL__): Likewise. + * image.c (imagemagick_filename_hint): New arg HINT_BUFFER. + Use changed. This avoids the need to call xmalloc and for the + caller to call xfree, and avoids memory leaks in some situations. - * dispextern.h (struct redisplay_interface): Rename param - to avoid shadowing. - * termhooks.h (struct terminal): Likewise. - * xterm.c (xembed_send_message): Likewise. +2013-08-14 Dmitry Antipov - * insdel.c (make_gap_smaller): Define only if - USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC. + * xdisp.c (adjust_window_ends): Move duplicated code to new function. + (try_window, try_window_reusing_current_matrix, try_window_id): Use it. + (redisplay_window): If window_end_valid is cleared due to non-zero + windows_or_buffers_changed, clear current_matrix_up_to_date_p and + so do not call to try_cursor_movement for that window. - * keyboard.c (read_char): Make a var volatile so longjmp won't clobber - it. +2013-08-14 Dmitry Antipov - * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used, - so that we aren't warned about unused symbols. + * window.h (struct window): Convert window_end_pos and + window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively. + (wset_window_end_pos, wset_window_end_vpos): Remove. + * dispnew.c (adjust_glyph_matrix): + * window.c (Fwindow_end, replace_window, set_window_buffer) + (make_window): + * xdisp.c (check_window_end, move_it_to, redisplay_internal) + (set_vertical_scroll_bar, redisplay_window, try_window) + (try_window_reusing_current_matrix, find_first_unchanged_at_end_row) + (try_window_id, decode_mode_spec, mouse_face_from_buffer_pos) + (note_mouse_highlight): Adjust users. + (try_cursor_movement): Likewise. Convert old precondition to eassert. + Add comment. - * xfns.c (Fx_file_dialog): Rename local to avoid shadowing. +2013-08-14 Dmitry Antipov - * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512). + Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit. + * image.c (imagemagick_filename_hint): Use `const char *' and + prefer SSDATA to SDATA to avoid warnings. - * xfns.c (x_real_positions): Mark locals as initialized. +2013-08-14 Dmitry Antipov - * xmenu.c (xmenu_show): Don't use uninitialized vars. + Cleanup window fringes, margins and scroll bars adjustments. + * window.c (set_window_fringes, set_window_margins) + (set_window_scroll_bars, apply_window_adjustment): New functions. + (set_window_buffer, Fset_window_margins, Fset_window_fringes) + (Fset_window_scroll_bars): Use them. - * xterm.c: Fix problems found by static analysis with other toolkits. - (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT. - (x_dispatch_event): Declare static if USE_GTK, and - define if USE_GTK || USE_X_TOOLKIT. - (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK. - * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT. - * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only - if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK. +2013-08-14 Dmitry Antipov - * xmenu.c (menu_help_callback): Pointer type fixes. - Use const pointers when pointing at readonly data. Avoid pointer - signedness clashes. - (FALSE): Remove unused macro. - (update_frame_menubar): Remove unused decl. + * window.h (struct window): Convert scroll_bar_width + from Lisp_Object to integer. Adjust comment. + (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS): + Adjust users. + * window.c (wset_scroll_bar_width): Remove. + (make_window): Initialize scroll_bar_width. + (Fsplit_window_internal): Use direct assignment. + (Fset_window_configuration, save_window_save): + Convert Lisp_Object to integer and back where appropriate. + (Fset_window_scroll_bars): Adjust user. Return t if any scroll + bar was actually changed, and mention this in docstring. - * xfns.c (Fx_hide_tip): Move locals to avoid shadowing. +2013-08-13 Paul Eggert - * menu.c (push_submenu_start, push_submenu_end): Do not define unless - USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI. - (single_menu_item): Rename local to avoid shadowing. + * decompress.c: Minor simplifications. + (Fzlib_decompress_region): Don't bother verifying + that avail_out <= UINT_MAX, as that was confusing. + Mention the restriction in a comment instead. + Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough. - * keyboard.c (make_lispy_event): Remove unused local var. +2013-08-13 Jan Djärv - * frame.c, frame.h (x_get_resource_string): Bring this back, but - only if HAVE_X_WINDOWS && !USE_X_TOOLKIT. + * nsmenu.m (x_activate_menubar): Check for OSX >= 10.5 + (trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5. - * bitmaps: Change bitmaps from unsigned char back to the X11 - compatible char. Avoid the old compiler warnings about - out-of-range initializers by using, for example, '\xab' rather - than 0xab. +2013-08-13 Lars Magne Ingebrigtsen - * xgselect.c (xgselect_initialize): Check vs interface - even if ! (defined (USE_GTK) || defined (HAVE_GCONF)). + * image.c (imagemagick_filename_hint): Check for errors in the + alist structure. - * xmenu.c (xmenu_show): Rename parm to avoid shadowing. +2013-08-13 Eli Zaretskii - * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers - to read-only memory. + * window.c (Fwindow_margins): Return nil when there's no marginal + area, as per the documented API. - * fns.c (vector): Remove; this old hack is no longer needed. + * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not + Fmake_vector, as scroll bar's struct members are not all Lisp + objects now. This avoids crashes in GC. - * xsmfns.c (create_client_leader_window): Rename shadowing arg. - Remove unused var. - (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define. + * w32term.h (struct scroll_bar): Convert fringe_extended_p to a + bool, so its address could be taken. - * xrdb.c (x_load_resources): Omit unused local. +2013-08-13 Lars Magne Ingebrigtsen - * xfns.c (free_frame_menubar, atof): Remove duplicate decls. - (x_window): Rename locals to avoid shadowing. - (USG): Use the kludged USG macro, to pacify gcc. + * image.c (imagemagick_filename_hint): New function to possibly + apply `image-content-type-suffixes'. + (imagemagick_load_image): Use it. - * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused. - (x_term_init): Remove local to avoid shadowing. +2013-08-13 Eli Zaretskii - * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl. + * decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil + if loading zlib failed. - * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if - USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then. +2013-08-13 Jan Djärv -2011-04-16 Eli Zaretskii + * nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by + 2013-08-13 checkin below. Change bool to BOOL, rule is: + All Obj-C code uses BOOL, except for interfaces callable from C. - * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'. + * nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086). - Fix regex.c, syntax.c and friends for buffers > 2GB. - * syntax.h (struct gl_state_s): Declare character position members - EMACS_INT. +2013-08-13 Dmitry Antipov - * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT. + * window.h (WINDOW_FRINGE_EXTENDED_P): New macro. + * nsterm.m (ns_set_vertical_scroll_bar): Use it. Use convenient + bool instead of BOOL. + * w32term.h (struct scroll_bar): Convert fringe_extended_p + from Lisp_Object to bitfield. Adjust comment. + * w32term.c (x_scroll_bar_create): Adjust user. + Use WINDOW_FRINGE_EXTENDED_P and bool for boolean. + * xterm.c (XTset_vertical_scroll_bar): Likewise. + Use bool for boolean. + * xterm.h (struct scroll_bar): Prefer commonly used `unsigned' + to `unsigned int' when defining a bitfield. - * textprop.c (verify_interval_modification, interval_of): - Declare arguments EMACS_INT. +2013-08-13 Paul Eggert - * intervals.c (adjust_intervals_for_insertion): Declare arguments - EMACS_INT. + * decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'. - * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'. +2013-08-13 Dmitry Antipov - * indent.c (Fvertical_motion): Local variable it_start is now - EMACS_INT. + * window.h (struct window): Convert left_margin_cols and + right_margin_cols from Lisp_Objects to integers. Adjust comment. + (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS) + (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH): + Adjust users. + * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int. + Adjust comment. + (showing_window_margins_p, update_window_line, update_frame_1): + * fringe.c (draw_fringe_bitmap_1): + * xdisp.c (window_box_width): Adjust users. + * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove. + (adjust_window_margins, set_window_buffer, Fsplit_window_internal): + Use direct assignment. + (Fset_window_configuration, save_window_save, Fwindow_margins): + Convert Lisp_Object to integer and back where appropriate. + (Fset_window_margins): Adjust user. Return t if any margin + was actually changed, and mention this in docstring. + +2013-08-13 Xue Fuqiao + + * syntax.c (forward_word): + * cmds.c (forward_char, backward_char): Mention the optional argument. + +2013-08-13 Dmitry Antipov + + * window.h (struct window): Convert left_fringe_width + and right_fringe_width from Lisp_Objects to integers. + Adjust comment. + (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH) + (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users. + * window.c (wset_left_fringe_width, wset_right_fringe_width): + Remove. + (make_window): Initialize new integer fields to -1. + (Fsplit_window_internal): Use direct assignment. + (Fset_window_configuration, save_window_save): + Convert Lisp_Object to integer and back where appropriate. + (Fset_window_fringes): Adjust user. Return t if any fringe + was actually changed, and mention this in docstring. - * regex.c (re_match, re_match_2, re_match_2_internal) - (bcmp_translate, regcomp, regexec, print_double_string) - (group_in_compile_stack, re_search, re_search_2, regex_compile) - (re_compile_pattern, re_exec): Declare arguments and local - variables `size_t' and `ssize_t' and return values `regoff_t', as - appropriate. - (POP_FAILURE_REG_OR_COUNT) : Declare `long'. - (CHECK_INFINITE_LOOP) : Declare `ssize_t'. - : `size' and `avail' are now `size_t'. +2013-08-13 Dmitry Antipov - * regex.h : Use ssize_t, not int. - (re_search, re_search_2, re_match, re_match_2): Arguments that - specify buffer/string position and length are now ssize_t and - size_t. Return type is regoff_t. + * keyboard.c (Fdiscard_input): Do not increment update_mode_lines. + * nsfns.m (x_set_cursor_type): + * w32fns.c (x_set_cursor_type): + * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here... + * xdisp.c (set_frame_cursor_types): ...but in common code. -2011-04-16 Ben Key +2013-08-13 Dmitry Antipov - * nsfont.m: Fixed bugs in ns_get_family and - ns_descriptor_to_entity that were caused by using free to - deallocate memory blocks that were allocated by xmalloc (via - xstrdup). This caused Emacs to crash when compiled with - XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with - --enable-checking=xmallocoverrun). xfree is now used to - deallocate these memory blocks. + * font.c (clear_font_cache): New function, stripped from... + (Fclear_font_cache): ...here, which now uses the function + above. Adjust comment. + * font.h (clear_font_cache): Add prototype. + * xfaces.c (clear_face_cache): Use clear_font_cache. -2011-04-15 Paul Eggert +2013-08-13 Dmitry Antipov - * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT. + * window.c (Fset_window_start): Compare `w', not `window' because + `w' might not be equal to `window' after call to decode_live_window. - emacs_write: Accept and return EMACS_INT for sizes. - See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html - et seq. - * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write): - Accept and return EMACS_INT. - (emacs_gnutls_write): Return the number of bytes written on - partial writes. - * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise. - (emacs_read, emacs_write): Remove check for negative size, as the - Emacs source code has been audited now. - * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs. - (emacs_read, emacs_write): Use it. - * process.c (send_process): Adjust to the new signatures of - emacs_write and emacs_gnutls_write. Do not attempt to store - a byte offset into an 'int'; it might overflow. - See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html +2013-08-12 Paul Eggert - * sound.c: Don't assume sizes fit in 'int'. - (struct sound_device.period_size, alsa_period_size): - Return EMACS_INT, not int. - (struct sound_device.write, vox_write, alsa_write): - Accept EMACS_INT, not int. - (wav_play, au_play): Use EMACS_INT to store sizes and to - record read return values. + * process.c (deactivate_process): Reset fds to -1 (Bug#15035). + This fixes a problem introduced by the Bug#15035 patch + when using GPG. Reported by Herbert J. Skuhra. -2011-04-15 Ben Key +2013-08-12 Eli Zaretskii - * keyboard.c (Qundefined): Don't declare static since it is used - in nsfns.m. - * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare - static since they are used in nsfont.m. + * decompress.c [WINDOWSNT]: New static variable. + (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if + not yet initialized. -2011-04-15 Stefan Monnier +2013-08-12 Lars Magne Ingebrigtsen - * process.c (Qprocessp): Don't declare static. - * lisp.h (Qprocessp): Declare again. + * decompress.c (Fzlib_decompress_region): Support zlib + decompression, too, and rename. -2011-04-15 Juanma Barranquero +2013-08-12 Paul Eggert - * font.c (Qopentype): Don't make static (used from w32uniscribe.c). + Minor zlib configuration tweaks. + * decompress.c (fn_inflateInit2) [!WINDOWSNT]: + Don't assume presence of fn_inflateInit2_ zlib internal function. -2011-04-14 Paul Eggert +2013-08-12 Lars Magne Ingebrigtsen - Improve C-level modularity by making more things 'static'. + * decompress.c (Fzlib_decompress_gzipped_region): Rename to + include the zlib prefix. - Don't publish debugger-only interfaces to other modules. - * lisp.h (safe_debug_print, debug_output_compilation_hack): - (verify_bytepos, count_markers): Move decls to the only modules - that need them. - * region-cache.h (pp_cache): Likewise. - * window.h (check_all_windows): Likewise. - * marker.c, print.c, region-cache.c, window.c: Decls moved here. +2013-08-12 Eli Zaretskii - * sysdep.c (croak): Now static, if - defined TIOCNOTTY || defined USG5 || defined CYGWIN. - * syssignal.h (croak): Declare only if not static. + * decompress.c [WINDOWSNT]: Include windows.h and w32.h. + (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to + define static variables that are pointers to zlib functions to be + dynamically loaded. + (init_zlib_functions) [WINDOWSNT]: New function. + (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2): + New macros. + (Fdecompress_gzipped_region, unwind_decompress): Use the fn_* + macros instead of invoking the zlib functions directly. + (syms_of_decompress): DEFSYM Qzlib_dll. + Staticpro Szlib_available_p. + +2013-08-12 Dmitry Antipov + + Avoid looping over all frame windows to freeze and unfreeze. + * window.h (struct window): Drop frozen_window_start_p. + (freeze_window_starts): Drop prototype. + * frame.h (struct frame): New frozen_window_starts flag. + (FRAME_WINDOWS_FROZEN): New macro. + * window.c (freeze_window_start, freeze_window_starts): + Remove. + (select_window, replace_window): Adjust users. + * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN. + (window_frozen_p): New function. + (redisplay_window): Use it. + +2013-08-12 Paul Eggert + + Fix some fd issues when running subprocesses (Bug#15035). + Fix bugs that can leak files or file descriptors on errors. + Don't unlink open temp files, as that's hard for users to diagnose + when things go awry (e.g., temp disk exhausted). + Don't bother to lock temp files. Check for invalid recursion. + * callproc.c (synch_process_fd): Remove. All uses removed. + (synch_process_tempfile): New var or macro. + (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS): + New constants. + (record_kill_process): New arg, the temp name. All callers changed. + (delete_temp_file): Now just a simple wrapper around unlink. + (call_process_kill): New arg, the call_process_fd array. + Close them all. Clear synch_process_pid. Remove the temp file, + or arrange for it to be removed. + (call_process_cleanup) [MSDOS]: Arg no longer contains file name; + that's been moved to synch_process_tempfile. Caller changed. + Do not remove the tempfile; that's now call_process_kill's + responsibility. + (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for + call_process_kill; the caller now does that. + (call_process_cleanup): Do not close the process fd; that's now + call_process_kill's responsibility. + (Fcall_process): Implement via new function call_process, which + has most of the old body of Fcall_process, but with a different API. + (call_process): New function that does not open or close filefd if + it is nonnegative. Record which fds need to be closed, and let + call_process_kill close (and remove the tempfile, on MSDOS) on error. + Signal an error if invoked recursively (could be done via a hook). + Simplify creation of the tempfile in the MSDOS case. + Don't create the output file until after checking for the executable. + Report any failure to open /dev/null. + Don't open /dev/null for writing twice; once is enough. + Don't create pipe if all output is being discarded or sent to file. + Don't worry about setting up the coding system or reading from the + pipe if all output is being discarded. + Hoist fd_error local into top level, to lessen block nesting. + Don't record deleted pid here; now done by Fcall_process_region. + (Fcall_process) [MSDOS]: Report mktemp failure immediately, + and note its success in synch_process_tempfile. + Do not leak resources when child_setup fails. + (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment + to child_errno. Remove unnecessary close of fd0; it's close-on-exec. + (create_temp_file): Now returns open fd, with an additional + Lisp_Object * argument to return the name. All callers changed. + Do not close the file; rewind it instead, and leave it open for + the caller. Do not lock the temp file. Unwind-protect the file + and the file-descriptor. + (Fcall_process_region): If the input is /dev/null, unwind-protect it. + If an asynchrounous process, record it here, not in call_process. + (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile. + * eval.c (set_unwind_protect): New function. + * fileio.c (write_region): New function, generalized from the + old Fwrite_region. Do not lock temp files. + (Fwrite_region): Use it. + * lisp.h (set_unwind_protect, write_region): New decls. + * process.c: Include . + (make_process): Mark fds as initially closed. + (deleted_pid_list): Now a list of pid-filename pairs. + All uses changed. + (close_process_fd): New function. + (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS) + (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT): + New constants. Verify that their number matches PROCESS_OPEN_FDS. + (create_process, create_pty, Fmake_serial_process) + (server_accept_connection): Record which fds need to be closed, + and let deactivate_process close them. + (Fmake_network_process): Do not discard the unwind-protect + until it's safe to do so. + (deactivate_process): Close the fds opened by create_process etc. + (Fprocess_send_eof): Adjust to new way of recording open fds. + Report an error if /dev/null can't be opened, instead of aborting. + * process.h (PROCESS_OPEN_FDS): New constant. + (struct Lisp_Process): New member open_fds. + (record_kill_process, record_deleted_pid): Adjust signatures. + (record_deleted_pid): Move decl here ... + * syswait.h (record_deleted_pid): ... from here. + +2013-08-11 Paul Eggert + + * decompress.c: Fix bugs with large buffers and weird inputs. + Tune a bit. Reindent as per usual Emacs style. + (BUFFER_SIZE): Remove. + (Fdecompress_gzipped_region): Do not mishandle input buffers with + more than UINT_MAX bytes. Decompress into the gap instead of into + an auto buffer, as this should avoid copying. Return nil if + 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not + set immediate_quit; we shouldn't trust zlib code that much. + +2013-08-11 Lars Magne Ingebrigtsen + + * decompress.c (Fdecompress_gzipped_region): Respect all zlib + errors, and really move the gap to where we want it. + + * lisp.h: Include decompress.c support. + + * emacs.c (main): Include decompress.c support. + + * Makefile.in: Include -lz if present. + +2013-08-11 Jan Djärv + + * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame: + (initWithTitle:): Initialize frame to 0. + (fillWithWidgetValue:): Call fillWithWidgetValue:frame. + (fillWithWidgetValue:frame:): Rename from + fillWithWidgetValue:setDelegate, call initWithTile:frame: if f. + + * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to + fillWithWidgetValue:frame: + + * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to + remove memory leak warnings. + + * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove. + (ns_check_menu_open): Handle menu == nil. Remove assignment to + menu_pending_title. + + * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate. + (x_activate_menubar): Update the whole menu. + (trackingNotification:): Call ns_check_menu_open if tracking ends. + (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if + current event is not NSSystemDefined (Bug#15001). + Call ns_check_menu_open only if trackingMenu is 2. + (menuDidClose:): New method, decrease trackingMenu. + (fillWithWidgetValue:setDelegate:): New method. + (fillWithWidgetValue:): Call the above. + + * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate: + +2013-08-11 Paul Eggert + + Omit some unnecessary casts. + Many of these go back to the old pre-C89 days, when they may have + been needed, but we've been assuming C89 or later for a while now. + * alloc.c (live_string_p, live_cons_p, live_symbol_p) + (live_float_p, live_misc_p, live_vector_p): + * buffer.c (compare_overlays, cmp_for_strings, mmap_find) + (mmap_alloc, alloc_buffer_text, enlarge_buffer_text) + (defvar_per_buffer): + * callint.c (Fcall_interactively): + * doc.c (Fsubstitute_command_keys): + * filelock.c (get_boot_time): + * frame.c (xrdb_get_resource): + * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb) + (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer) + (xg_get_file_name_from_selector, menuitem_destroy_callback) + (menuitem_highlight_callback, menu_destroy_callback) + (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb) + (xg_tool_bar_callback, xg_get_tool_bar_widgets) + (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback) + (xg_tool_bar_help_callback, tb_size_cb): + * image.c (xpm_alloc_color, png_read_from_memory) + (png_read_from_file, png_load_body, our_memory_skip_input_data) + (jpeg_memory_src, jpeg_file_src, imagemagick_load_image) + (syms_of_image): + * keymap.c (describe_map): + * nsfns.m (Fns_display_monitor_attributes_list): + * nsmenu.m (process_dialog:): + * nsterm.m (hold_event): + * process.c (wait_reading_process_output): + * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec): + * scroll.c (do_direct_scrolling, scrolling_1): + * termcap.c (tgetent): + * window.c (check_window_containing, add_window_to_list) + (freeze_window_starts): + * xdisp.c (compare_overlay_entries, vmessage): + * xfns.c (x_window, x_get_monitor_attributes_xinerama) + (x_get_monitor_attributes_xrandr) + (Fx_display_monitor_attributes_list, x_display_info_for_name) + (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb): + * xfont.c (xfont_match, xfont_open): + * xmenu.c (x_menu_wait_for_event, menu_highlight_callback) + (menubar_selection_callback, menu_position_func) + (popup_selection_callback, create_and_show_popup_menu) + (dialog_selection_callback, create_and_show_dialog): + * xrdb.c (x_get_string_resource): + (main) [TESTRM]: + * xsmfns.c (x_session_check_input): + * xterm.c (x_draw_glyphless_glyph_string_foreground) + (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback) + (xaw_jump_callback, xaw_scroll_callback): + Omit unnecessary casts. + +2013-08-10 Paul Eggert + + Minor string-length refactoring. + * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known. + * frame.c (make_monitor_attribute_list): + Prefer build_string to strlen + make_string. + +2013-08-10 Jan Djärv + + * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus, + don't check minor_code (Bug#14417). + +2013-08-09 Eli Zaretskii + + * xdisp.c (draw_glyphs): Don't compare row pointers, compare row + vertical positions instead. This avoids calling MATRIX_ROW with + row numbers that are possibly beyond valid limits. (Bug#15064) + +2013-08-09 Dmitry Antipov + + Use xstrdup and build_unibyte_string where applicable. + * alloc.c (xstrdup): Tiny cleanup. Add eassert. + * xfns.c (x_window): + * xrdb.c (x_get_customization_string): + * xterm.c (xim_initialize): + * w32fns.c (w32_window): Use xstrdup. + (w32_display_monitor_attributes_list): + * emacs.c (init_cmdargs): + * keyboard.c (PUSH_C_STR): + * nsfont.m (nsfont_open): + * sysdep.c (system_process_attributes): + * w32.c (system_process_attributes): + * xdisp.c (message1, message1_nolog): Use build_unibyte_string. - * alloc.c (refill_memory_reserve): Now static if - !defined REL_ALLOC || defined SYSTEM_MALLOC. - * lisp.h (refill_memory_reserve): Declare only if not static. +2013-08-09 Eli Zaretskii - * xsettings.c, xsettings.h (xsettings_get_system_normal_font): - Define only if USE_LUCID. + * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define + variables of these types so that GDB would know about them, as aid + for debugging fatal exceptions. (Bug#15024) See also + http://sourceware.org/ml/gdb/2013-08/msg00010.html for related + discussions. - * xrdb.c (x_customization_string, x_rm_string): Now static. +2013-08-08 Jan Djärv - * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF. - * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF. + * nsterm.m (ns_update_begin): Don't change clip path if it would be + larger than the NSWindow (Bug#14934). - * xdisp.c (draw_row_with_mouse_face): Now static. - * dispextern.h (draw_row_with_mouse_fave): Remove decl. +2013-08-08 Dmitry Antipov - * window.h (check_all_windows): Mark externally visible. + Redesign redisplay interface to drop global variable updated_window. + Always pass currently updated window as a parameter to update routines. + * dispextern.h (updated_window): Remove declaration. + (struct redisplay_interface): Pass window parameter to + write_glyphs, insert_glyphs, clear_end_of_line, cursor_to + and after_update_window_hook. + (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to): + Adjust prototypes. + * dispnew.c (updated_window): Remove. + (redraw_overlapped_rows, update_marginal_area, update_text_area) + (update_window_line): Adjust to match redisplay interface changes. + * nsterm.m (ns_update_window_begin, ns_update_window_end) + (ns_scroll_run, ns_after_update_window_line): + * w32term.c (x_update_window_begin, x_update_window_end) + (x_after_update_window_line, x_scroll_run): + * xterm.c (x_update_window_begin, x_update_window_end) + (x_after_update_window_line, x_scroll_run): + * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line): + Likewise. Adjust comments where appropriate. + (x_cursor_to): Simplify because this is always called during window + update (but install debugging check anyway). + (expose_window): Check must_be_updated_p flag to see whether this + function is called during window update. + +2013-08-08 Dmitry Antipov + + Do not reset window modification event counters excessively. + These leftovers and poor man's tricky methods to catch extra + redisplay's attention are no longer needed. + * frame.c (set_menu_bar_lines_1): + * minibuf.c (read_minibuf_unwind): + * window.c (Fset_window_start, set_window_buffer, window_resize_apply) + (grow_mini_window, shrink_mini_window, window_scroll_pixel_based) + (window_scroll_line_based, Fset_window_configuration): + * xdisp.c (redisplay_window): Do not reset last_modified and + last_overlay_modified counters. + +2013-08-07 Jan Djärv + + * xselect.c (x_send_client_event): Set send_event and serial, memset + data.l as it might be bigger than data.b. Use 24 bit mask to + XSendEvent (Bug#15034). + +2013-08-07 Eli Zaretskii + + * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title + for TTY frames that are not the top frame on their console. + (Bug#14616) + +2013-08-07 Martin Rudalics + + * w32term.c (w32fullscreen_hook): Really maximize frame when + asked for (Bug#14841). + +2013-08-07 Dmitry Antipov + + Prefer selected_window to Fselected_window, likewise for frames. + * buffer.c (Fbuffer_swap_text): + * data.c (Fvariable_binding_locus): + * window.c (run_window_configuration_change_hook): Adjust users. + * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data): + Use decode_live_frame. + +2013-08-07 Dmitry Antipov + + Be more careful if selected window shows the buffer other than current, + use window_outdated only if this is not so. This change should also + address some weird issues discussed in Bug#13012. + * window.h (window_outdated): New prototype. + * window.c (window_outdated): Now here. Convert from static and + always assume window's buffer. + (Fwindow_end, Fwindow_line_height): Use it. + * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg + and always assume window's buffer. + (redisplay_window): Adjust user. + (redisplay_internal): Call to reconsider_clip_changes once and + check whether mode line should be updated only if selected window + shows current buffer. + (run_window_scroll_functions): Use eassert for debugging check. + (Fmove_point_visually, note_mouse_highlight): Use window_outdated. + +2013-08-06 Dmitry Antipov + + * window.c (window_scroll, window_scroll_pixel_based) + (window_scroll_line_based): Use bool for booleans. + +2013-08-06 Paul Eggert + + * process.c: Fix minor off-by-one issues in descriptor counts. + This shouldn't fix any real bugs, but it cleans up the code a bit. + (max_process_desc, max_input_desc): -1, not 0, means none. + All uses changed. + (delete_input_desc): New function. + (delete_write_fd, delete_keyboard_wait_descriptor): Use it. + (deactivate_process): Scan backwards when recomuting max_process_desc; + that should be faster. + (init_process_emacs): Initialize max_input_desc. + +2013-08-06 Dmitry Antipov + + Use region cache to speedup bidi_find_paragraph_start. + * buffer.h (struct buffer): New member bidi_paragraph_cache. + Rename cache_long_line_scans to cache_long_scans. + * buffer.c (bset_cache_long_line_scans): Rename to + bset_cache_long_scans. + (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer) + (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache + into account. + (syms_of_buffer): Rename cache-long-line-scans to + cache-long-scans. Adjust docstring. + * search.c (newline_cache_on_off): + * indent.c (width_run_cache_on_off): Adjust users. + * bidi.c (bidi_paragraph_cache_on_off): New function. + (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed. + * insdel.c (prepare_to_modify_buffer): + Invalidate bidi_paragraph_cache if enabled. + +2013-08-06 Dmitry Antipov + + Invalidate region caches only if buffer text is going to be changed. + * lisp.h (modify_region_1): Remove 3rd arg and rename to... + (modify_text): ...new prototype. + (prepare_to_modify_buffer_1): New prototype. + * textprop.c (modify_region): Rename to... + (modify_text_properties): ...new function. + (add_text_properties_1, set_text_properties, Fremove_text_properties) + (Fremove_list_of_text_properties): Adjust users. + * insdel.c (modify_region_1): Remove 3rd arg and reimplement as... + (modify_text): ...new function. + (prepare_to_modify_buffer): Reimplement mostly as a wrapper for... + (prepare_to_modify_buffer_1): ...new function. + * casefiddle.c (casify_region): + * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal) + (Ftranspose_regions): Use modify_text. + +2013-08-05 Stefan Monnier + + * lisp.mk (lisp): Add nadvice.elc. + +2013-08-05 Dmitry Antipov + + New macro to iterate over live buffers similar to frames. + * buffer.h (FOR_EACH_LIVE_BUFFER): New macro. + (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string): + Declare buffer-related variables here to offload lisp.h. + * buffer.c (Vbuffer_alist): Adjust comment. + (Fget_file_buffer, get_truename_buffer, Fother_buffer) + (other_buffer_safely): + * data.c (store_symval_forwarding): + * dispnew.c (Fframe_or_buffer_changed_p): + * fileio.c (Fdo_auto_save): + * filelock.c (unlock_all_files): + * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER. - * window.c (window_deletion_count): Now static. +2013-08-04 Paul Eggert - * undo.c: Make symbols static if they're not exported. - (last_undo_buffer, last_boundary_position, pending_boundary): - Now static. + Fix some minor races in hosts lacking mkostemp (Bug#15015). + * callproc.c (create_temp_file): + * filelock.c (create_lock_file): + Assume mkostemp, since it's now provided by Gnulib. - * textprop.c (interval_insert_behind_hooks): Now static. - (interval_insert_in_front_hooks): Likewise. - - * term.c: Make symbols static if they're not exported. - (tty_turn_off_highlight, get_tty_terminal, max_frame_cols): - (max_frame_lines, tty_set_terminal_modes): - (tty_reset_terminal_modes, tty_turn_off_highlight): - (get_tty_terminal): Now static. - (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM. - * termhooks.h (term_mouse_moveto): Do not declare if - HAVE_WINDOW_SYSTEM. - * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes): - (tty_turn_off_highlight, get_tty_terminal): Remove decls. - - * sysdep.c: Make symbols static if they're not exported. - (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner): - Now static. - (sigprocmask_set, full_mask): Remove; unused. - (wait_debugging): Mark as visible. - * syssignal.h (SIGFULLMASK, full_mask): Remove decls. - * systty.h (emacs_get_tty, emacs_set_tty): Remove decls. +2013-08-04 Eli Zaretskii - * syntax.c (syntax_temp): Define only if !__GNUC__. + * w32.c (mkostemp): New function. + (mktemp): Remove, no longer used. Most of the code reused in + mkostemp. (Bug#15015) + (mktemp): Don't undef. - * sound.c (current_sound_device, current_sound): Now static. +2013-08-04 Dmitry Antipov - * search.c (searchbufs, searchbuf_head): Now static. + * dispnew.c (glyph_matrix_count, glyph_pool_count): + Move under GLYPH_DEBUG and ENABLE_CHECKING. + (new_glyph_matrix, free_glyph_matrix, new_glyph_pool) + (free_glyph_pool, check_glyph_memory): Likewise for + all users. Adjust comments where appropriate. - * scroll.c (scroll_cost): Remove; unused. - * dispextern.h (scroll_cost): Remove decl. +2013-08-03 Paul Eggert - * region-cache.h (pp_cache): Mark as externally visible. + * composite.h: Minor fixups. + (composition_registered_p): Rename from COMPOSITION_REGISTERD_P + to fix a misspelling, and change it to an inline function while + we're at it (it need not be a macro). All uses changed. + (composition_method, composition_valid_p): + Rewrite to avoid assignments in if-conditions. - * process.c: Make symbols static if they're not exported. - (process_tick, update_tick, create_process, chan_process): - (Vprocess_alist, proc_buffered_char, datagram_access): - (fd_callback_data, send_process_frame, process_sent_to): Now static. - (deactivate_process): Mark defn as static, as well as decl. - * lisp.h (create_process): Remove decl. - * process.h (chan_process, Vprocess_alist): Remove decls. +2013-08-03 Dmitry Antipov - * print.c: Make symbols static if they're not exported. - (print_depth, new_backquote_output, being_printed, print_buffer): - (print_buffer_size, print_buffer_pos, print_buffer_pos_byte): - (print_interval, print_number_index, initial_stderr_stream): - Now static. - * lisp.h (Fprinc): Remove decl. - (debug_output_compilation_hack): Mark as externally visible. + Do not use global Lisp_Object in composition macros. + * composite.h (composition_temp): Remove declaration. + (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with... + (composition_method, composition_valid_p): ...inline functions. + (compose_region): Remove the leftover. + * composite.c (composition_temp): Remove. + (run_composition_function, update_compositions) + (composition_compute_stop_pos, composition_adjust_point) + (Ffind_composition_internal): + * coding.c (handle_composition_annotation): + * xdisp.c (handle_composition_prop, check_point_in_composition): + Related users changed. + +2013-08-03 Dmitry Antipov + + Drop FRAME_PTR typedef. + * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h: + * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c: + * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h: + * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h: + * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h: + * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c: + * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c: + All related users changed. + +2013-08-02 Stefan Monnier + + * eval.c (default_toplevel_binding): New function. + (Fdefvar): Use it. + (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification. + (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs. + (syms_of_eval): Export them. + * data.c (Fdefault_value): Micro cleanup. + * term.c (init_tty): Use "false". + +2013-08-02 Dmitry Antipov + + Fix X GC leak in GTK and raw (no toolkit) X ports. + * xterm.c (x_free_frame_resources): If white and black relief + GCs are allocated, always free them here. + * xfns.c (x_make_gc): Omit redundant initialization. + * widget.c (create_frame_gcs): Remove the leftover. + (EmacsFrameDestroy): Do nothing because all GCs are now freed + in x_free_frame_resources. + +2013-08-02 Jan Djärv + + * nsterm.m (windowWillResize:toSize:): Only change title if + ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before + modifying it. + (viewDidEndLiveResize): New method. + + * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title + inside NS_IMPL_COCOA. + +2013-08-02 Dmitry Antipov + + * insdel.c (adjust_after_replace, replace_range, del_range_2): + Do not check whether undo is enabled because record_insert and + record_delete does that themselves. + +2013-08-02 Dmitry Antipov + + * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname + member which is not really used any more. + (FRAME_XIC_BASE_FONTNAME): Remove. + * xfns.c (xic_free_fontset): Adjust user. + * xmenu.c (mouse_position_for_popup, x_activate_menubar) + (update_frame_menubar, set_frame_menubar, free_frame_menubar) + (create_and_show_popup_menu, xmenu_show, create_and_show_dialog) + (xdialog_show): Use eassert for debugging check. + * w32term.c (x_unfocus_frame): Remove unused dummy function. + +2013-08-01 Paul Eggert + + * fileio.c, fns.c (merge): Move extern decl from here ... + * lisp.h (merge): ... to here. + +2013-08-01 Dmitry Antipov + + Fix last font-related change. + * w32font.h (w32font_list_internal, w32font_match_internal): + Fix prototype. + * w32uniscribe.c (uniscribe_list, uniscribe_match): + (uniscribe_list_family): Adjust to match font API change. + MS-Windows breakage reported by Juanma Barranquero + at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html. + +2013-08-01 Dmitry Antipov + + * frame.h (FRAME_MOUSE_UPDATE): + * nsterm.m (ns_frame_up_to_date): Omit redundant check + whether hlinfo->mouse_face_mouse_frame is non-NULL. + +2013-08-01 Dmitry Antipov + + Avoid redundant Lisp_Object <-> struct frame conversions in font API. + * font.h (struct font_driver): Change list, match, and list_family + functions to accept struct frame * as first arg. + * font.c (font_score, font_compare, font_sort_entities): + Remove prototypes. + (font_sort_entities, font_list_entities, font_select_entity): + (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to + match font API change. + * xfont.c (xfont_list, xfont_match, xfont_list_family): + * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family): + * ftxfont.c (ftxfont_list, ftxfont_match): + * xftfont.c (xftfont_list, xftfont_match): + * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family): + * w32font.c (w32font_list, w32font_match, w32font_list): + (w32font_list_internal, w32_font_match_internal): Likewise. + * xfaces.c (Fx_family_fonts): Adjust user. + +2013-08-01 Dmitry Antipov + + Do not use pure Xism x_wm_set_icon_position in non-X ports. + * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position + only if HAVE_X_WINDOWS is in use. + * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS. + * nsterm.m (x_wm_set_icon_position): Remove no-op. + * w32term.c (x_wm_set_icon_position): Likewise. + * w32fns.c (x_icon): Adjust user. + +2013-08-01 Dmitry Antipov + + * xterm.c (last_mouse_press_frame): Remove the + leftover which is not really used any more. + (handle_one_xevent, syms_of_xterm): Adjust users. + (x_flush): Call XFlush once per each X display, not frame. + This is better because this code always unconditionally skips + non-X frames in Vframe_list and issues the only XFlush if we + have more than one X frame on the same X display. + (any_help_event_p, x_draw_glyph_string_background, x_display_ok): + Use bool for booleans. + (x_draw_glyph_string_background, cvt_string_to_pixel): + (cvt_pixel_dtor): Drop unnecessary prototypes. + * xterm.h (x_display_ok): Adjust prototype. + +2013-07-31 Dmitry Antipov + + Drop unnecessary functions that deals with frame pixel size. + * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width) + (x_pixel_height): Drop prototypes. + * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width) + (x_pixel_height): Drop implementations. + * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT + which should be always valid for window frame. + (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH. + * w32menu.c (Fx_popup_dialog): + * xmenu.c (Fx_popup_dialog): Likewise for both. + +2013-07-31 Dmitry Antipov + + * frame.c (Fmake_terminal_frame): Use store_in_alist to setup + frame parameters and call to Fmodify_frame_parameters just once. + (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring. + (Fset_frame_size, Fset_frame_position): Use decode_live_frame + and mention nil frame in docstring. + +2013-07-31 Dmitry Antipov + + * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean. + (x_figure_window_size): Likewise. Adjust to return long. + (syms_of_frame): Do not DEFSYM Qterminal_live_p. + (toplevel): Move Qterminal_live_p to... + * terminal.c (toplevel): ...here, make it static, and... + (syms_of_terminal): ...DEFSYM here. + * frame.h (Qterminal_live_p): Remove declaration. + (make_frame, x_figure_window_size): Adjust prototype. + * nsfns.m (Fx_create_frame): Use long for window flags. + +2013-07-30 Paul Eggert + + Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986). + * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]: + Do not assume that emacs_close (INT_MAX) is a no-op. + +2013-07-30 Dmitry Antipov + + * xfaces.c (make_face_cache): For struct face_cache, prefer + xmalloc to xzalloc and so avoid redundant call to memset. + (Finternal_set_lisp_face_attribute): Fix comment typo and style. + +2013-07-30 Dmitry Antipov + + * fringe.c (draw_window_fringes, update_window_fringes) + (compute_fringe_widths): + * w32term.c (x_draw_glyph_string): + * window.c (candidate_window_p, Frecenter): + * xfaces.c (realize_basic_faces, realize_default_face) + (Fbitmap_space_p, Finternal_set_lisp_face_attribute) + (x_update_menu_appearance, face_attr_equal_p, lface_equal_p): + * xfns.c (x_set_cursor_color, xic_free_xfontset): + * xmenu.c (Fx_menu_bar_open_internal): + * xselect.c (x_reply_selection_request, Fx_get_atom_name): + * xsettings.c (xft_settings_event): + * xterm.c (x_draw_glyph_string, x_had_errors_p): + Use bool for booleans. Adjust style and comments where + appropriate. + * dispextern.h (draw_window_fringes, update_window_fringes) + (compute_fringe_widths): + * xterm.h (x_had_errors_p): Adjust prototype. - * sysdep.c (croak): Move decl from here to syssignal.h. - * syssignal.h (croak): Put it here, so the API can be checked when - 'croak' is called from dissociate_if_controlling_tty. +2013-07-30 Dmitry Antipov - * minibuf.c: Make symbols static if they're not exported. - (minibuf_save_list, choose_minibuf_frame): Now static. - * lisp.h (choose_minibuf_frame): Remove decl. + * frame.c (Fmodify_frame_parameters): Always check 2nd arg with + CHECK_LIST. Rewrite the loop to avoid useless local variable. - * lisp.h (verify_bytepos, count_markers): Mark as externally visible. +2013-07-29 Dmitry Antipov - * lread.c: Make symbols static if they're not exported. - (read_objects, initial_obarray, oblookup_last_bucket_number): - Now static. - (make_symbol): Remove; unused. - * lisp.h (initial_obarray, make_symbol): Remove decls. - - * keyboard.c: Make symbols static if they're not exported. - (single_kboard, recent_keys_index, total_keys, recent_keys): - (this_command_key_count_reset, raw_keybuf, raw_keybuf_count): - (this_single_command_key_start, echoing, last_auto_save): - (read_key_sequence_cmd, dribble, recursive_edit_unwind): - (command_loop, echo_now, keyboard_init_hook, help_char_p): - (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer): - (Vlispy_mouse_stem, double_click_count): - Now static. - (force_auto_save_soon): Define only if SIGDANGER. - (ignore_mouse_drag_p): Now static if - !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS. - (print_help): Remove; unused. - (stop_character, last_timer_event): Mark as externally visible. - * keyboard.h (ignore_mouse_drag_p): Declare only if - defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS. - (echo_now, help_char_p, quit_throw_to_read_char): Remove decls. - * lisp.h (echoing): Remove decl. - (force_auto_save_soon): Declare only if SIGDANGER. - * xdisp.c (redisplay_window): Simplify code, to make it more - obvious that ignore_mouse_drag_p is not accessed if !defined - USE_GTK && !defined HAVE_NS. - - * intervals.c: Make symbols static if they're not exported. - (merge_properties_sticky, merge_interval_right, delete_interval): - Now static. - * intervals.h (merge_interval_right, delete_interval): Remove decls. - - * insdel.c: Make symbols static if they're not exported. - However, leave prepare_to_modify_buffer alone. It's never - called from outside this function, but that appears to be a bug. - (combine_after_change_list, combine_after_change_buffer): - (adjust_after_replace, signal_before_change): Now static. - (adjust_after_replace_noundo): Remove; unused. - * lisp.h (adjust_after_replace, adjust_after_replace_noundo): - (signal_before_change): Remove decls. - - * indent.c (val_compute_motion, val_vmotion): Now static. - - * image.c: Make symbols static if they're not exported. - * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare - if USE_GTK. - * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK. - (xpm_color_cache, ct_table, ct_colors_allocated): Now static. - - * fringe.c (standard_bitmaps): Now static. - (max_used_fringe_bitmap): Now static, unless HAVE_NS. - - * frame.c: Make symbols static if they're not exported. - (x_report_frame_params, make_terminal_frame): Now static. - (get_frame_param): Now static, unless HAVE_NS. - (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM. - (x_get_resource_string): Remove; not used. - * frame.h (make_terminal_frame, x_report_frame_params): - (x_get_resource_string); Remove decls. - (x_fullscreen_adjust): Declare only if WINDOWSNT. - * lisp.h (get_frame_param): Declare only if HAVE_NS. - - * font.c, fontset.c: Make symbols static if they're not exported. - * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro. - (FACE_SUITABLE_FOR_CHAR_P): Use it. - * font.c (font_close_object): Now static. - * font.h (font_close_object): Remove. - * fontset.c (FONTSET_OBJLIST): Remove. - (free_realized_fontset) #if-0 the body, which does nothing. - (face_suitable_for_char_p): #if-0, as it's never called. - * fontset.h (face_suitable_for_char_p): Remove decl. - * xfaces.c (face_at_string_position): - Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P, - since 0 is always ASCII. - - * fns.c (weak_hash_tables): Now static. - - * fileio.c: Make symbols static if they're not exported. - (auto_saving, auto_save_mode_bits, auto_save_error_occurred): - (Vwrite_region_annotation_buffers): Now static. - - * eval.c: Make symbols static if they're not exported. - (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static. - * lisp.h (backtrace_list): Remove decl. - - * emacs.c: Make symbols static if they're not exported. - (malloc_state_ptr, malloc_using_checking, syms_of_emacs): - (fatal_error_code, fatal_error_signal_hook, standard_args): - Now static. - (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL. - (DEFINE_DUMMY_FUNCTION): Mark function as externally visible. - (__CTOR_LIST__, __DTOR_LIST__): Now externally visible. - * lisp.h (fatal_error_signal_hook): Remove decl. - (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL. - - * editfns.c: Move a (normally-unused) function to its only use. - * editfns.c, lisp.h (get_operating_system_release): Remove. - * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not - worth the hassle of breaking this out. - - * xterm.c: Make symbols static if they're not exported. - (x_raise_frame, x_lower_frame, x_wm_set_window_state): - (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error): - (x_destroy_window, x_delete_display): - Now static. - (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT). - (x_mouse_leave): Remove; unused. - * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame): - (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap): - (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes): - Remove decls. - (x_mouse_leave): Declare only if WINDOWSNT. - (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT. - (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS && - USE_X_TOOLKIT. - - * ftxfont.c: Make symbols static if they're not exported. - (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined - HAVE_FREETYPE. - * font.h (ftxfont_driver): Likewise. - - * xfns.c: Make symbols static if they're not exported. - (x_last_font_name, x_display_info_for_name): - (x_set_foreground_color, x_set_background_color, x_set_mouse_color): - (x_set_cursor_color, x_set_border_pixel, x_set_border_color): - (x_set_cursor_type, x_set_icon_type, x_set_icon_name): - (x_set_scroll_bar_foreground, x_set_scroll_bar_background): - (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer): - (last_show_tip_args): Now static. - (xic_defaut_fontset, xic_create_fontsetname): Define only if - defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT - (x_screen_planes): Remove; unused. - * dispextern.h (x_screen_planes): Remove decl. - - * dispnew.c: Make symbols static if they're not exported. - * dispextern.h (redraw_garbaged_frames, scrolling): - (increment_row_positions): Remove. - * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling): - (delayed_size_change, glyph_matrix_count, glyph_pool_count): - Now static. - (redraw_garbaged_frames): Remove; unused. - - * xfaces.c: Make symbols static if they're not exported. - * dispextern.h (ascii_face_of_lisp_face, free_realized_face): - Remove decls. - * xterm.h (defined_color): Remove decls. - (x_free_dpy_colors): Declare only if USE_X_TOOLKIT. - * xfaces.c (tty_suppress_bold_inverse_default_colors_p): - (menu_face_changed_default, defined_color, free_realized_face): - (x_free_dpy_colors): Define only if USE_X_TOOLKIT. - (ascii_face_of_lisp_face): Remove; unused. - - * xdisp.c: Make symbols static if they're not exported. - * dispextern.h (scratch_glyph_row, window_box_edges): - (glyph_to_pixel_coords, set_cursor_from_row): - (get_next_display_element, set_iterator_to_next): - (highlight_trailing_whitespace, frame_to_window_pixel_xy): - (show_mouse_face): Remove decls - * frame.h (message_buf_print): Likewise. - * lisp.h (pop_message, set_message, check_point_in_composition): - Likewise. - * xterm.h (set_vertical_scroll_bar): Likewise. - * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed): - (message_buf_print, scratch_glyph_row, displayed_buffer): - (set_iterator_to_next, pop_message, set_message, set_cursor_from_row): - (get_next_display_element, show_mouse_face, window_box_edges): - (frame_to_window_pixel_xy, check_point_in_composition): - (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static. - (glyph_to_pixel_coords): Remove; unused. + * fns.c (toplevel): Remove comment before Fsafe_length because + it checks for QUIT. - * dired.c (file_name_completion): Now static. +2013-07-28 Paul Eggert - * dbusbind.c (xd_in_read_queued_messages): Now static. + * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970). - * lisp.h (circular_list_error, FOREACH): Remove; unused. - * data.c (circular_list_error): Remove. +2013-07-28 Eli Zaretskii - * commands.h (last_point_position, last_point_position_buffer): - (last_point_position_window): Remove decls. - * keyboard.c: Make these variables static. + * w32fns.c (w32_wnd_proc) : Make sure the + frame which got the message is still alive, before dereferencing + its pointer. (Bug#14970) - * coding.h (coding, code_convert_region, encode_coding_gap): - Remove decls. - * coding.c (Vsjis_coding_system, Vbig5_coding_system): - (iso_code_class, detect_coding, code_convert_region): Now static. - (encode_coding_gap): Remove; unused. + * frame.c (delete_frame): Test "this" frame's minibuffer window to + be a live window, before using it as such. (Bug#14970) - * chartab.c (chartab_chars, chartab_bits): Now static. +2013-07-27 Eli Zaretskii - * charset.h (charset_iso_8859_1): Remove decl. - * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump): - Now static. + * w32term.c (w32_read_socket) : Call + w32_detect_focus_change instead of doing part of its job by hand. + This fixes the problem whereby FOCUS_OUT events were not sent to + the event queue. - * ccl.h (check_ccl_update, Vccl_program_table): Remove decls. - * ccl.c (Vccl_program_table): Now static. - (check_ccl_update): Remove; unused. - - * category.c (SET_CATEGORY_SET, set_category_set): Move here. - * category.h: ... from here. - * category.c (check_category_table, set_category_set): Now static. - - * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static. - * lisp.h: Remove these decls. - - * buffer.c (buffer_count): Remove unused var. - - * bidi.c (bidi_dump_cached_states): Mark as externally visible, - so that it's not optimized away. - (bidi_ignore_explicit_marks_for_paragraph_level): Likewise. - * dispextern.h (bidi_dump_cached_states): Remove, since it's - exported only to the debugger. - - * atimer.c (alarm_signal_handler, run_all_atimers): Now static. - * atimer.h (run_all_atimers): Remove; not exported. - - font.c: Make copy_font_spec and merge_font_spec ordinary C functions. - * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it - was inaccessible from Lisp. - (merge_font_spec): Likewise, renaming from Fmerge_font_spec. - * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses. - - alloc.c: Import and export fewer symbols, and remove unused items. - * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING - is defined. - (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that - it's not optimized away by whole-program optimization. - (message_enable_multibyte, free_misc): Remove. - (catchlist, handlerlist, mark_backtrace): - Declare only if BYTE_MARK_STACK. - (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo. - * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined. - (message_enable_multibyte): Remove decl. - (free_misc, interval_free_list, float_block, float_block_index): - (n_float_blocks, float_free_list, cons_block, cons_block_index): - (cons_free_list, last_marked_index): - Now static. - (suppress_checking, die): Define only if ENABLE_CHECKING is defined. - * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK. - (mark_backtrace): Define only if BYTE_MARK_STACK. - * xdisp.c (message_enable_multibyte): Now static. - - Declare Lisp_Object Q* variables to be 'static' if not exported. - This makes it easier for human readers (and static analyzers) - to see whether these variables are used from other modules. - * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c: - * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c: - * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c: - * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c: - * lread.c, macros.c, minibuf.c, print.c, process.c, search.c: - * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c: - * xmenu.c, xselect.c: - Declare Q* vars static if they are not used in other modules. - * ccl.h, character.h, charset.h, coding.h, composite.h, font.h: - * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h: - Remove decls of unexported vars. - * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro. - - * lisp.h (DEFINE_FUNC): Make sname 'static'. - - Make Emacs functions such as Fatom 'static' by default. - This makes it easier for human readers (and static analyzers) - to see whether these functions can be called from other modules. - DEFUN now defines a static function. To make the function external - so that it can be used in other C modules, use the new macro DEFUE. - * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p): - (Finit_image_library): - (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer): - (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute): - (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes): - Remove decls, since these functions are now static. - (Funintern, Fget_internal_run_time): New decls, since these functions - were already external. - - * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c: - * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c: - * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c: - * fns.c, font.c, fontset.c, frame.c, image.c, indent.c: - * keyboard.c, keymap.c, lread.c: - * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c: - * syntax.c, term.c, terminal.c, textprop.c, undo.c: - * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c: - Mark functions with DEFUE instead of DEFUN, - if they are used in other modules. - * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward - decls for now-static functions. - * buffer.h (Fdelete_overlay): Remove decl. - * callproc.c (Fgetenv_internal): Mark as internal. - * composite.c (Fremove_list_of_text_properties): Remove decl. - (Fcomposition_get_gstring): New forward static decl. - * composite.h (Fcomposite_get_gstring): Remove decl. - * dired.c (Ffile_attributes): New forward static decl. - * doc.c (Fdocumntation_property): New forward static decl. - * eval.c (Ffetch_bytecode): New forward static decl. - (Funintern): Remove extern decl; now in .h file where it belongs. - * fileio.c (Fmake_symbolic_link): New forward static decl. - * image.c (Finit_image_library): New forward static decl. - * insdel.c (Fcombine_after_change_execute): Make forward decl static. - * intervals.h (Fprevious_property_change): - (Fremove_list_of_text_properties): Remove decls. - * keyboard.c (Fthis_command_keys): Remove decl. - (Fcommand_execute): New forward static decl. - * keymap.c (Flookup_key): New forward static decl. - (Fcopy_keymap): Now static. - * keymap.h (Flookup_key): Remove decl. - * process.c (Fget_process): New forward static decl. - (Fprocess_datagram_address): Mark as internal. - * syntax.c (Fsyntax_table_p): New forward static decl. - (skip_chars): Remove duplicate decl. - * textprop.c (Fprevious_property_change): New forward static decl. - * window.c (Fset_window_fringes, Fset_window_scroll_bars): - Now internal. - (Fset_window_margins, Fset_window_vscroll): New forward static decls. - * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls. - - * editfns.c (Fformat): Remove unreachable code. - -2011-04-14 Andreas Schwab - - * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13 - change. (Bug#8496) - -2011-04-13 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init - when at ZV. (Bug#8487) - -2011-04-12 Andreas Schwab - - * charset.c (Fclear_charset_maps): Use xfree instead of free. - (Bug#8437) - * keyboard.c (parse_tool_bar_item): Likewise. - * sound.c (sound_cleanup, alsa_close): Likewise. - * termcap.c (tgetent): Likewise. - * xfns.c (x_default_font_parameter): Likewise. - * xsettings.c (read_and_apply_settings): Likewise. - - * alloc.c (overrun_check_malloc, overrun_check_realloc) - (overrun_check_free): Protoize. - -2011-04-12 Paul Eggert - - * sysdep.c (emacs_read, emacs_write): Check for negative sizes - since callers should never pass a negative size. - Change the signature to match that of plain 'read' and 'write'; see - . - * lisp.h: Update prototypes of emacs_write and emacs_read. - -2011-04-11 Eli Zaretskii - - * xdisp.c (redisplay_window): Don't try to determine the character - position of the scroll margin if the window start point w->startp - is outside the buffer's accessible region. (Bug#8468) - -2011-04-10 Eli Zaretskii - - Fix write-region and its subroutines for buffers > 2GB. - * fileio.c (a_write, e_write): Modify declaration of arguments and - local variables to support buffers larger than 2GB. - (Fcopy_file): Use EMACS_INT for return value of emacs_read. - - * sysdep.c (emacs_write, emacs_read): Use ssize_t for last - argument, local variables, and return value. - - * lisp.h: Update prototypes of emacs_write and emacs_read. - - * sound.c (vox_write): Use ssize_t for return value of emacs_write. - -2011-04-10 Paul Eggert - - * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack. - - Fix more problems found by GCC 4.6.0's static checks. - - * xdisp.c (vmessage): Use a better test for character truncation. - - * charset.c (load_charset_map): <, not <=, for optimization, - and to avoid potential problems with integer overflow. - * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise. - * casetab.c (set_identity, shuffle): Likewise. - * editfns.c (Fformat): Likewise. - * syntax.c (skip_chars): Likewise. - - * xmenu.c (set_frame_menubar): Allocate smaller local vectors. - This also lets GCC 4.6.0 generate slightly better loop code. - - * callint.c (Fcall_interactively): <, not <=, for optimization. - (Fcall_interactively): Count the number of arguments produced, - not the number of arguments given. This is simpler and lets GCC - 4.6.0 generate slightly better code. - - * ftfont.c: Distingish more carefully between FcChar8 and char. - The previous code passed unsigned char * to a functions like - strlen and xstrcasecmp that expect char *, which does not - conform to the C standard. - (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for - arguments to FcPatternGetString, and explicitly cast FcChar8 * to - char * when the C standard requires it. - - * keyboard.c (read_char): Remove unused var. - - * eval.c: Port to Windows vsnprintf (Bug#8435). - Include . - (SIZE_MAX): Define if the headers do not. - (verror): Do not give up if vsnprintf returns a negative count. - Instead, grow the buffer. This ports to Windows vsnprintf, which - does not conform to C99. Problem reported by Eli Zaretskii. - Also, simplify the allocation scheme, by avoiding the need for - calling realloc, and removing the ALLOCATED variable. - - * eval.c (verror): Initial buffer size is 4000 (not 200) bytes. - - Remove invocations of doprnt, as Emacs now uses vsnprintf. - But keep the doprint source code for now, as we might revamp it - and use it again (Bug#8435). - * lisp.h (doprnt): Remove. - * Makefile.in (base_obj): Remove doprnt.o. - * deps.mk (doprnt.o): Remove. - - error: Print 32- and 64-bit integers portably (Bug#8435). - Without this change, on typical 64-bit hosts error ("...%d...", N) - was used to print both 32- and 64-bit integers N, which relied on - undefined behavior. - * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro. - * lisp.h (error, verror): Mark as printf-like functions. - * eval.c (verror): Use vsnprintf, not doprnt, to do the real work. - Report overflow in size calculations when allocating printf buffer. - Do not truncate output string at its first null byte. - * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work. - Truncate the output at a character boundary, since vsnprintf does not - do that. - * charset.c (check_iso_charset_parameter): Convert internal - character to string before calling 'error', since %c now has the - printf meaning. - * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int - overflow when computing char to be passed to 'error'. Do not - pass Lisp_Object to 'error'; pass the integer instead. - * nsfns.m (Fns_do_applescript): Use int, not long, since it's - formatted with plain %d. +2013-07-26 Eli Zaretskii - * eval.c (internal_lisp_condition_case): Don't pass spurious arg. + * process.c (Fprocess_list): Doc fix. - * keyboard.c (access_keymap_keyremap): Print func name, not garbage. + * w32term.c (w32_read_socket) : Warn about frame + being re-exposed only if it didn't ask to become visible. + : Under SIZE_RESTORED, only set the frame visible if it + was previously iconified. (Bug#14841) + (x_iconify_frame): Mark the frame iconified. - * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int. +2013-07-26 Paul Eggert - * xterm.c (x_catch_errors): Remove duplicate declaration. + Fix minor problems found by static checking. + * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static. + (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC. - * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too. +2013-07-26 Stefan Monnier - * xdisp.c, lisp.h (message_nolog): Remove; unused. + * eval.c (set_specpdl_old_value): New function. + (unbind_to): Minor simplification. + (get_backtrace_frame): New function. + (Fbacktrace_frame): Use it. Add `base' argument. + (backtrace_eval_unrewind, Fbacktrace_eval): New functions. + (syms_of_eval): Export backtrace-eval. + * xterm.c (x_focus_changed): Simplify. -2011-04-10 Jim Meyering +2013-07-25 Paul Eggert - use ssize_t and size_t for read- and write-like emacs_gnutls_* functions - * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like: - return ssize_t not "int", and use size_t as the buffer length. - (emacs_gnutls_write): Likewise, and make the buffer pointer "const". - * gnutls.h: Update declarations. - * process.c (read_process_output): Use ssize_t, to match. - (send_process): Likewise. + * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936). -2011-04-09 Chong Yidong +2013-07-24 Eli Zaretskii - * image.c (Fimagemagick_types): Doc fix, and comment cleanup. + * xdisp.c (redisplay_window): Instead of moving point out of + scroll margin, reject the force_start method, and try scrolling + instead. (Bug#14780) -2011-04-09 Chong Yidong +2013-07-24 Ken Brown - * ftfont.c (get_adstyle_property, ftfont_pattern_entity): - Use unsigned char, to match FcChar8 type definition. + * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined + (Bug#14944). - * xterm.c (handle_one_xevent): - * xmenu.c (create_and_show_popup_menu): - * xselect.c (x_decline_selection_request) - (x_reply_selection_request): Avoid type-punned deref of X events. +2013-07-24 Paul Eggert -2011-04-09 Eli Zaretskii + * eval.c (Fprogn): Do not check that BODY is a proper list. + This undoes the previous change. The check slows down the + interpreter, and is not needed to prevent a crash. See + . - Fix some uses of `int' instead of EMACS_INT. - * search.c (string_match_1, fast_string_match) - (fast_c_string_match_ignore_case, fast_string_match_ignore_case) - (scan_buffer, find_next_newline_no_quit) - (find_before_next_newline, search_command, Freplace_match) - (Fmatch_data): Make some `int' variables be EMACS_INT. +2013-07-23 Glenn Morris - * xdisp.c (display_count_lines): 3rd argument and return value now - EMACS_INT. All callers changed. - (pint2hrstr): Last argument is now EMACS_INT. + * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists. - * coding.c (detect_coding_utf_8, detect_coding_emacs_mule) - (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5) - (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8) - (decode_coding_utf_16, decode_coding_emacs_mule) - (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5) - (decode_coding_ccl, decode_coding_charset) - : Declare EMACS_INT. - (decode_coding_iso_2022, decode_coding_emacs_mule) - (decode_coding_sjis, decode_coding_big5, decode_coding_charset) - : Declare EMACS_INT. - (encode_coding_utf_8, encode_coding_utf_16) - (encode_coding_emacs_mule, encode_invocation_designation) - (encode_designation_at_bol, encode_coding_iso_2022) - (encode_coding_sjis, encode_coding_big5, encode_coding_ccl) - (encode_coding_raw_text, encode_coding_charset) : - Declare EMACS_INT. - (ASSURE_DESTINATION): Declare more_bytes EMACS_INT. - (encode_invocation_designation): Last argument P_NCHARS is now - EMACS_INT. - (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT. - (produce_chars): from_nchars and to_nchars are now EMACS_INT. +2013-07-23 Paul Eggert - * coding.h (struct coding_system) : Declare EMACS_INT. - All users changed. + Port to GNU/Linux systems with tinfo but not ncurses. + * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX, + to decide whether ncurses is being used. Without this change, + GCC complains about tgetent not being declared, on a system + that has tinfo installed but ncurses not installed. - * ccl.c (Fccl_execute_on_string): Declare some variables - EMACS_INT. + * eval.c (Fprogn): Check that BODY is a proper list. -2011-04-08 Samuel Thibault (tiny change) + Tune UNEVALLED functions by using XCAR instead of Fcar, etc. + * data.c (Fsetq_default): + * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar) + (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect) + (Fcondition_case): + Tune by taking advantage of the fact that ARGS is always a list + when a function is declared to have UNEVALLED args. - * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450). + * emacsgtkfixed.c: Port to GCC 4.6. + GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7. -2011-03-19 Christoph Scholtes +2013-07-23 Juanma Barranquero - * process.c (Fformat_network_address): Doc fix. + * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid + here to silence compiler warnings. -2011-04-08 T.V. Raman (tiny change) +2013-07-22 Paul Eggert - * xml.c (parse_region): Avoid creating spurious whitespace nodes. + * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame + when including , to prevent Sparc/ARM machine/frame.h + from messing up Emacs's 'struct frame' (Bug#14923). -2011-04-08 Chong Yidong +2013-07-21 Paul Eggert - * keyboard.c (read_char): Call Lisp function help-form-show, - instead of using internal_with_output_to_temp_buffer. - (Qhelp_form_show): New var. - (syms_of_keyboard): Use DEFSYM macro. + * alloc.c (make_save_ptr_ptr): Define this function. + It was inadvertently omitted. It's needed only if + HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK). - * print.c (internal_with_output_to_temp_buffer): Function deleted. +2013-07-21 Jan Djärv - * lisp.h (internal_with_output_to_temp_buffer): Remove prototype. + * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs + frame have focus (Bug#14895). -2011-04-06 Chong Yidong +2013-07-21 Paul Eggert - * process.c (Flist_processes): Remove to Lisp. - (list_processes_1): Delete. + Avoid vfork-related deadlock more cleanly. + * callproc.c (child_setup): When the child's exec fails, output + the program name, as that's more useful. Use O_NONBLOCK to avoid + deadlock. + * process.c (create_process_1): Remove; no longer needed. + (create_process): Remove timer hack; no longer needed, now that + the child avoids deadlock. -2011-04-06 Eli Zaretskii +2013-07-20 Glenn Morris - * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements. + * image.c (Fimage_flush): Fix doc typo. - * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs. +2013-07-20 Paul Eggert -2011-04-06 Paul Eggert + Fix array bounds violation when pty allocation fails. + * process.c (PTY_NAME_SIZE): New constant. + (pty_name): Remove static variable; it's now auto. + (allocate_pty): Define even if !HAVE_PTYS; that's simpler. + Take pty_name as an arg rather than using a static variable. + All callers changed. + (create_process): Recover pty_flag from process, not from volatile local. + (create_pty): Stay inside array even when pty allocation fails. + (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag. + + * lread.c (Fload): Avoid initialization only when lint checking. + Mention that it's needed only for older GCCs. + +2013-07-20 Kenichi Handa + + * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro. + (decode_coding_iso_2022): Check the single-shift area. (Bug#8522) + +2013-07-20 Andreas Schwab + + * lread.c (Fload): Avoid uninitialized warning. + +2013-07-19 Paul Eggert + + Fix some minor file descriptor leaks and related glitches. + * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC. + (create_lock_file): Use write, not emacs_write. + * image.c (slurp_file, png_load_body): + * process.c (Fnetwork_interface_list, Fnetwork_interface_info) + (server_accept_connection): + Don't leak an fd on memory allocation failure. + * image.c (slurp_file): Add a cheap heuristic for growing files. + * xfaces.c (Fx_load_color_file): Block input around the fopen too, + as that's what the other routines do. Maybe input need not be + blocked at all, but it's better to be consistent. + Avoid undefined behavior when strlen is zero. + + * alloc.c (staticpro): Avoid buffer overrun on repeated calls. + (NSTATICS): Now a constant; doesn't need to be a macro. + +2013-07-19 Richard Stallman + + * coding.c (decode_coding_utf_8): Add simple loop for fast + processing of ASCII characters. + +2013-07-19 Paul Eggert + + * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization. + +2013-07-19 Eli Zaretskii + + * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of + unportable 'struct x_display_info'. + (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info + is a portable type. + +2013-07-19 Paul Eggert + + * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues. + (procfs_ttyname): Don't use uninitialized storage if emacs_fopen + or fscanf fails. + (system_process_attributes): Prefer plain char to unsigned char + when either will do. Clean up properly if interrupted or if + memory allocations fail. Don't assume sscanf succeeds. + Remove no-longer-needed workaround to stop GCC from whining. + Read command-line once, instead of multiple times. Check read status a + bit more carefully. + + Fix obscure porting bug with varargs functions. + The code assumed that int is treated like ptrdiff_t in a vararg + function, which is not a portable assumption. There was a similar + -- though these days less likely -- porting problem with various + assumptions that pointers of different types all smell the same as + far as vararg functions is conserved. To make this problem less + likely in the future, redo the API to use varargs functions. + * alloc.c (make_save_value): Remove this vararg function. + All uses changed to ... + (make_save_int_int_int, make_save_obj_obj_obj_obj) + (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory): + New functions. + (make_save_ptr): Rename from make_save_pointer, for consistency with + the above. Define only on platforms that need it. All uses changed. - Fix more problems found by GCC 4.6.0's static checks. +2013-07-18 Paul Eggert - * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats. + * keyboard.c: Try to fix typos in previous change. + (DISPLAY_LIST_INFO): New macro. + (kbd_buffer_get_event): Do not access members that are not present + in X11. Revert inadvertent change of "!=" to "=". - * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats. +2013-07-18 Juanma Barranquero - * lisp.h (message, message_nolog, fatal): Mark as printf-like. + * keyboard.c (kbd_buffer_get_event): + * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32. + Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se. - * xdisp.c (vmessage): Mark as a printf-like function. +2013-07-18 Paul Eggert - * term.c (vfatal, maybe_fatal): Mark as printf-like functions. + * filelock.c: Fix unlikely file descriptor leaks. + (get_boot_time_1): Rework to avoid using emacs_open. + This doesn't actually fix a leak, but is better anyway. + (read_lock_data): Use read, not emacs_read. - * sound.c (sound_warning): Don't crash if arg contains a printf format. + * doc.c: Fix minor memory and file descriptor leaks. + * doc.c (get_doc_string): Fix memory leak when doc file absent. + (get_doc_string, Fsnarf_documentation): + Fix file descriptor leak on error. + + * term.c: Fix minor fdopen-related file descriptor leaks. + * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails. + (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails. + + * charset.c: Fix file descriptor leaks and errno issues. + Include . + (load_charset_map_from_file): Don't leak file descriptor on error. + Use plain record_xmalloc since the allocation is larger than + MAX_ALLOCA; that's simpler here. Simplify test for exhaustion + of entries. + * eval.c (record_unwind_protect_nothing): + * fileio.c (fclose_unwind): + New functions. + * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind. + The replacement doesn't block input, but that no longer seems + necessary. + +2013-07-17 Paul Eggert + + * lread.c: Fix file descriptor leaks and errno issues. + (Fload): Close some races that leaked fds or streams when 'load' + was interrupted. + (Fload, openp): Report error number of last nontrivial failure to open. + ENOENT counts as trivial. + * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr): + New functions. + * fileio.c (close_file_unwind): No need to test whether FD is nonnegative, + now that the function is always called with a nonnegative arg. + * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove. + All uses replaced with ... + (clear_unwind_protect, set_unwind_protect_ptr): New decls. - * image.c (tiff_error_handler, tiff_warning_handler): Mark as - printf-like functions. - (tiff_load): Add casts to remove these marks before passing them - to system-supplied API. + A few more minor file errno-reporting bugs. + * callproc.c (Fcall_process): + * doc.c (Fsnarf_documentation): + * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link): + * process.c (set_socket_option): + Don't let a constructor trash errno. + * doc.c: Include . + +2013-07-16 Juanma Barranquero + + * w32fns.c (unwind_create_tip_frame): Fix declaration. + +2013-07-16 Paul Eggert + + Fix w32 bug with call-process-region (Bug#14885). + * callproc.c (Fcall_process_region): Pass nil, not "/dev/null", + to Fcall_process when the input is empty. This simplifies the + code a bit. It makes no difference on POSIXish platforms but + apparently it fixes a bug on w32. + + Fix bug where insert-file-contents closes a file twice (Bug#14839). + * fileio.c (close_file_unwind): Don't close if FD is negative; + this can happen when unwinding a zapped file descriptor. + (Finsert_file_contents): Unwind-protect the fd before the point marker, + in case Emacs runs out of memory between the two unwind-protects. + Don't trash errno when closing FD. + Zap the FD in the specpdl when closing it, instead of deferring + the removal of the unwind-protect; this fixes a bug where a child + function unwinds the stack past us. + + New unwind-protect flavors to better type-check C callbacks. + This also lessens the need to write wrappers for callbacks, + and the need for make_save_pointer. + * alloca.c (free_save_value): + * atimer.c (run_all_atimers): + Now extern. + * alloc.c (safe_alloca_unwind): + * atimer.c (unwind_stop_other_atimers): + * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]: + * menu.c (cleanup_popup_menu) [HAVE_NS]: + * minibuf.c (choose_minibuf_frame_1): + * process.c (make_serial_process_unwind): + * xdisp.h (pop_message_unwind): + * xselect.c (queue_selection_requests_unwind): + Remove no-longer-needed wrapper. All uses replaced by the wrappee. + * alloca.c (record_xmalloc): + Prefer record_unwind_protect_ptr to record_unwind_protect with + make_save_pointer. + * alloca.c (Fgarbage_collect): + Prefer record_unwind_protect_void to passing a dummy. + * buffer.c (restore_buffer): + * window.c (restore_window_configuration): + * xfns.c, w32fns.c (do_unwind_create_frame) + New wrapper. All record-unwind uses of wrappee changed. + * buffer.c (set_buffer_if_live): + * callproc.c (call_process_cleanup, delete_temp_file): + * coding.c (code_conversion_restore): + * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]: + * editfns.c (save_excursion_restore) + (subst_char_in_region_unwind, subst_char_in_region_unwind_1) + (save_restriction_restore): + * eval.c (restore_stack_limits, un_autoload): + * fns.c (require_unwind): + * keyboard.c (recursive_edit_unwind, tracking_off): + * lread.c (record_load_unwind, load_warn_old_style_backquotes): + * macros.c (pop_kbd_macro, restore_menu_items): + * nsfns.m (unwind_create_frame): + * print.c (print_unwind): + * process.c (start_process_unwind): + * search.c (unwind_set_match_data): + * window.c (select_window_norecord, select_frame_norecord): + * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line) + (fast_set_selected_frame): + * xfns.c, w32fns.c (unwind_create_tip_frame): + Return void, not a dummy Lisp_Object. All uses changed. + * buffer.h (set_buffer_if_live): Move decl here from lisp.h. + * callproc.c (call_process_kill): + * fileio.c (restore_point_unwind, decide_coding_unwind) + (build_annotations_unwind): + * insdel.c (Fcombine_after_change_execute_1): + * keyboard.c (read_char_help_form_unwind): + * menu.c (unuse_menu_items): + * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind): + * sound.c (sound_cleanup): + * xdisp.c (unwind_redisplay): + * xfns.c (clean_up_dialog): + * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind): + Accept no args and return void, instead of accepting and returning + a dummy Lisp_Object. All uses changed. + * cygw32.c (fchdir_unwind): + * fileio.c (close_file_unwind): + * keyboard.c (restore_kboard_configuration): + * lread.c (readevalllop_1): + * process.c (wait_reading_process_output_unwind): + Accept int and return void, rather than accepting an Emacs integer + and returning a dummy object. In some cases this fixes an + unlikely bug when the corresponding int is outside Emacs integer + range. All uses changed. + * dired.c (directory_files_internal_unwind): + * fileio.c (do_auto_save_unwind): + * gtkutil.c (pop_down_dialog): + * insdel.c (reset_var_on_error): + * lread.c (load_unwind): + * xfns.c (clean_up_file_dialog): + * xmenu.c, nsmenu.m (pop_down_menu): + * xmenu.c (cleanup_widget_value_tree): + * xselect.c (wait_for_property_change_unwind): + Accept pointer and return void, rather than accepting an Emacs + save value encapsulating the pointer and returning a dummy object. + All uses changed. + * editfns.c (Fformat): Update the saved pointer directly via + set_unwind_protect_ptr rather than indirectly via make_save_pointer. + * eval.c (specpdl_func): Remove. All uses replaced by definiens. + (unwind_body): New function. + (record_unwind_protect): First arg is now a function returning void, + not a dummy Lisp_Object. + (record_unwind_protect_ptr, record_unwind_protect_int) + (record_unwind_protect_void): New functions. + (unbind_to): Support SPECPDL_UNWIND_PTR etc. + * fileio.c (struct auto_save_unwind): New type. + (do_auto_save_unwind): Use it. + (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind. + * insdel.c (struct rvoe_arg): New type. + (reset_var_on_error): Use it. + * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID): + New constants. + (specbinding_func): Remove; there are now several such functions. + (union specbinding): New members unwind_ptr, unwind_int, unwind_void. + (set_unwind_protect_ptr): New function. + * xselect.c: Remove unnecessary forward decls, to simplify maintenance. + + Be simpler and more consistent about reporting I/O errors. + * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region): + Say "Read error" and "Write error", rather than "I/O error", or + "IO error reading", or "IO error writing", when a read or write + error occurs. + * process.c (Fmake_network_process, wait_reading_process_output) + (send_process, Fprocess_send_eof, wait_reading_process_output): + Capitalize diagnostics consistently. Put "failed foo" at the + start of the diagnostic, so that we don't capitalize the + function name "foo". Consistently say "failed" for such + diagnostics. + * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string. + All callers changed. This is so it can use report_file_error. + * sysdep.c (serial_open, serial_configure): Capitalize I/O + diagnostics consistently as above. + + * fileio.c (report_file_errno): Fix errno reporting bug. + If the file name is neither null nor a pair, package it up as a + singleton list. All callers changed, both to this function and to + report_file_error. This fixes a bug where the memory allocator + invoked by list1 set errno so that the immediately following + report_file_error reported the wrong errno value. + + Fix minor problems found by --enable-gcc-warnings. + * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value. + * keyboard.c (kbd_buffer_get_event): Remove unused local. + +2013-07-16 Jan Djärv + + * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT. + Set event->arg to Qt if switch-event shall be generated. + Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame. + + * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT. + + * nsterm.m (windowDidResignKey): If this is the focused frame, generate + FOCUS_OUT_EVENT. + + * keyboard.c (Qfocus_in, Qfocus_out): New static objects. + (make_lispy_focus_in, make_lispy_focus_out): Declare and define. + (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no + switch frame event is made. Check ! NILP (event->arg) if X11 (moved + from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11 + and there is a focused frame. + (head_table): Add focus-in and focus-out. + (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map, + bind to handle-focus-in/out. + + * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions. + (Fhandle_switch_frame): Call Fhandle_focus_in. + (syms_of_frame): defsubr handle-focus-in/out. + +2013-07-16 Paul Eggert + + Fix porting bug to older POSIXish platforms (Bug#14862). + * sysdep.c (emacs_pipe): New function, that implements + pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC. + This should port better to CentOS 5 and to Mac OS X 10.6. + All calls to pipe2 changed. + + Prefer list1 (X) to Fcons (X, Qnil) when building lists. + This makes the code easier to read and the executable a bit smaller. + Do not replace all calls to Fcons that happen to create lists, + just calls that are intended to create lists. For example, when + creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil)) + rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil). + Similarly for list2 through list5. + * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): + * bytecode.c (exec_byte_code): + * callint.c (quotify_arg, Fcall_interactively): + * callproc.c (Fcall_process, create_temp_file): + * charset.c (load_charset_map_from_file) + (Fdefine_charset_internal, init_charset): + * coding.c (get_translation_table, detect_coding_system) + (Fcheck_coding_systems_region) + (Fset_terminal_coding_system_internal) + (Fdefine_coding_system_internal, Fdefine_coding_system_alias): + * composite.c (update_compositions, Ffind_composition_internal): + * dired.c (directory_files_internal, file_name_completion) + (Fsystem_users): + * dispnew.c (Fopen_termscript, bitch_at_user, init_display): + * doc.c (Fsnarf_documentation): + * editfns.c (Fmessage_box): + * emacs.c (main): + * eval.c (do_debug_on_call, signal_error, maybe_call_debugger) + (Feval, eval_sub, Ffuncall, apply_lambda): + * fileio.c (make_temp_name, Fcopy_file, Faccess_file) + (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes) + (Fset_file_times, Finsert_file_contents) + (Fchoose_write_coding_system, Fwrite_region): + * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns): + * font.c (font_registry_charsets, font_parse_fcname) + (font_prepare_cache, font_update_drivers, Flist_fonts): + * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset): + * frame.c (make_frame, Fmake_terminal_frame) + (x_set_frame_parameters, x_report_frame_params) + (x_default_parameter, Fx_parse_geometry): + * ftfont.c (syms_of_ftfont): + * image.c (gif_load): + * keyboard.c (command_loop_1): + * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1) + (Fcopy_keymap, append_key, Fcurrent_active_maps) + (Fminor_mode_key_binding, accessible_keymaps_1) + (Faccessible_keymaps, Fwhere_is_internal): + * lread.c (read_emacs_mule_char): + * menu.c (find_and_return_menu_selection): + * minibuf.c (get_minibuffer): + * nsfns.m (Fns_perform_service): + * nsfont.m (ns_script_to_charset): + * nsmenu.m (ns_popup_dialog): + * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard) + (Fx_own_selection_internal): + * nsterm.m (append2): + * print.c (Fredirect_debugging_output) + (print_prune_string_charset): + * process.c (Fdelete_process, Fprocess_contact) + (Fformat_network_address, set_socket_option) + (read_and_dispose_of_process_output, write_queue_push) + (send_process, exec_sentinel): + * sound.c (Fplay_sound_internal): + * textprop.c (validate_plist, add_properties) + (Fput_text_property, Fadd_face_text_property) + (copy_text_properties, text_property_list, syms_of_textprop): + * unexaix.c (report_error): + * unexcoff.c (report_error): + * unexsol.c (unexec): + * xdisp.c (redisplay_tool_bar, store_mode_line_string) + (Fformat_mode_line, syms_of_xdisp): + * xfaces.c (set_font_frame_param) + (Finternal_lisp_face_attribute_values) + (Finternal_merge_in_global_face, syms_of_xfaces): + * xfns.c (x_default_scroll_bar_color_parameter) + (x_default_font_parameter, x_create_tip_frame): + * xfont.c (xfont_supported_scripts): + * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show) + (menu_help_callback, xmenu_show): + * xml.c (make_dom): + * xterm.c (set_wm_state): + Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list, + and similarly for list2 through list5. + +2013-07-15 Paul Eggert + + * callproc.c (Fcall_process_region): Fix minor race and tune. + (create_temp_file): New function, with the temp-file-creation part + of the old Fcall_process_region. Use Fcopy_sequence to create the + temp file name, rather than alloca + build_string, for simplicity. + Don't bother to block input around the temp file creation; + shouldn't be needed. Simplify use of mktemp. + Use record_unwind_protect immediately after creating the temp file; + this closes an unlikely race where the temp file was not removed. + Use memcpy rather than an open-coded loop. + (Fcall_process_region): Use the new function. If the input is + empty, redirect from /dev/null rather than from a newly created + empty temp file; this avoids unnecessary file system traffic. + +2013-07-14 Paul Eggert + + * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]: + Simplify by making this case like the other two. This is a bit + slower on obsolete hosts, but the extra complexity isn't worth it. + + * callproc.c (child_setup, relocate_fd) [!DOS_NT]: + * process.c (create_process) [!DOS_NT]: + Remove now-unnecessary calls to emacs_close. + +2013-07-13 Eli Zaretskii + + * w32term.c (x_draw_hollow_cursor): Delete the brush object when + returning early. (Bug#14850) + + * coding.c (syms_of_coding): Set up inhibit-null-byte-detection + and inhibit-iso-escape-detection attributes of 'undecided'. + (Bug#14822) + +2013-07-13 Paul Eggert + + * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h. + Reported by Herbert J. Skuhra in + . + + Don't lose top specpdl entry when memory is exhausted. + * eval.c (grow_specpdl): Increment specpdl top by 1 and check for + specpdl overflow here, to simplify callers; all callers changed. + Always reserve an unused entry at the stack top; this avoids + losing the top entry's information when memory is exhausted. + +2013-07-12 Paul Eggert + + Clean up errno reporting and fix some errno-reporting bugs. + * callproc.c (Fcall_process): + * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region): + * process.c (create_process, Fmake_network_process): + * unexaix.c (report_error): + * unexcoff.c (report_error): + Be more careful about reporting the errno of failed operations. + The code previously reported the wrong errno sometimes. + Also, prefer report_file_errno to setting errno + report_file_error. + (Fcall_process): Look at openp return value rather than at path, + as that's a bit faster and clearer when there's a numeric predicate. + * fileio.c (report_file_errno): New function, with most of the + old contents of report_file_error. + (report_file_error): Use it. + (Ffile_exists_p, Ffile_accessible_directory_p): + Set errno to 0 when it is junk. + * fileio.c (Faccess_file): + * image.c (x_create_bitmap_from_file): + Use faccessat rather than opening the file, to avoid the hassle of + having a file descriptor open. + * lisp.h (report_file_errno): New decl. + * lread.c (Flocate_file_internal): File descriptor 0 is valid, too. + + Minor EBADF fixes. + * process.c (create_process, wait_reading_process_output) [AIX]: + Remove obsolete SIGHUP-related code, as Emacs no longer disables + SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in + a multithreaded environment anyway). + * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1). + +2013-07-12 Andreas Schwab + + * image.c (x_find_image_file): Don't close a remote file handle. + +2013-07-12 Paul Eggert + + Fix races with threads and file descriptors. + * callproc.c (Fcall_process_region): + * dired.c (open_directory): + * emacs.c (main, Fdaemon_initialized): + * image.c (x_find_image_file): + * inotify.c (Finotify_rm_watch): + * lread.c (Flocate_file_internal): + * process.c (Fnetwork_interface_list, Fnetwork_interface_info): + * term.c (term_mouse_moveto, init_tty): + * termcap.c (tgetent): + * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs) + * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec): + * unexhp9k800.c, unexmacosx.c (unexec): + * callproc.c (Fcall_process_region): + Use emacs_close, not close. + * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]: + New macro and function, which emulates the POSIX_CLOSE_RESTART macro + and posix_close function on current platforms (which all lack them). + (emacs_close): Use it. This should fix the races on GNU/Linux and + on AIX and on future platforms that support POSIX_CLOSE_RESTART, + and it should avoid closing random victim file descriptors on + other platforms. + +2013-07-11 Paul Eggert + + * inotify.c (uninitialized): Remove. All uses replaced by -1. + (Finotify_add_watch): Simplify, since -1 means uninitialized now. + Touch up doc a bit. + + * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE. + This is for .gdbinit xbacktrace. + + * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes. + * sysdep.c (emacs_get_tty): Return void, since nobody uses the value. + (emacs_set_tty): Now static. + * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close): + * term.c (tty_capable_p, tty_default_color_capabilities) + (get_tty_terminal, term_mouse_movement) + (handle_one_term_event, init_tty, maybe_fatal): + * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p) + (tgetent, scan_file, name_match, compare_contin): + * terminal.c (get_terminal): + Use bool for boolean. + * sysdep.c (init_system_name): Don't overflow stack on huge hostname. + Prefer char to unsigned char if either will do. + * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int. + (tty_write_glyphs): Prefer int to unsigned. + (produce_glyphless_glyph): Remove 2nd (unused) int arg. + All callers changed. + * termcap.c (tprint, main) [TEST]: Remove non-working test. - * eval.c (Fsignal): Remove excess argument to 'fatal'. +2013-07-10 Paul Eggert - * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int. - This avoids several warnings with gcc -Wstrict-overflow. - (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code - directly, rather than having caller test rule sign. This avoids - some unnecessary tests. - * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro. - (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This - affects only one use, in DECODE_COMPOSITION_RULE, which is changed. + Port to C89. + * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__. + (B__dummy__): New dummy symbol, to pacify C89. + * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since + they can't grok varargs macros. + * dispnew.c (add_window_display_history) + (add_frame_display_history): + * print.c (print_object): + * xdisp.c (debug_method_add): + Use %p printf format only for void pointers. + * emacs.c (usage_message): New constant, replacing ... + (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89. + (main): Adjust to usage reorg. + * fns.c (syms_of_fns): + * profiler.c (syms_of_profiler): + Don't use non-constant struct initializers. + * gnutls.h (gnutls_initstage_t): + * lisp.h (enum Lisp_Fwd_Type): + * lread.c (lisp_file_lexically_bound_p): + * xsettings.c (anonymous enum): + Remove trailing comma. + * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism. + * 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. + * regex.c (const_re_char): New type, to pacify strict C89. + All uses of 'const re_char' replaced to use it. + * 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. + * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]: + Omit GNU_LINUX implementation, since it requires long long. + * 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. + + Syntax cleanup, mostly replacing macros with functions. + This removes the need for the syntax_temp hack. + * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR. + * syntax.c (SYNTAX_INLINE): New macro. + (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND) + (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND) + (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB) + (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2) + (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE) + (SYNTAX_COMEND_FIRST): Now functions, not macros. + (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE): + Now constants, not macros. + (syntax_temp) [!__GNUC__]: Remove. + (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p. + (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here. + (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH) + (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): + Move here from syntax.h; now functions, not macros. Except for the + last function, these are static since only syntax.c uses them. + (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK. + All uses changed. Now a function, not a macro; use this fact + to simplify the code. + (scan_lists, scan_sexps_forward): Remove workarounds for ancient + compiler bugs; no longer relevant. + * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + (SYNTAX_INLINE): New macro. + (struct gl_state_s, gl_state): Move earlier, so that it's in scope + for the new functions. Use bool for boolean member. + (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH) + (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD) + (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE) + (SETUP_BUFFER_SYNTAX_TABLE): + Now extern inline functions, not macros. + (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT): + Remove; all uses replaced by implementation. + (syntax_temp) [!__GNUC__]: Remove decl. + (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl. + +2013-07-10 Jan Djärv + + * emacs.c (main): Fix syntax error. + +2013-07-10 Paul Eggert + + Timestamp fixes for undo (Bug#14824). + * atimer.c (schedule_atimer): + * fileio.c (Ffile_newer_than_file_p): + Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT. + * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1). + * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el. + (syms_of_fileio): Remove Sclear_visited_file_name. + (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited + file doesn't exist; this avoids an ambiguity with negative timestamps. + (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg. + * systime.h (make_emacs_time, invalid_emacs_time): + Don't assume struct timespec layout; POSIX doesn't guarantee it. + (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove. + * undo.c (record_first_change): Push (visited-file-modtime) onto + undo list rather than reimplementing it by hand, incorrectly. + +2013-07-09 Ken Brown + + * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB. + +2013-07-09 Juanma Barranquero + + * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update. + +2013-07-09 Paul Eggert + + Handle errno and exit status a bit more carefully. + * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error + number into an exit status. Instead, use EXIT_CANCELED. + (child_setup) [!MSDOS]: Avoid possible deadlock with vfork. + * callproc.c (relocate_fd): + * emacs.c (close_output_streams, main): + * process.c (create_process): + * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]: + Use emacs_perror for simplicity. + * callproc.c (relocate_fd, main): + * sysdep.c (sys_subshell): + Exit with EXIT_CANCELED etc., not 1, when exec setup fails. + (shut_down_emacs): Use emacs_write, not write. + * emacs.c, sysdep.c: Don't include . + * fileio.c (Fcopy_file, e_write): + * nsterm.m (ns_select): + * process.c (send_process): + * sound.c (vox_write): + Use emacs_write_sig, not emacs_write. + * lisp.h (emacs_write_sig, emacs_perror): New decls. + * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT): + New constants. + * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value + of write. + (emacs_full_write): New function. + (emacs_write): Rewrite to use it. + (emacswrite_sig, emacs_perror): New functions. + * xrdb.c (fatal): Don't invoke perror, since errno might be garbage. + +2013-07-08 Magnus Henoch (tiny change) + + * image.c (imagemagick_load_image): Do not use MagickExportImagePixels + on NS even if it is present. Pixmap on NS is a void*. + +2013-07-07 Paul Eggert + + Port to Ubuntu 10 (Bug#14803). + Problem reported by T.V. Raman. + * process.c (close_on_exec, accept4, process_socket): + Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC. + +2013-07-07 Eli Zaretskii + + * w32.c (sys_dup): Declare prototype. + + * filelock.c: + * emacs.c: + * callproc.c [WINDOWSNT]: Include sys/socket.h. + +2013-07-07 Paul Eggert + + Make file descriptors close-on-exec when possible (Bug#14803). + This simplifies Emacs a bit, since it no longer needs to worry + about closing file descriptors by hand in some cases. + It also fixes some unlikely races. Not all such races, as + libraries often open files internally without setting + close-on-exec, but it's an improvement. + * alloc.c (valid_pointer_p) [!WINDOWSNT]: + * callproc.c (Fcall_process) [!MSDOS]: + * emacs.c (main) [!DOS_NT]: + * nsterm.m (ns_term_init): + * process.c (create_process): + Use 'pipe2' with O_CLOEXEC instead of 'pipe'. + * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]: + * filelock.c (create_lock_file) [HAVE_MKOSTEMP]: + Prefer mkostemp with O_CLOEXEC to mkstemp. + * callproc.c (relocate_fd) [!WINDOWSNT]: + * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD. + No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're + now using pipe2. + * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]: + Make the resulting file descriptor close-on-exec. + * lisp.h, lread.c, process.c (close_load_descs, close_process_descs): + * lread.c (load_descriptor_list, load_descriptor_unwind): + Remove; no longer needed. All uses removed. + * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system. + (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]: + New functions. + (socket) [!SOCK_CLOEXEC]: Supply a substitute. + (Fmake_network_process, Fnetwork_interface_list): + (Fnetwork_interface_info, server_accept_connection): + Make newly-created socket close-on-exec. + * sysdep.c (emacs_open, emacs_fopen): + Make new-created descriptor close-on-exec. + * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs. + * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg. - * xfont.c (xfont_text_extents): Remove var that was set but not used. - (xfont_open): Avoid unnecessary tests. +2013-07-07 Jan Djärv - * composite.c (composition_gstring_put_cache): Use unsigned integer. + * nsterm.m (sendEvent:): Propagate keyboard events to modal windows + for NS_IMPL_GNUSTEP. - * composite.h, composite.c (composition_gstring_put_cache): - Use EMACS_INT, not int, for length. +2013-07-07 Paul Eggert - * composite.h (COMPOSITION_DECODE_REFS): New macro, - breaking out part of COMPOSITION_DECODE_RULE. - (COMPOSITION_DECODE_RULE): Use it. - * composite.c (get_composition_id): Remove unused local vars, - by using the new macro. + Fix openp errno handling. + * callproc.c (Fcall_process): Preserve openp errno around close. + * lread.c (openp): Set errno when returning -1, as some callers + expect this. - * textprop.c (set_text_properties_1): Change while to do-while, - since the condition is always true at first. +2013-07-06 Jan Djärv - * intervals.c (graft_intervals_into_buffer): Mark var as used. - (interval_deletion_adjustment): Return unsigned value. - All uses changed. + * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG. - * process.c (list_processes_1, create_pty, read_process_output): - (exec_sentinel): Remove vars that were set but not used. - (create_pty): Remove unnecessary "volatile"s. - (Fnetwork_interface_info): Avoid possibility of int overflow. - (read_process_output): Do adaptive read buffering even if carryover. - (read_process_output): Simplify nbytes computation if buffered. + * nsterm.h (NSSavePanel): Update comment. + (NSAPP_DATA2_RUNFILEDIALOG): Define. + (ns_run_file_dialog): Declare. - * bytecode.c (exec_byte_code): Rename local to avoid shadowing. + * nsfns.m: Remove panelOK. + (ns_fd_data): New. + (ns_run_file_dialog): New function. + (Fns_read_file_name): Fill in ns_fd_data, post an event and start the + event loop, so file dialog is popped up by ns_run_file_dialog, called + by sendEvent (Bug#14578). + (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods. - * syntax.c (scan_words): Remove var that was set but not used. - (update_syntax_table): Use unsigned instead of int. +2013-07-06 Eli Zaretskii - * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs. - (lisp_file_lexically_bound_p, read1): Use unsigned instead of int. - (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop. + * xdisp.c (default_line_pixel_height): New function. + (pos_visible_p, move_it_vertically_backward, try_scrolling) + (try_cursor_movement, redisplay_window, try_window) + (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771) - * print.c (print_error_message): Avoid int overflow. + * window.c (window_scroll_pixel_based): + use default_line_pixel_height. - * font.c (font_list_entities): Redo for clarity, - so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX. + * dispextern.h (default_line_pixel_height): Add prototype. - * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars. - (font_score): Avoid potential overflow in diff calculation. + * frame.c (x_set_line_spacing): Accept a float value for + line-spacing parameter, per the documentation. - * fns.c (substring_both): Remove var that is set but not used. - (sxhash): Redo loop for clarity and to avoid wraparound warning. + * data.c (Fmultibyte_string_p): Doc fix. - * eval.c (funcall_lambda): Rename local to avoid shadowing. +2013-07-05 Paul Eggert - * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int. - Otherwise, GCC 4.6.0 optimizes the loop check away since the check - can always succeed if overflow has undefined behavior. + Use emacs_open more consistently when opening files. + This handles EINTR more consistently now, and makes it easier + to introduce other uniform changes to file descriptor handling. + * src/systdio.h: New file. + * src/buffer.c (mmap_init): + * cygw32.c (chdir_to_default_directory): + * dispnew.c (Fopen_termscript): + * emacs.c (Fdaemon_initialized): + * fileio.c (Fdo_auto_save): + * image.c (slurp_file, png_load_body, jpeg_load_body): + * keyboard.c (Fopen_dribble_file): + * lread.c (Fload): + * print.c (Fredirect_debugging_output): + * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory): + * termcap.c (tgetent): + * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs): + * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec): + * w32term.c (w32_initialize) [CYGWIN]: + * xfaces.c (Fx_load_color_file): + Use emacs_open instead of plain open, and emacs_fopen instead of + plain fopen. + * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c: + * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen. + * callproc.c (default_output_mode): New constant. + (Fcall_process): Use it to call emacs_open instead of plain creat. + * dispnew.c (Fopen_termscript): Fix minor race in opening termscript. + * sysdep.c (emacs_open): Add commentary and don't call file name "path". + (emacs_fopen): New function. + * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c: + Include , for emacs_open. + * unexelf.c (fatal): Remove decl; not needed with included. + + Remove duplicate #include directives. + * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]: + * xfaces.c: + Don't include stdio.h twice. + * buffer.c [USE_MMAP_FOR_BUFFERS]: + Don't include sys/types.h or stdio.h twice. + * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice. + * lread.c: Don't include coding.h twice. + * nsfont.m: Don't include frame.h twice. + * process.c [HAVE_RES_INIT]: Don't include twice. + * ralloc.c: Don't include twice. + * xdisp.c: Don't include font.h twice. + * xterm.c: Don't include fontset.h twice. + * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice. + +2013-07-04 Paul Eggert + + Scale ImageMagick images more carefully. + * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function. + (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK. + Be more careful about avoiding undefined behavior after + integer overflow and division by zero. + +2013-07-04 YAMAMOTO Mitsuharu + + * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables. + (syms_of_w32fns): DEFSYM them. + (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN) + (CCHDEVICENAME): Define macros if not defined. + (struct MONITOR_INFO_EX): New struct. + (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes. + (enum_display_monitors_fn): New variable. + (globals_of_w32fns): Initialize it. + (Fx_display_pixel_width, Fx_display_pixel_height) + (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on + multi-monitor setups in docstrings. + (Fx_display_mm_height, Fx_display_mm_width): Approximate whole + screen size by primary monitor's millimeter per pixel. + (w32_monitor_enum, w32_display_monitor_attributes_list) + (w32_display_monitor_attributes_list_fallback) + (Fw32_display_monitor_attributes_list): New functions. + (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list. + + * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros + if not defined. + (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics. + +2013-07-04 Michael Albinus + + * fileio.c (Qfile_notify_error): New error symbol. + + * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch): + * inotify.c (inotify_callback, symbol_to_inotifymask) + (Finotify_add_watch, Finotify_rm_watch): Use it. + (inotifyevent_to_event): Exchange order of cookie and file name. + (Finotify_add_watch): Adapt docstring. + + * lisp.h (Qfile_notify_error): Declare. + +2013-07-04 Paul Eggert + + Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569). + * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]: + Do not clear _malloc_thread_enabled_p, undoing the previous change, + which did not work (see ). + (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP + && (!noninteractive || initialized)). This attempts to thread + the needle between the Scylla of FreeBSD and the Charybdis of Cygwin. + +2013-07-04 Juanma Barranquero + + * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'. + (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'. + +2013-07-04 Paul Eggert + + Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569). + * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]: + Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in + . + +2013-07-02 Paul Eggert + + * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]: + Define to __sys_siglist. + +2013-07-02 Eli Zaretskii + + * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow + word-wrap, so that overflow-newline-into-fringe would work in + visual-line-mode. (Bug#2749) + (move_it_in_display_line_to): When the last scanned display + element fits exactly on the display line, and + overflow-newline-into-fringe is non-nil, but wrap_it is valid, + don't return MOVE_NEWLINE_OR_CR, but instead back up to the last + wrap point and return MOVE_LINE_CONTINUED. Fixes problems with + finding buffer position that corresponds to pixel coordinates, + e.g. in buffer_posn_from_coords. + +2013-07-02 Jan Djärv + + * process.c (handle_child_signal): Call catch_child_signal if + NS_IMPL_GNUSTEP. + +2013-07-02 Paul Eggert + + Don't convert function pointers to void * and back. + It isn't portable C, and it's easy enough to avoid. + * alloc.c: Verify SAVE_FUNCPOINTER bits, too. + (make_save_value): Add support for SAVE_FUNCPOINTER. + * keymap.c (map_keymap_char_table_item, map_keymap_internal): + * print.c (print_object): + Distinguish function from object pointers. + * lisp.h (SAVE_FUNCPOINTER): New constant. + (SAVE_SLOT_BITS): Adjust to it. + (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing + SAVE_TYPE_PTR_PTR_OBJ. Change the only use. + (voidfuncptr): New typedef. + (struct Lisp_Save_Value): New member data[0].funcpointer. + (XSAVE_FUNCPOINTER): New function. - * search.c (boyer_moore, wordify): Remove vars set but not used. - (wordify): Omit three unnecessary tests. + Simplify buildobj processing. + * Makefile.in (buildobj.h): Make it a sequence of strings each + followed by comma, rather than a single string. Put it into a + .tmp file in case there's an error while generating it. + (gl-stamp): Use .tmp for temp files. + (mostlyclean): Clean .tmp files. + * doc.c (buildobj): Move to just the routine that needs it. + It's now an array of strings, so processing is simpler. - * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column. - All callers changed. This avoids the need for an unused var. +2013-07-01 Paul Eggert - * casefiddle.c (casify_region): Remove var that is set but not used. + Fix bug re noninteractive multithreaded memory allocation (Bug#14569). + * emacs.c (malloc_enable_thread): Hoist extern decl to top level. + (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]: + Invoke malloc_enable_thread even when not interactive. + Problem reported by Ken Brown in . + * process.c (init_process_emacs) [CYGWIN]: Tickle glib even + in this case, since the underlying bug has now been fixed. - * dired.c (file_name_completion): Remove var that is set but not used. +2013-07-01 Juanma Barranquero - * fileio.c (Finsert_file_contents): Make EOF condition clearer. + * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before + unlinking it (bug#14691). - * fileio.c (Finsert_file_contents): Avoid signed integer overflow. - (Finsert_file_contents): Remove unnecessary code checking fd. +2013-06-30 Michal Nazarewicz - * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes. - Check for integer overflow on size calculations. + * buffer.c (FKill_buffer): Run `kill-buffer-query-functions' + before checking whether buffer is modified. This lets + `kill-buffer-query-functions' cancel killing of the buffer or save + its content before `kill-buffer' asks user the "Buffer %s + modified; kill anyway?" question. - * buffer.c (Fprevious_overlay_change): Remove var that is set - but not used. +2013-06-30 Jan Djärv - * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt): - Remove vars that are set but not used. - (timer_check_2): Don't assume timer-list and idle-timer-list are lists. - (timer_check_2): Mark vars as initialized. + * nsfns.m (handlePanelKeys): Don't process Command+Function keys. + Let the super performKeyEquivalent deal with them (Bug#14747). - * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized. +2013-06-30 Paul Eggert - * image.c (lookup_image): Remove var that is set but not used. - (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable. + * widget.c (resize_cb): Remove unused local. - * fontset.c (Finternal_char_font, Ffontset_info): Remove vars - that are set but not used. + Do not use GTK 3 if it exists but cannot be compiled. + * xmenu.c (x_menu_wait_for_event) [!USE_GTK]: + * xterm.c (x_error_handler) [!USE_GTK]: + Do not use GTK 3. - * xfns.c (make_invisible_cursor): Don't return garbage - if XCreateBitmapFromData fails (Bug#8410). + * intervals.c (get_local_map): Actually clip POSITION (Bug#14753). - * xselect.c (x_get_local_selection, x_handle_property_notify): - Remove vars that are set but not used. +2013-06-30 Eli Zaretskii - * xfns.c (x_create_tip_frame): Remove var that is set but not used. - (make_invisible_cursor): Initialize a possibly-uninitialized variable. + * intervals.c (get_local_map): Instead of aborting, clip POSITION + to the valid range of values. (Bug#14753) - * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]: - Remove var that is set but not used. - (scroll_bar_windows_size): Now size_t, not int. - (x_send_scroll_bar_event): Use size_t, not int, for sizes. - Check for overflow. + * xdisp.c (Fmove_point_visually): Invalidate the cursor position + when moving point by using the current glyph matrix. This avoids + the need to force redisplay when this function is called in a + loop. - * xfaces.c (realize_named_face): Remove vars that are set but not used. - (map_tty_color) [!defined MSDOS]: Likewise. +2013-06-29 Paul Eggert - * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning. + Fix minor problems found by static checking. + * coding.c (encode_inhibit_flag, inhibit_flag): New functions. + Redo the latter's body to sidestep GCC parenthesization warnings. + (setup_coding_system, detect_coding, detect_coding_system): Use them. + * coding.c (detect_coding, detect_coding_system): + * coding.h (struct undecided_spec): + Use bool for boolean. + * image.c (QCmax_width, QCmax_height): Now static. + * xdisp.c (Fmove_point_visually): Remove unused local. + +2013-06-29 Eli Zaretskii + + * xdisp.c (Fmove_point_visually): New function. + +2013-06-28 Kenichi Handa + + * coding.h (define_coding_undecided_arg_index): New enum. + (coding_attr_index): New members + coding_attr_undecided_inhibit_null_byte_detection, + coding_attr_undecided_inhibit_iso_escape_detection, + coding_attr_undecided_prefer_utf_8. + (undecided_spec): New struct. + (struct coding_system): New member `undecided' of the member + `spec'. + + * coding.c (setup_coding_system): Handle CODING->spec.undecided. + (detect_coding): Likewise. + (detect_coding_system): Likewise. + (Fdefine_coding_system_internal): New coding system properties + :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and + :prefer-utf-8. + (syms_of_coding): Adjust for coding_arg_undecided_max. + +2013-06-28 Paul Eggert + + * image.c (x_from_xcolors): Remove unused local. + +2013-06-28 YAMAMOTO Mitsuharu + + Defer image data transfer between X client and server until actual + display happens. + + * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg' + and `mask_img'. + + * image.c (Destroy_Image): Remove. + (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p', + `mask_p', and `colors_p'. All uses changed. + (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'. + (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS): + New macros for `flags' arg to x_clear_image_1. + (postprocess_image, xpm_load_image, x_build_heuristic_mask) + (png_load_body): Use x_clear_image_1 instead of Free_Pixmap. + (ZPixmap, XGetImage) [HAVE_NS]: Remove. + (image_get_x_image_or_dc, image_unget_x_image_or_dc) + (image_get_x_image, image_unget_x_image): New functions or macros. + (image_background, image_background_transparent, x_to_xcolors) + (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of + XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc + instead of Destroy_Image. + (image_create_x_image_and_pixmap, image_put_x_image): New functions. + (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load) + (png_load_body, jpeg_load_body, tiff_load, gif_load) + (imagemagick_load_image, svg_load_image): Use them instead of + x_create_x_image_and_pixmap, and x_put_x_image followed by + x_destroy_x_image, respectively. + (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and + XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and + XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and + background_transparent fields. + (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function. + (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it. + +2013-06-27 Paul Eggert + + Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569). + This mostly consists of undoing recent changes. + * callproc.c (Fcall_process): + * process.c (create_process): + Do not worry about catching SIGCHLD here, undoing previous change. + * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change. + * process.c, process.h (catch_child_signal): + No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change. + * process.c (catch_child_handler): Don't worry about being called + lazily and do not assume caller has blocked SIGCHLD, undoing + previous change. Move first-time stuff back to + init_process_emacs, undoing 06-22 change. If CYGWIN, do not + tickle glib, as that causes Cygwin bootstrap to fail. Do not + set lib_child_handler if it's already initialized, which may + help avoid problems on GNUStep. + +2013-06-23 Paul Eggert + + A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569). + * callproc.c (Fcall_process): + * process.c (create_process): + Make sure SIGCHLD is caught before we fork, + since Emacs startup no arranges to catch SIGCHLD. + * process.c (lib_child_handler): Initialize to null, not to + dummy_handler. + (catch_child_signal): Allow self to be called lazily. + Do nothing if it's already been called. + Assume caller has blocked SIGCHLD (all callers do now). + * emacs.c (main): Do not catch SIGCHLD here; defer it until + just before it's really needed. + * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here, + since it hasn't been caught yet. + +2013-06-23 Lars Magne Ingebrigtsen + + * image.c (compute_image_size): New function to implement + :max-width and :max-height. + (imagemagick_load_image): Use it. + +2013-06-23 Paul Eggert + + Try to avoid malloc SEGVs on Cygwin (Bug#14569). + * callproc.c, process.h (block_child_signal, unblock_child_signal): + Now extern. + * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify. + * process.c (catch_child_signal): Block SIGCHLD while futzing with + the SIGCHLD handler, since the code is not atomic and (due to glib) + signals may be arriving now. + * sysdep.c (init_signals): Do not catch child signals here; + 'main' now does that later, at a safer time. + +2013-06-22 Paul Eggert + + Clean up SIGCHLD handling a bit (Bug#14569). + * process.c, process.h (catch_child_signal): + Now always extern, even if !NS_IMPL_GNUSTEP. + * process.c (catch_child_signal): Move glib tickler here from + init_process_emacs, so that it's done earlier in Emacs + initialization. Also move the noninteractive && !initialized + check here from init_process_emacs. This is all a bit cleaner for + GNUish platforms, and I hope it works around the Cygwin bug. + * sysdep.c (init_signals): Invoke catch_child_signal here, so + that glib signal handling is tickled before glib creates threads. + + * process.c (wait_reading_process_output): Avoid int overflow + when reading more than 2 GiB total from a process. + +2013-06-21 Paul Eggert + + * process.c (create_process): Handle a couple more cases, + i.e., work even if new_argv and wait_child_setup[i] are cached. + Use Fcall_process's style for volatile vars. + +2013-06-21 Andreas Schwab + + * process.c (create_process): Mark PROCESS volatile. + +2013-06-21 Paul Eggert + + 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. + * 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. + * 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. + * 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. + * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c, + and port better to pre-C99 GCC. + * image.c (struct xpm_cached_color): + * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector) + (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table): + Use FLEXIBLE_ARRAY_MEMBER. + * 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. + * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h. + +2013-06-20 Paul Eggert + + * syntax.c: Integer cleanups. + (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2. + All uses that need 0-or-2 changed to: + (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics + as the old SYNTAX_FLAGS_COMMENT_STYLEC. + (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table) + (char_quoted, prev_char_comend_first, back_comment) + (Finternal_describe_syntax_value, skip_chars, skip_syntaxes) + (in_classes, forw_comment, scan_lists, scan_sexps_forward): + Use bool for boolean. + (update_syntax_table, skip_chars, skip_syntaxes): + Prefer int to unsigned when either will do. + (back_comment): Return boolean success flag, like forw_comment, + instead of positive-or-minus-1 (which might have overflowed int anyway). + Don't stuff ptrdiff_t into int. + (syntax_spec_code, syntax_code_spec): Now const. + (Fmatching_paren, scan_lists, scan_sexps_forward): + Use enum syntaxcode for syntax code. + (Fmatching_paren): Check that arg is a character, not just an integer. + (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode. + (Finternal_describe_syntax_value): Omit no-longer-needed + comparison to 0. + (skip_chars): Use char, not unsigned char, when the distinction + doesn't matter. + (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap. + * bytecode.c (exec_byte_code): + * syntax.c (syntax_spec_code, Fchar_syntax) + (Finternal_describe_syntax_value, skip_chars, skip_syntaxes) + (init_syntax_once): + * syntax.h (SYNTAX_WITH_FLAGS): + Omit unnecessary casts. - * coding.c: Remove vars that are set but not used. - (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused. - All callers changed. - (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule): - (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5): - (decode_coding_charset): Remove vars that are set but not used. +2013-06-20 Eli Zaretskii - * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var - that is set but not used. + * w32fns.c (w32_wnd_proc): Don't compute the header line and mode + line dimensions here, to avoid race conditions with the main + thread. (Bug#14062, bug#14630, bug#14669) - * print.c (print_object): Remove var that is set but not used. + * w32term.c (w32_draw_window_cursor): Compute the header line and + mode line dimensions here. + : + : New variables. - Replace 2 copies of readlink code with 1 gnulib version (Bug#8401). - The gnulib version avoids calling malloc in the usual case, - and on 64-bit hosts doesn't have some arbitrary 32-bit limits. - * fileio.c (Ffile_symlink_p): Use emacs_readlink. - * filelock.c (current_lock_owner): Likewise. - * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function. - * sysdep.c: Include allocator.h, careadlinkat.h. - (emacs_no_realloc_allocator): New static constant. - (emacs_readlink): New function. - * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on - ../lib/careadlinkat.h. + * w32term.h: Declare them. -2011-04-04 Stefan Monnier +2013-06-20 Paul Eggert - * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the - first non-nil return value). + * alloc.c (die): Move "assertion failed" string here ... + * lisp.h (eassert): ... from here. Also, suppress evaluation of + COND when SUPPRESS_CHECKING. This shrinks the executable text + size by 0.8% to 2.2% when configured with --enable-checking, + depending on optimization flags (GCC 4.8.1 x86-64). -2011-04-03 Jan Djärv + * floatfns.c (Flog10): Move to Lisp (marked obsolete there). - * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6 - if not defined (Bug#8403). +2013-06-20 Rüdiger Sonderfeld -2011-04-02 Juanma Barranquero + * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the + base is 2; this is more accurate. - * xdisp.c (display_count_lines): Remove parameter `start', - unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed. - (get_char_face_and_encoding): Remove parameter `multibyte_p', - unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed. - (fill_stretch_glyph_string): Remove parameters `row' and `area', - unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk - and thereabouts. All callers changed. - (get_per_char_metric): Remove parameter `f', unused since - 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed. +2013-06-19 Juanma Barranquero -2011-04-02 Jim Meyering + * sound.c (string_default): Move to !WINDOWSNT section. + (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning. - do not dereference NULL upon failed strdup - * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup. - (ns_get_family): Likewise. - -2011-04-02 Juanma Barranquero +2013-06-19 Paul Eggert - * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment. - -2011-04-02 Jan Djärv + * sound.c: Integer cleanups. + Remove unnecessary forward decls. + (struct sound_device): The 'file' member is now a Lisp_Object, not + a char *, so that we needn't invoke alloca on a huge size. + (Fplay_sound_internal): Adjust to this. + (string_default): New function. + (vox_open, vox_init, alsa_open, alsa_configure, alsa_init): + Use it to adjust to the struct sound_device change. + (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans. + (be2hs) [0]: Remove. + + * syntax.c (skip_chars): Don't use uninitialized storage + when searching a multibyte buffer for characters that are not in a + unibyte string that contains non-ASCII characters. + +2013-06-18 Jan Djärv + + * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h + if HAVE_GLIB && ! WINDOWSNT (Bug#14654). + +2013-06-18 Paul Eggert + + * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc. + +2013-06-18 Kenichi Handa + + * font.c (Ffont_spec): Signal an error for an invalid font name + (Bug#14648). + +2013-06-18 Paul Eggert + + Porting fixes for merged specpdl and backtrace stacks (Bug#14643). + In particular this ports to 32-bit sparc Sun cc. + * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding + array with a dummy element at specpdl[-1], so that its address can + be taken portably. + (unbind_to): Do not copy the binding; not needed, now that we + copy old_value in the one place where the copy is needed. + * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count. + * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed. + (union specbinding): Rename from struct specbinding. Redo layout + to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;', + which is not portable. With Sun C 5.12 32-bit sparc, the + declaration causes nargs to be an unsigned bitfield, a behavior + that the C standard allows; but Emacs wants nargs to be signed. + The overall type is now a union of structures rather than a + structure of union of structures, and the 'kind' member is now a + bitfield, so that the overall type doesn't grow. All uses changed. + * process.c (Fmake_serial_process): Remove unnecessary initialization. + +2013-06-17 Paul Eggert + + * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t. + Needed if HAVE_NTGUI. Reported by Juanma Barranquero. + + * nsfont.m (ns_registry_to_script): Parenthesize while expression. + +2013-06-17 Eli Zaretskii + + * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT + unless we know that the window w's frame is a frame object. + Another attempt at solving bug#14062 and bug#14630. + +2013-06-17 Lars Magne Ingebrigtsen + + * textprop.c (property_set_type): New enum. + (add_properties): Allow appending/prepending text properties. + (add_text_properties_1): Factored out of Fadd_text_properties. + (Fadd_text_properties): Move all the code into + add_text_properties_1. + (Fadd_face_text_property): New function that calls + add_text_properties_1. + +2013-06-17 Paul Eggert + + Move functions from lisp.h to individual modules when possible. + From a suggestion by Andreas Schwab in . + * alloc.c (XFLOAT_INIT, set_symbol_name): + * buffer.c (CHECK_OVERLAY): + * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii) + (set_char_table_parent): + * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR): + * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD) + (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found) + (blv_value, set_blv_value, set_blv_where, set_blv_defcell) + (set_blv_valcell): + * emacs.c (setlocale) [!HAVE_SETLOCALE]: + * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where) + (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs) + (backtrace_args, backtrace_debug_on_exit): + * floatfns.c (CHECK_FLOAT): + * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END) + (set_hash_key_and_value, set_hash_next, set_hash_next_slot) + (set_hash_hash, set_hash_hash_slot, set_hash_index) + (set_hash_index_slot): + * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE): + * marker.c (CHECK_MARKER): + * textprop.c (CHECK_STRING_OR_BUFFER): + * window.c (CHECK_WINDOW_CONFIGURATION): + Move here from lisp.h, and make these functions static rather than + extern inline. + * buffer.c (Qoverlayp): + * data.c (Qsubrp): + * fns.c (Qhash_table_p): + * window.c (Qwindow_configuration_p): + Now static. + * lisp.h: Remove the abovementioned defns and decls. + + Use functions, not macros, for XINT etc (Bug#11935). + In lisp.h, prefer functions to function-like macros, and + constants to object-like macros, when either will do. This: + . simplifies use, as there's no more need to worry about + arguments' side effects being evaluated multiple times. + . makes the code easier to debug on some platforms. + However, when using gcc -O0, keep using function-like macros + for a few critical operations, for performance reasons. + This sort of thing isn't needed with gcc -Og, but -Og + is a GCC 4.8 feature and isn't widely-enough available yet. + * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: + Remove enum lsb_bits; no longer needed. + (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue. + * buffer.c (Qoverlap): + * data.c (Qsubrp): + * fns.c (Qhash_table_p): + Now extern, so lisp.h can use these symbols. + * dispextern.h: Include character.h, for MAX_CHAR etc. + (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE) + (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) + (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P) + (GLYPH_CODE_P): Move here from lisp.h. + (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) + (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros. + (GLYPH_MODE_LINE_FACE): Now enums, not macros. + * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since + XUNTAG now returns void *. + * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS) + (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE) + (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP) + (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP) + (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P) + (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP) + (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH) + (lisp_h_XPNTR, lisp_h_XSYMBOL): + New macros, renamed from their sans-lisp_h_ counterparts. + (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL) + (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP) + (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP) + (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL): + If compiling via GCC without optimization, define these as macros + in addition to inline functions. + To disable this, compile with -DINLINING=0. + (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros. + (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise. + (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but + hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that. + (INTMASK, VALMASK): Now macros, since static values cannot be + accessed from extern inline functions. + (VALMASK): Also a constant, for benefit of old GDB. + (LISP_INT_TAG_P): Remove; no longer needed as the only caller + is INTEGERP, which can fold it in. + (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT) + (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL) + (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE) + (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE) + (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR) + (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET) + (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF) + (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF) + (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS) + (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS) + (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P) + (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P) + (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE) + (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE) + (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE) + (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD) + (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP) + (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP) + (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP) + (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP) + (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP) + (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP) + (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P) + (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP) + (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING) + (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE) + (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY) + (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW) + (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR) + (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT) + (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY) + (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR) + (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH) + Now functions. + (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function. + (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed. + (VALMASK): Define in one place rather than in two, merging the + USE_LSB_TAG parts; this is simpler. + (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM) + (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P): + Move up, to avoid use before definition. + Also include "globals.h" earlier, for the same reason. + (make_natnum): New function. + (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts. + (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP) + (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP) + (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP) + (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP) + (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set) + (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p) + (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp) + (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp) + (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument) + (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp) + (Qwindow_configuration_p, Qimage): New forward declarations. + (XSETFASTINT): Simplify by rewriting in terms of make_natnum. + (STRING_COPYIN): Remove; unused. + (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ... + (xcar_addr, xcdr_addr): New functions. All uses changed. + (IEEE_FLOATING_POINT): Now a constant, not a macro. + (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE) + (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) + (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P) + (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use. + (TYPE_RANGED_INTEGERP): Simplify. + (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls. + (setlocale, fixup_locale, synchronize_system_messages_locale) + (synchronize_system_time_locale) [!HAVE_SETLOCALE]: + Now empty functions, not macros. + (functionp): Return bool, not int. + * window.c (Qwindow_configuration_p): Now extern, + so window.h can use it. + * window.h (Qwindowp): Move decl back to lisp.h. + +2013-06-15 Eli Zaretskii + + * xdisp.c (Fline_pixel_height): New function, required for solving + bug #14567. + +2013-06-15 Paul Eggert + + * fns.c (Fcopy_sequence): Simplify XTYPE calculation. + +2013-06-13 Stefan Monnier + + * lread.c (syms_of_lread): + * fns.c (Fprovide): Adjust to new format of after-load-alist. + +2013-06-13 Kelly Dean (tiny change) + + * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479) + +2013-06-12 Xue Fuqiao + + * fileio.c (expand_file_name): Doc fix. + +2013-06-11 Paul Eggert + + Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569). + * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]: + Wait for self, not for 0. This can't hurt on GNU or similar + system, and may help with Cygwin. + + * keyboard.c: Don't use PROP (...) as an lvalue. + (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]: + Use set_prop (A, B), not PROP (A) = B. + +2013-06-10 Eli Zaretskii + + * xdisp.c (get_it_property): Use it->window instead of generating + a Lisp object from it->w. + +2013-06-09 Eli Zaretskii + + * xdisp.c (get_it_property): If it->object is a buffer, pass to + get-char-property the window that is being rendered, instead of + the buffer, to support window-specific overlays. (Bug#14575) + (compute_display_string_pos): When W is NULL, use the current + buffer as the object to pass to get-char-property. + (Fcurrent_bidi_paragraph_direction): Assign NULL to the window + pointer member of the bidi iterator, since no window is pertinent + to this function. + +2013-06-08 Eli Zaretskii + + * bidi.c (bidi_fetch_char): Accept additional argument, the window + being displayed, and pass it to compute_display_string_pos. + (bidi_level_of_next_char, bidi_resolve_explicit_1) + (bidi_paragraph_init): All callers changed. + + * xdisp.c (init_from_display_pos, init_iterator) + (handle_single_display_spec, next_overlay_string) + (get_overlay_strings_1, reseat_1, reseat_to_string) + (push_prefix_prop, Fcurrent_bidi_paragraph_direction): + Set bidi_it.w member from it->w. + (compute_display_string_pos): Accept additional argument, the + window being displayed, and pass it to Fget_char_property. + (Bug#14575) - * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or - later (Bug#8403). + * dispextern.h (struct bidi_it): New member w, the window being + displayed. + (compute_display_string_pos): Adjust prototype. -2011-04-01 Stefan Monnier - - Add lexical binding. +2013-06-08 Jan Djärv - * window.c (Ftemp_output_buffer_show): New fun. - (Fsave_window_excursion): - * print.c (Fwith_output_to_temp_buffer): Move to subr.el. + * xgselect.c: Remove unneeded include xterm.h. - * lread.c (lisp_file_lexically_bound_p): New function. - (Fload): Bind Qlexical_binding. - (readevalloop): Remove `evalfun' arg. - Bind Qinternal_interpreter_environment. - (Feval_buffer): Bind Qlexical_binding. - (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard): - Mark as dynamic. - (syms_of_lread): Declare `lexical-binding'. + * process.c (wait_reading_process_output): Check for NS before GLIB. + GLIB may be linked in due to rsvg, but ns_select must be called. - * lisp.h (struct Lisp_Symbol): New field `declared_special'. + * xgselect.c (xg_select): Remove call to window_system_available + and g_main_context_pending at the top, so Gdk events (i.e. file + notify) are processed when Emacs is started with -nw. - * keyboard.c (eval_dyn): New fun. - (menu_item_eval_property): Use it. +2013-06-07 Eli Zaretskii - * image.c (parse_image_spec): Use Ffunctionp. + * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files. + (ctagsfiles3): New variable, includes only *.m files. + (TAGS): Use an explicit language name in the regular expressions, + to avoid transformation of '/SOMETHING' by MSYS to + 'c:\MSYS\SOMETHING'. - * fns.c (concat, mapcar1): Accept byte-code-functions. +2013-06-07 Richard Copley (tiny change) - * eval.c (Fsetq): Handle lexical vars. - (Fdefun, Fdefmacro, Ffunction): Make closures when needed. - (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic. - (FletX, Flet): Obey lexical binding. - (Fcommandp): Handle closures. - (Feval): New `lexical' arg. - (eval_sub): New function extracted from Feval. Use it almost - everywhere where Feval was used. Look up vars in lexical env. - Handle closures. - (Ffunctionp): Move from subr.el. - (Ffuncall): Handle closures. - (apply_lambda): Remove `eval_flags'. - (funcall_lambda): Handle closures and new byte-code-functions. - (Fspecial_variable_p): New function. - (syms_of_eval): Initialize the Vinternal_interpreter_environment var, - but without exporting it to Lisp. + * epaths.in: Fix commentary to PATH_SITELOADSEARCH. - * doc.c (Fdocumentation, store_function_docstring): - * data.c (Finteractive_form): Handle closures. +2013-06-06 Eli Zaretskii - * callint.c (Fcall_interactively): Preserve lexical-binding mode for - interactive spec. + * xdisp.c (note_mouse_highlight): When mouse-highlight is off, + still need to set the mouse pointer shape and activate help-echo. + (Bug#14558) - * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): - New byte-codes. - (exec_byte_code): New function extracted from Fbyte_code to handle new - calling convention for byte-code-functions. Add new byte-codes. +2013-06-06 Paul Eggert - * buffer.c (defvar_per_buffer): Set new `declared_special' field. + A few porting etc. fixes for the new file monitor code. + See the thread containing + . + * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch) + (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer. + (dir_monitor_callback, Fgfile_rm_watch): + Use assq_no_quit instead of Fassoc, for speed. + (dir_monitor_callback, Fgfile_rm_watch): + eassert that the monitor is a fixnum. + (dir_monitor_callback): No need for CDR_SAFE. + Simplify building of lisp with alternative tails. + (Fgfile_add_watch, Fgfile_rm_watch): + Do not assume glib functions set errno reliably on failure. + (Fgfile_add_watch): Check that the monitor survives the XIL trick, + and signal an error otherwise. + (Fgfile_rm_watch): Prefer CONSP to !NILP. + Use Fdelq instead of Fdelete, for speed. - * alloc.c (Fmake_symbol): Init new `declared_special' field. +2013-06-05 Eli Zaretskii -2011-03-31 Juanma Barranquero + * xdisp.c (handle_tool_bar_click): When mouse-highlight is off, + don't insist on being invoked on a highlighted tool-bar button. + Avoids losing tool-bar functionality when mouse-highlight is nil. + (note_tool_bar_highlight, note_mode_line_or_margin_highlight): + Don't highlight when mouse-highlight is nil. + (note_mouse_highlight): When mouse-highlight is nil, don't return + right away; instead, run tool-bar and mode-line highlight + subroutine, clear any existing highlight, and revert the mouse + pointer to its default shape. (Bug#14558) - * xdisp.c (redisplay_internal): Fix prototype. +2013-06-05 Stefan Monnier -2011-03-31 Eli Zaretskii + * lisp.mk (lisp): Add prog-mode.el. - * xdisp.c (SCROLL_LIMIT): New macro. - (try_scrolling): Use it when setting scroll_limit. - Limit scrolling to 100 screen lines. - (redisplay_window): Even when falling back on "recentering", - position point in the window according to scroll-conservatively, - scroll-margin, and scroll-*-aggressively variables. (Bug#6671) +2013-06-05 Paul Eggert - (try_scrolling): When point is above the window, allow searching - as far as scroll_max, or one screenful, to compute vertical - distance from PT to the scroll margin position. This prevents - try_scrolling from unnecessarily failing when - scroll-conservatively is set to a value slightly larger than the - window height. Clean up the case of PT below the margin at bottom - of window: scroll_max can no longer be INT_MAX. When aggressive - scrolling is in use, don't let point enter the opposite scroll - margin as result of the scroll. - (syms_of_xdisp) : Document the - threshold of 100 lines for never-recentering scrolling. + Chain glib's SIGCHLD handler from Emacs's (Bug#14474). + * process.c (dummy_handler): New function. + (lib_child_handler): New static var. + (handle_child_signal): Invoke it. + (catch_child_signal): If a library has set up a signal handler, + save it into lib_child_handler. + (init_process_emacs): If using glib and not on Windows, tickle glib's + child-handling code so that it initializes its private SIGCHLD handler. + * syssignal.h (SA_SIGINFO): Default to 0. + * xterm.c (x_term_init): Remove D-bus hack that I installed on May + 31; it should no longer be needed now. -2011-03-31 Juanma Barranquero +2013-06-05 Michael Albinus - * dispextern.h (move_it_by_lines): - * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused - since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed. - (message_log_check_duplicate): Remove parameters `prev_bol' and - `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed. - (redisplay_internal): Remove parameter `preserve_echo_area', - unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed. + * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify. - * indent.c (Fvertical_motion): - * window.c (window_scroll_pixel_based, Frecenter): - Don't pass `need_y_p' to `move_it_by_lines'. + * gfilenotify.c (globals_of_gfilenotify): New function. + (syms_of_gfilenotify): Move global initialization there. -2011-03-30 Stefan Monnier + * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype. - * eval.c (struct backtrace): Don't cheat with negative numbers, but do - steal a few bits to be more compact. - (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace): - Remove unneeded casts. +2013-06-05 Stefan Monnier - * bytecode.c (Fbyte_code): CAR and CDR can GC. + * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings): + * keyboard.c (menu_bar_items, tool_bar_items): + * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does + not override local keymaps any more. -2011-03-30 Zachary Kanfer (tiny change) +2013-06-04 Eli Zaretskii - * keyboard.c (Fexecute_extended_command): Do log the "suggest key - binding" message (bug#7967). + * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540) -2011-03-30 Paul Eggert +2013-06-03 Eli Zaretskii - Fix more problems found by GCC 4.6.0's static checks. + * w32console.c (initialize_w32_display): Return the dimensions of + the console window via 2 additional arguments, not via the current + frame. This avoids crashes due to overrunning the bounds of + frame's decode_mode_spec_buffer, which is not resized following + the change of the frame dimensions from the initial 10x10. - * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]: - Remove unused local var. + * w32term.h (w32_initialize_display_info): Adjust prototype. - * editfns.c (Fmessage_box): Remove unused local var. + * term.c (init_tty): Take dimensions of the frame from the values + returned by initialize_w32_display. - * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs): - (note_mode_line_or_margin_highlight, note_mouse_highlight): - Omit unused local vars. - * window.c (shrink_windows): Omit unused local var. - * menu.c (digest_single_submenu): Omit unused local var. - * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]: - Omit unused local var. - - * keyboard.c (parse_modifiers_uncached, parse_modifiers): - Don't assume string length fits in int. - (keyremap_step, read_key_sequence): Use size_t for sizes. - (read_key_sequence): Don't check last_real_key_start redundantly. + * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables. + (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS). + (LIBES): Add $(GFILENOTIFY_LIBS). - * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA - instead of alloca (Bug#8344). + * w32inevt.c (handle_file_notifications): Add dummy implementation + for !HAVE_W32NOTIFY. - * eval.c (Fbacktrace): Don't assume nargs fits in int. - (Fbacktrace_frame): Don't assume nframes fits in int. + * w32term.c: Wrap code with HAVE_W32NOTIFY. - * syntax.c (scan_sexps_forward): Avoid pointer wraparound. +2013-06-03 Jan Djärv - * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow - concerns. + * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB. - * term.c (produce_glyphless_glyph): Remove unnecessary test. + * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB. - * cm.c (calccost): Turn while-do into do-while, for clarity. + * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty. - * keyboard.c (syms_of_keyboard): Use the same style as later - in this function when indexing through an array. This also - works around GCC bug 48267. +2013-06-03 Paul Eggert - * image.c (tiff_load): Fix off-by-one image count (Bug#8336). + Fix minor problems found by static checking. + * data.c (pure_write_error): + Use xsignal2, not Fsignal, as Fsignal might return. + * eval.c (set_backtrace_debug_on_exit): Now static. + (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace): + No longer inline. EXTERN_INLINE is needed only for functions + defined in .h files. Reindent function header as per GNU style. + (backtrace_p, backtrace_top, backtrace_next): + Mark EXTERNALLY_VISIBLE so they don't get optimized away by the + compiler or linker. Add extern decls to pacify gcc -Wall. + * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): + Now static. + * frame.c (free_monitors): Define only on platforms that need it. + * nsterm.m (ns_term_init): + * process.c (catch_child_signal): + Don't worry about whether SIGCHLD is defined, as SIGCHLD is + defined on all porting targets these days. + * process.c, process.h (catch_child_signal): + Make it extern only if NS_IMPL_GNUSTEP is defined. - * xselect.c (x_check_property_data): Return correct size (Bug#8335). +2013-06-03 Eli Zaretskii - * chartab.c (sub_char_table_ref_and_range): Redo for slight - efficiency gain, and to bypass a gcc -Wstrict-overflow warning. + * w32.c (gettimeofday): Make the signature identical to prototype + in nt/inc/sys/time.h. - * keyboard.c, keyboard.h (num_input_events): Now size_t. - This avoids undefined behavior on integer overflow, and is a bit - more convenient anyway since it is compared to a size_t variable. +2013-06-03 Stefan Monnier - Variadic C functions now count arguments with size_t, not int. - This avoids an unnecessary limitation on 64-bit machines, which - caused (substring ...) to crash on large vectors (Bug#8344). - * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int. - (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise. - All variadic functions and their callers changed accordingly. - (struct gcpro.nvars): Now size_t, not int. All uses changed. - * data.c (arith_driver, float_arith_driver): Likewise. - * editfns.c (general_insert_function): Likewise. - * eval.c (struct backtrace.nargs, interactive_p) - (internal_condition_case_n, run_hook_with_args, apply_lambda) - (funcall_lambda, mark_backtrace): Likewise. - * fns.c (concat): Likewise. - * frame.c (x_set_frame_parameters): Likewise. - * fns.c (get_key_arg): Now accepts and returns size_t, and returns - 0 if not found, not -1. All callers changed. + * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to + .gdbinit. - * alloc.c (garbage_collect): Don't assume stack size fits in int. - (stack_copy_size): Now size_t, not int. - (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0. + * keyboard.c (safe_run_hooks_error): Improve error message. -2011-03-28 Juanma Barranquero + * data.c (pure_write_error): Add `object' argument. + * puresize.h (CHECK_IMPURE): Use it. - * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end', - unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org. - All callers changed. +2013-06-03 Michael Albinus - * lisp.h (multibyte_char_to_unibyte): - * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl', - unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org. - * character.h (CHAR_TO_BYTE8): - * cmds.c (internal_self_insert): - * editfns.c (general_insert_function): - * keymap.c (push_key_description): - * search.c (Freplace_match): - * xdisp.c (message_dolog, set_message_1): All callers changed. + * Makefile.in (NOTIFY_OBJ): New variable. + (base_obj): Replace inotify.o by $(NOTIFY_OBJ). -2011-03-28 Stefan Monnier + * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code. + Call syms_of_gfilenotify. - * keyboard.c (safe_run_hook_funcall): New function. - (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error, - don't set the hook to nil, but remove the offending function instead. - (Qcommand_hook_internal): Remove, unused. - (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define - Vcommand_hook_internal. + * gfilenotify.c: New file. - * eval.c (enum run_hooks_condition): Remove. - (funcall_nil, funcall_not): New functions. - (run_hook_with_args): Call each function through a `funcall' argument. - Remove `cond' argument, now redundant. - (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success) - (Frun_hook_with_args_until_failure): Adjust accordingly. - (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions. + * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify + and Qfile_w32notify. + (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY, + HAVE_W32NOTIFY and USE_FILE_NOTIFY. -2011-03-28 Juanma Barranquero + * lisp.h: Declare syms_of_gfilenotify. - * dispextern.h (string_buffer_position): Remove declaration. + * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY. - * print.c (strout): Remove parameter `multibyte', unused since - 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed. +2013-06-03 Stefan Monnier - * search.c (boyer_moore): Remove parameters `len', `pos' and `lim', - never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org. - All callers changed. + Merge the specpdl and backtrace stacks. Make the structure of the + specpdl entries more obvious via a tagged union of structs. + * lisp.h (BITS_PER_PTRDIFF_T): New constant. + (enum specbind_tag): New enum. + (struct specbinding): Make it a tagged union of structs. + Add a case for backtrace records. + (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg) + (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args) + (backtrace_debug_on_exit): New accessors. + (struct backtrace): Remove. + (struct catchtag): Remove backlist field. + * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p): + Move to eval.c. + (Flocal_variable_p): Speed up the common case where the binding is + already loaded. + * eval.c (backtrace_list): Remove. + (set_specpdl_symbol, set_specpdl_old_value): Remove. + (set_backtrace_args, set_backtrace_nargs) + (set_backtrace_debug_on_exit, backtrace_p, backtrace_top) + (backtrace_next): New functions. + (Fdefvaralias, Fdefvar): Adjust to new specpdl format. + (unwind_to_catch, internal_lisp_condition_case) + (internal_condition_case, internal_condition_case_1) + (internal_condition_case_2, internal_condition_case_n): Don't bother + with backtrace_list any more. + (Fsignal): Adjust to new backtrace format. + (grow_specpdl): Move up. + (record_in_backtrace): New function. + (eval_sub, Ffuncall): Use it. + (apply_lambda): Adjust to new backtrace format. + (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from + data.c. + (specbind): Adjust to new specpdl format. Simplify. + (record_unwind_protect, unbind_to): Adjust to new specpdl format. + (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new + backtrace format. + (mark_backtrace): Remove. + (mark_specpdl, get_backtrace, backtrace_top_function): New functions. + * xdisp.c (redisplay_internal): Use record_in_backtrace. + * alloc.c (Fgarbage_collect): Use record_in_backtrace. + Use mark_specpdl. + * profiler.c (record_backtrace): Use get_backtrace. + (handle_profiler_signal): Use backtrace_top_function. + * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace + accessor functions. + +2013-06-02 Jan Djärv + + * process.h (catch_child_signal): Declare. + + * process.c (catch_child_signal): New function. + (init_process_emacs): Call it. + + * nsterm.m: Include process.h if NS_IMPL_GNUSTEP. + (ns_menu_bar_is_hidden, menu_will_open_state): Define only if + NS_IMPL_COCOA. + (x_set_cursor_type): Remove declaration. + (ns_update_begin): Only use r and bp if NS_IMPL_COCOA. + (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code. + (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP. + (ns_get_color): Use F suffix on float. + (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat. + (ns_get_rgb_color): Remove. + (x_set_frame_alpha): Move view inside NS_IMPL_COCOA. + (note_mouse_movement): x and y are CGFloat. + (ns_draw_fringe_bitmap): Remove unused rowY. + Change #if to COCOA && >= 10_6. + (ns_draw_window_cursor): Remove unused overspill. + (ns_draw_underwave): width and x are EamcsCGFloat. + (ns_draw_box): thickness is CGFloat. + (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6. + (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread + if not in main thread. + (ns_get_pending_menu_title, ns_check_menu_open) + (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5. + (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD. + (sendFromMainThread:): New method. + (changeFont:): size is CGFloat. + (keyDown:): Check for Delete when NS_IMPL_GNUSTEP. + Disable warning about permanent text. + (characterIndexForPoint:): Adjust return type depending on GNUStep + version. + (mouseDown:): delta is CGFloat. + (updateFrameSize): Remove unised variable f. + (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA. + Cast float to EmacsCGFloat. + (windowWillUseStandardFrame:defaultFrame:): Set maximized_height + also to -1 when restoring. + (windowDidExitFullScreen:): Put call to updateCollectionBehaviour + inside NS_IMPL_COCOA. + (toggleFullScreen:): Put call to toggleFullScreen inside + NS_IMPL_COCOA. Cast float to EmacsCGFloat. + (setPosition:portion:whole:): por is CGFloat. + (getMouseMotionPart:window:x:y:): Add F suffix to float. + (mouseDown:): Use CGFloat. + (mouseDragged:): Remove unised variable edge. + (EmacsDocument): Implement for NS_IMPL_GNUSTEP. + + * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size + of CGFloat differs. + (EmacsApp): New variable nextappdefined. Declare sendFromMainThread + when NS_IMPL_GNUSTEP. + (EmacsDocument): Declare when NS_IMPL_GNUSTEP. + (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove. + (EmacsToolbar): Add clearAll. Add tag argument to + addDisplayItemWithImage. + (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory. + + * nsselect.m (ns_get_local_selection): Remove unused variable type. + + * nsmenu.m (ns_update_menubar): Make static. + (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA + (fillWithWidgetValue:): Add cast to SEL for setAction. + (addSubmenuWithTitle:forFrame:): Add cast to SEL for action. + (update_frame_tool_bar): Update code for GNUStep. + (clearAll): New method. + (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag + argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP. + Move identifierToItem setObject and activeIdentifiers addObject before + call to insertItemWithItemIdentifier. + (validateVisibleItems): Fix indentation. + (toolbarAllowedItemIdentifiers:): Return activeIdentifiers. + (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and + UtilityWindow to aStyle, remove call to setStyleMask. + + * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat. + + * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor) + (ns_charset_covers, ns_get_covering_families, nsfont_open): + Use F suffix on floats. + (ns_char_width): Returns CGFloat. + (ns_ascii_average_width): w is CGFloat instead of float. + (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to + DPSxshow. + (ns_glyph_metrics): CGFloat instead of float. + + * nsfns.m (x_set_foreground_color, x_set_background_color): + Use EmacsCGFloat. + (ns_implicitly_set_icon_type, Fx_create_frame): Make static, + remove unused variables. + (Fns_read_file_name): Keep track if panel is for save. + Use ns_filename_from_panel/ns_directory_from_panel. + (Fns_list_services): delegate only used for COCOA. + (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep. + Just return the input if GNUStep. + (x_screen_planes): Remove. + (Fxw_color_values): Use EmacsCGFloat + (Fns_display_monitor_attributes_list): Only get screen number for + Cocoa. + (getDirectory, getFilename): Remove from EmacsOpenPanel and + EmacsSavePanel. + (EmacsOpenPanel:ok:): Use ns_filename_from_panel and + ns_directory_from_panel. + +2013-06-01 Paul Eggert + + * process.c (handle_child_signal): Also use WCONTINUED. + This is so that list-processes doesn't mistakenly list the process + as stopped, when the process has actually been continued and is + now running. + +2013-05-31 Paul Eggert + + Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474). + * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is + not already configured. + + * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447). + +2013-05-29 Eli Zaretskii + + * Makefile.in (mostlyclean): Remove *.res files. + +2013-05-29 Stefan Monnier + + * fileio.c (Finsert_file_contents): Preserve undo info when reverting + a buffer (bug#8447). + +2013-05-27 Eli Zaretskii + + * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a + display vector, and we backtrack, handle the case that the + previous character position is also displayed from a display + vector or covered by a display string or image. (Bug#14476) + +2013-05-25 Jan Djärv + + * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. + (struct MonitorInfo, free_monitors): Remove. + (x_make_monitor_attribute_list): Call make_monitor_attribute_list. + (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list. + (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, + Qframes, Qsource. + + * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. + (struct MonitorInfo, free_monitors): Remove. + (ns_screen_name): Make static. + (ns_make_monitor_attribute_list): Call make_monitor_attribute_list. + (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, + Qframes, Qsource. + + * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. + (struct MonitorInfo): New struct. + (free_monitors, make_monitor_attribute_list): Declare. + + * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): + New Lisp_Object:s. + (free_monitors, make_monitor_attribute_list): New functions. + (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes, + Qsource. + +2013-05-25 Xue Fuqiao + + * callproc.c (call_process): Refine the doc string. (Bug#14045) + +2013-05-23 Stefan Monnier + + * keyboard.c: Apply keyboard decoding only to events that come directly + from the tty, not from unread-command-events (bug#14368). + (read_event_from_main_queue): New function, extracted from read_char). + (read_decoded_char): Remove. + (read_decoded_event_from_main_queue): New function to replace it. + (read_char): Use it. + (read_key_sequence): Use read_char rather than read_decoded_char. + + * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403). + +2013-05-22 Barry O'Reilly + + * casetab.c (init_casetab_once): Fix last change (bug#14424). + +2013-05-22 Kenichi Handa + + The following changes are to fix the setting of + buffer-file-coding-system on, for instance, C-x RET c unix RET + _FILE_OF_DOS_EOL_TYPE_ RET. + + * coding.h (struct coding_system): New member detected_utf8_chars. + + * coding.c (detect_coding_utf_8): Count characters and check EOL + format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if + BOM is there. + (setup_coding_system): Do not initialize coding->head_ascii. + (check_ascii): Do not set coding->eol_seen but update it. Do not + call adjust_coding_eol_type here. + (detect_coding): Fix detection of BOM for utf-8 and utf-16. + If the eol-type of CODING is already specified, adjust the eol type + of the found coding-system. + (decode_coding_gap): Cancel previous change. Utilize the + character numbers counted by detect_coding_utf_8. Fix detection + of BOM for utf-8. - * w32.c (_wsa_errlist): Use braces for struct initializers. +2013-05-21 Barry O'Reilly - * xdisp.c (string_buffer_position_lim): Remove parameter `w', - never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org. - All callers changed. - (string_buffer_position): Likewise. Also, make static (it's never - used outside xdisp.c). - (cursor_row_p): Remove parameter `w', unused since - 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed. - (decode_mode_spec): Remove parameter `precision', introduced during - Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used. - All callers changed. + * search.c (looking_at_1): Only set last_thing_searched if the match + changed the match-data (bug#14281). -2011-03-27 Jan Djärv +2013-05-21 Dmitry Antipov - * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar. + * xdisp.c (reseat_at_previous_visible_line_start): + Already declared in dispextern.h, so remove it here. + (move_it_vertically_backward): Likewise. -2011-03-27 Anders Lindgren +2013-05-20 YAMAMOTO Mitsuharu - * nsterm.m (ns_menu_bar_is_hidden): New variable. - (ns_constrain_all_frames, ns_menu_bar_should_be_hidden) - (ns_update_auto_hide_menu_bar): New functions. - (ns_update_begin): Call ns_update_auto_hide_menu_bar. - (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and - ns_constrain_all_frames. - (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden. - (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil. + * xfns.c (check_x_display_info): Don't use XINT for terminal object. + (Fx_display_pixel_width, Fx_display_pixel_height) + (Fx_display_mm_width, Fx_display_mm_height): + Mention `display-monitor-attributes-list' in docstrings. -2011-03-27 Jan Djärv + * nsfns.m (ns_get_screen): Remove function. All uses removed. + (check_ns_display_info): Sync with check_x_display_info in xfns.c. + (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version) + (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height) + (Fx_display_backing_store, Fx_display_visual_class) + (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p) + (Fx_display_grayscale_p, Fx_display_pixel_width) + (Fx_display_pixel_height, Fx_display_planes) + (Fx_display_color_cells): Sync args and docstrings with xfns.c. + (Fx_display_screens): Don't confuse X11 screens with NS screens. + (Fx_display_mm_width, Fx_display_mm_height) + (Fx_display_pixel_width, Fx_display_pixel_width): Return width or + height for all physical monitors as in X11. - * nsmenu.m (runDialogAt): Remove argument to timer_check. + * nsterm.m (x_display_pixel_width, x_display_pixel_height): + Return pixel width or height for all physical monitors as in X11. + +2013-05-18 Paul Eggert + + Port --enable-gcc-warnings to clang. + * bytecode.c (exec_byte_code): + * regex.c: + Redo diagnostic pragmas to pacify clang, too. + * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable. + * editfns.c (Fencode_time): + * fileio.c (file_accessible_directory_p): + * font.c (font_unparse_xlfd): + Use '&"string"[index]' instead of '"string" + (index)'. + * undo.c (user_error): Remove; unused. + +2013-05-16 Eli Zaretskii + + * insdel.c (insert_1_both): Document the arguments, instead of + referring to insert_1, which no longer exists. + + * xdisp.c (message_dolog): If the *Messages* buffer is shown in + some window, increment windows_or_buffers_changed, so that + *Messages* display in that window is updated. (Bug#14408) + + * 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. + + * unexw32.c (open_output_file): Delete the existing emacs.exe + before creating it, to break the hard link to the versioned + executable. + + * 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-15 Stefan Monnier + + * makefile.w32-in (DOC): Use just "DOC". + + * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more. + + * process.c: Export default filters and sentinels to Elisp. + (Qinternal_default_process_sentinel, Qinternal_default_process_filter): + New constants. + (pset_filter, pset_sentinel, make_process, Fset_process_filter) + (Fset_process_sentinel, Fformat_network_address): + Default to them instead of nil. + (server_accept_connection): Sentinels can't be nil any more. + (read_and_dispose_of_process_output): New function, extracted from + read_process_output. + (read_process_output): Use it; filters can't be nil. + (Finternal_default_process_filter): New function, extracted from + read_process_output. + (exec_sentinel_unwind): Remove function. + (exec_sentinel): Don't zilch sentinel while running. + (status_notify): Sentinels can't be nil. + (Finternal_default_process_sentinel): New function extracted from + status_notify. + (setup_process_coding_systems): Default filter is not nil any more. + (syms_of_process): Export new Elisp functions and initialize + new constants. + * lisp.h (make_lisp_proc): New function. + +2013-05-15 Stefan Monnier -2011-03-27 Glenn Morris + * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart. - * syssignal.h: Replace RETSIGTYPE with void. - * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c: - * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c: - Replace SIGTYPE with void everywhere. - * s/usg5-4-common.h (SIGTYPE): Remove definition. - * s/template.h (SIGTYPE): Remove commented out definition. +2013-05-14 Eli Zaretskii -2011-03-26 Eli Zaretskii + * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT + unless we know that the window w is a leaf window. + Another attempt at solving bug#14062. - * xdisp.c (redisplay_window): Don't check buffer's clip_changed - flag as a prerequisite for invoking try_scrolling. (Bug#6671) +2013-05-14 Jan Djärv + + * nsfont.m (ns_spec_to_descriptor): Retain and autorelease + fdesc (Bug#14375). + +2013-05-12 Paul Eggert + + * image.c (gif_load): Check that subimages fit (Bug#14345). + +2013-05-09 Stefan Monnier + + * lread.c (skip_dyn_eof): New function. + (read1): Use it to skip the end of a file in response to #@00. + + * doc.c (get_doc_string): Slightly relax the sanity checking. + +2013-05-09 Jan Djärv + + * nsfns.m: Include IOGraphicsLib.h if Cocoa. + (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. + (MonitorInfo): New struct. + (free_monitors, ns_screen_name, ns_make_monitor_attribute_list) + (Fns_display_monitor_attributes_list): New functions. + (display-usable-bounds): Remove. + (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and + Qsource. + +2013-05-09 Paul Eggert + + * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION. + (GTK_CHECK_VERSION): New macro, if not already defined. + All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc. + replaced by GTK_CHECK_VERSION. + +2013-05-08 Paul Eggert + + * xterm.h (GTK_PREREQ): New macro. + All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed + to use this macro instead, for consistency and clarity. + +2013-05-08 Eli Zaretskii + + * xdisp.c (row_for_charpos_p): New function, with code of + cursor_row_p, but accepts an additional argument CHARPOS instead + of using a hardcoded PT. + (cursor_row_p): Call row_for_charpos_p with 2nd argument PT. + (row_containing_pos): Call row_for_charpos_p instead of partially + doing the same. Fixes cursor positioning under longlines-mode + when longlines-show-effect includes more than one newline, when + moving the cursor vertically up. + +2013-05-08 Juanma Barranquero + + * makefile.w32-in (ACL_H): New macro. + ($(BLD)/fileio.$(O)): Update dependencies. + +2013-05-07 Paul Eggert + + Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) + * Makefile.in (LIB_ACL): New macro. + (LIBACL_LIBS): Remove. + (LIBES): Use LIB_ACL, not LIBACL_LIBS. + * fileio.c: Include . + Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL. + (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by + !acl_errno_valid. + (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling + it ourselves. + + * unexelf.c: Don't assume ElfW (Half) fits in int. + (entry_address, find_section, unexec): Use ptrdiff_t, not int, + when dealing with ElfW (Half) values, since they can exceed 2**31 + on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes. + (entry_address): Omit unused NUM arg. All uses changed. + +2013-05-07 Juri Linkov + + * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n' + to the string converted from number with `Fnumber_to_string'. + (Bug#14254) + +2013-05-07 Paul Eggert + + * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4. + This fixes a problem introduced by my previous change. + +2013-05-07 Glenn Morris + + * lread.c (readchar): Don't read from a dead buffer. (Bug#14280) + +2013-05-07 Jan Djärv + + * xfns.c: Move misplaced ifndef USE_GTK from previous checkin. + +2013-05-07 Paul Eggert + + Static checking by GCC 4.8.0. + * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors) + (x_get_monitor_for_frame, x_make_monitor_attribute_list) + (x_get_monitor_attributes_fallback) + (x_get_monitor_attributes_xinerama) + (x_get_monitor_attributes_xrandr, x_get_monitor_attributes): + Define only if USE_GTK. + (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR. + (x_get_monitor_attributes_fallback): Omit unused locals. + (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list): + Use double, not float, to avoid mixed-mode floating point arithmetic. + +2013-05-07 YAMAMOTO Mitsuharu + Jan Djärv + + * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS) + (XINERAMA_CFLAGS): New macros. + (ALL_CFLAGS, LIBES): Use them. + + * xfns.c: Include if HAVE_XRANDR, and + include if HAVE_XINERAMA. + (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables. + (syms_of_xfns): DEFSYM them. + (struct MonitorInfo): New struct. + (x_get_net_workarea, free_monitors, x_get_monitor_for_frame) + (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback) + (x_get_monitor_attributes_xrandr, x_get_monitor_attributes) + (x_get_monitor_attributes_xinerama): New functions. + (Fx_display_monitor_attributes_list): New primitive. + (syms_of_xfns): Defsubr it. + + * xterm.h (x_display_info): Add Xatom_net_workarea and + Xatom_net_current_desktop. + + * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea + and dpyinfo->Xatom_net_current_desktop. + +2013-05-06 Eli Zaretskii + + * xdisp.c (pos_visible_p): Use the special code for finding the + beginning of a display property or overlay for any "replacing" + display property, not just for display strings. This solves + incorrect reporting of position by posn-at-point. (Bug#14241) + +2013-05-06 Paul Eggert + + * unexelf.c: Fix some 32-bit integer problems, notably when debugging. + Include , , , . + Verify that ElfW (Half) fits in int. + (fatal): Use same signature as lisp.h. + (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can + configure and build with -DUNEXELF_DEBUG without worrying about + other modules that use DEBUG. + (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints + possibly-wide integers now uses it instead of plain fprintf. + (entry_address): New function, which avoids problems with 32-bit + overflow on 64-bit hosts. + (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it. + (round_up): Don't assume the remainder fits in int. + (find_section): Use bool for boolean. Simplify debug code. + (unexec): Don't assume file sizes fit in int or size_t. + Omit unnecessary trailing newline in 'fatal' format. + Use strerror rather than outputting decimal error number. + Remove unused code when emacs is not defined; + this file relies on Emacs now. + Don't assume e_phnum and e_shnum are positive. + + * regex.c: Fix problems when DEBUG is defined. + (extract_number, extract_number_and_incr): Define regardless of + whether DEBUG is defined; that's simpler and makes the code less + likely to go stale in the normal case when DEBUG is not defined. + Return int rather than taking an int * arg. All callers changed. + (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4): + Remove, replacing with ... + (DEBUG_PRINT): New macro. All callers changed. + (DEBUG_COMPILES_ARGUMENTS): New macro. + (print_fastmap, print_partial_compiled_pattern) [DEBUG]: + (print_compiled_pattern, print_double_string) [DEBUG]: + Use prototype rather than old-style definition. + (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]: + (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]: + (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]: + (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]: + Don't assume ptrdiff_t, size_t, and long are the same width as int. + (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t. + This matters only when DEBUG is defined. -2011-03-26 Juanma Barranquero +2013-05-05 Eli Zaretskii + + * xdisp.c (set_iterator_to_next): Set the + ignore_overlay_strings_at_pos_p flag only if we are _really_ + iterating over an overlay string, as indicated by the + current.overlay_string_index member. (Bug#14306) + +2013-05-05 Jan Djärv + + * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle + to where it is used, to avoid autorelease issues (Bug#14050). + +2013-05-05 Paul Eggert + + `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273). + * fileio.c (syms_of_fileio): Implement this. + * filelock.c (create_lock_file): If symbolic links don't work, so + we use a regular file as a lock file, do not fsync the lock file; + it's not needed. + +2013-05-04 Stefan Monnier + + * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp. + (syms_of_minibuf): Adjust accodingly. + * lread.c (Fread): + * callint.c (Fcall_interactively): Adjust calls accordingly. + +2013-05-04 Eli Zaretskii + + * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that + w->contents is a buffer before computing everything else. + Use parentheses to disambiguate last part of the condition. + + * w32fns.c (w32_wnd_proc): Remove temporary code used to trap + assertion violations. (Bug#14062) + +2013-05-01 David Reitter + + * nsfns.m (ns_tooltip): Initialize. - * w32.c (read_unc_volume): Use parameter `henum', instead of - global variable `wget_enum_handle'. +2013-04-28 Eli Zaretskii - * keymap.c (describe_vector): Remove parameters `indices' and - `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org. - (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'. + * coding.c (decode_coding_gap): Don't remove the character before + a newline unless it's a CR character. (Bug#14287) - * keyboard.h (timer_check, show_help_echo): Remove unused parameters. +2013-04-28 Dan Nicolaescu - * keyboard.c (timer_check): Remove parameter `do_it_now', - unused since 1996-04-12T06:01:29Z!rms@gnu.org. - (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo', - unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca. + * dispextern.h (struct face): Move enum face_underline_type + earlier so that bitfields can be in the same word. - * keyboard.c (read_char): - * w32menu.c (w32_menu_display_help): - * xmenu.c (show_help_event, menu_help_callback): - Adjust calls to `show_help_echo'. +2013-04-28 Jan Djärv - * gtkutil.c (xg_maybe_add_timer): - * keyboard.c (readable_events): - * process.c (wait_reading_process_output): - * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'. + * nsfns.m (handlePanelKeys): New function. + (EmacsOpenPanel:performKeyEquivalent:) + (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle + arrows/function/control and copy/paste keys (Bug#14296). - * insdel.c (adjust_markers_gap_motion): - Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org. - (gap_left, gap_right): Don't call it. +2013-04-27 Juri Linkov + + * callint.c (Fcall_interactively): Call `Qread_number' for + interactive code letter `n' instead of using duplicate code. + (Bug#14254) + +2013-04-27 Paul Eggert -2011-03-25 Chong Yidong + * systime.h (make_timeval): Declare as 'const'. - * xdisp.c (handle_fontified_prop): Discard changes to clip_changed - incurred during fontification. +2013-04-27 Kenichi Handa -2011-03-25 Juanma Barranquero + * font.c (font_open_entity): Always open a font of manageable + size. - * buffer.c (defvar_per_buffer): Remove unused parameter `doc'. - (DEFVAR_PER_BUFFER): Don't pass it. +2013-04-26 Paul Eggert - * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'. - (scrolling_window): Don't pass it. + Port better to AIX (Bug#14258). + * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too, + to pacify AIX xlc. -2011-03-25 Juanma Barranquero +2013-04-24 Kenichi Handa - * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef. + * coding.c (decode_coding_iso_2022): When an invalid escape + sequence is encountered, reset the invocation and designation + status to the safest one. - * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len' - and `suffix'. - (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration - of variables specific to SELinux and computation of `encoded_absname'. +2013-04-22 Paul Eggert - * image.c (XPutPixel): Remove unused variable `height'. + * Makefile.in (bootstrap-clean): Remove stamp-h1 too. + Without this fix, "make distclean" leaves stamp-h1 behind. - * keyboard.c (make_lispy_event): Remove unused variable `hpos'. +2013-04-20 Erik Charlebois - * unexw32.c (get_section_info): Remove unused variable `section'. + * w32fns.c (w32_fullscreen_rect): New function to compute the + window rectangle for the given fullscreen mode. + (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no + longer tunes the window size. This keeps the window's edges flush + with the screen and allows the taskbar to hide itself in fullboth. - * w32.c (stat): Remove unused variables `drive_root' and `devtype'. - (system_process_attributes): Remove unused variable `sess'. - (sys_read): Remove unused variable `err'. + * w32term.c (w32fullscreen_hook): 'fullboth' now shows without + window decorations and uses the entire screen. - * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef. - (w32_wnd_proc): Remove unused variable `isdead'. - (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef. - (Fx_server_max_request_size): Remove unused variable `dpyinfo'. - (x_create_tip_frame): Remove unused variable `tem'. + * w32term.h (w32_fullscreen_rect) Add prototype. + (struct w32_output): Replace normal_width, normal_height, + normal_top, and normal_left members with a single normal_placement + struct. + (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP): + Remove macros. + (FRAME_NORMAL_PLACEMENT): New macro. - * w32inevt.c (w32_console_read_socket): - Remove unused variable `no_events'. +2013-04-16 Juanma Barranquero - * w32term.c (x_draw_composite_glyph_string_foreground): - Remove unused variable `width'. + * minibuf.c (Ftest_completion): Silence compiler warning. -2011-03-24 Juanma Barranquero +2013-04-15 Eli Zaretskii - * w32term.c (x_set_glyph_string_clipping): - Don't pass uninitialized region to CombineRgn. + * w32fns.c (w32_wnd_proc): Add more assertions to investigate + bug#14062. -2011-03-23 Juanma Barranquero + * frame.h (WINDOW_FRAME): Protect macro and its argument with + parentheses. - * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'. - (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer. - (Fx_close_connection): Remove unused variable `i'. + * dispextern.h (CURRENT_MODE_LINE_HEIGHT) + (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P) + (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with + parentheses where appropriate. - * w32font.c (w32font_draw): Return number of glyphs. - (w32font_open_internal): Remove unused variable `i'. - (w32font_driver): Add missing initializer. +2013-04-14 Paul Eggert - * w32menu.c (utf8to16): Remove unused variable `utf16'. - (fill_in_menu): Remove unused variable `items_added'. + * keyboard.c (timer_start_idle): Remove no-longer-used local. - * w32term.c (last_mouse_press_frame): Remove static global variable. - (w32_clip_to_row): Remove unused variable `f'. - (x_delete_terminal): Remove unused variable `i'. +2013-04-14 Eli Zaretskii - * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'. - (NOTHING): Remove unused static global variable. - (uniscribe_check_otf): Remove unused variable `table'. - (uniscribe_font_driver): Add missing initializers. + * buffer.c (syms_of_buffer) + : + Mention in the doc string that setting these variables takes + effect only after a call to set-window-buffer. (Bug#14200) -2011-03-23 Julien Danjou +2013-04-13 Eli Zaretskii - * term.c (Fsuspend_tty, Fresume_tty): - * minibuf.c (read_minibuf, run_exit_minibuf_hook): - * window.c (temp_output_buffer_show): - * insdel.c (signal_before_change): - * frame.c (Fhandle_switch_frame): - * fileio.c (Fdo_auto_save): - * emacs.c (Fkill_emacs): - * editfns.c (save_excursion_restore): - * cmds.c (internal_self_insert): - * callint.c (Fcall_interactively): - * buffer.c (Fkill_all_local_variables): - * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1): - Use Frun_hooks. - (command_loop_1): Use Frun_hooks. Call safe_run_hooks - unconditionally since it does the check itself. - -2011-03-23 Paul Eggert - - Fix more problems found by GCC 4.5.2's static checks. - - * coding.c (encode_coding_raw_text): Avoid unnecessary test - the first time through the loop, since we know p0 < p1 then. - This also avoids a gcc -Wstrict-overflow warning. - - * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow - leading to a memory leak, possible in functions like - load_charset_map_from_file that can allocate an unbounded number - of objects (Bug#8318). - - * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes - that could (at least in theory) be that large. - - * xdisp.c (message_log_check_duplicate): Return unsigned long, not int. - This is less likely to overflow, and avoids undefined behavior if - overflow does occur. All callers changed. Use strtoul to scan - for the unsigned long integer. - (pint2hrstr): Simplify and tune code slightly. - This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow. - - * scroll.c (do_scrolling): Work around GCC bug 48228. - See . - - * frame.c (Fmodify_frame_parameters): Simplify loop counter. - This also avoids a warning with gcc -Wstrict-overflow. - (validate_x_resource_name): Simplify count usage. - This also avoids a warning with gcc -Wstrict-overflow. - - * fileio.c (Fcopy_file): Report error if fchown or fchmod - fail (Bug#8306). - - * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303). - - * process.c (Fmake_network_process): Use socklen_t, not int, - where POSIX says socklen_t is required in portable programs. - This fixes a porting bug on hosts like 64-bit HP-UX, where - socklen_t is wider than int (Bug#8277). - (Fmake_network_process, server_accept_connection): - (wait_reading_process_output, read_process_output): - Likewise. + * indent.c (Fvertical_motion): Don't consider display strings on + overlay strings as display strings on the buffer position we + started from. This prevents vertical cursor motion from jumping + more than one line when there's an overlay string with a display + property at end of line. + Reported by Karl Chen in + http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html. - * process.c: Rename or move locals to avoid shadowing. - (list_processes_1, Fmake_network_process): - (read_process_output_error_handler, exec_sentinel_error_handler): - Rename or move locals. - (Fmake_network_process): Define label "retry_connect" only if needed. - (Fnetwork_interface_info): Fix pointer signedness. - (process_send_signal): Add cast to avoid pointer signedness problem. - (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros. - (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298). +2013-04-12 Stefan Monnier - Make tparam.h and terminfo.c consistent. - * cm.c (tputs, tgoto, BC, UP): Remove extern decls. - Include tparam.h instead, since it declares them. - * cm.h (PC): Remove extern decl; tparam.h now does this. - * deps.mk (cm.o, terminfo.o): Depend on tparam.h. - * terminfo.c: Include tparam.h, to check interfaces. - (tparm): Make 1st arg a const pointer in decl. Put it at top level. - (tparam): Adjust signature to match interface in tparam.h; - this removes some undefined behavior. Check that outstring and len - are zero, which they always are with Emacs. - * tparam.h (PC, BC, UP): New extern decls. + * window.c (select_window): `record_buffer' even if window is + already selected (bug#14191). - * xftfont.c (xftfont_shape): Now static, and defined only if needed. - (xftfont_open): Rename locals to avoid shadowing. +2013-04-11 Eli Zaretskii - * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness. - (ftfont_otf_capability, ftfont_shape): Omit decls if not needed. - (OTF_TAG_SYM): Omit macro if not needed. - (ftfont_list): Remove unused local. - (get_adstyle_property, ftfont_pattern_entity): - (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point): - Rename locals to avoid shadowing. + * window.c (Fwindow_end): Test more flags, including the buffer's + last_overlay_modified flag, to determine whether the window's + display is really up-to-date. Prevents the function from + returning a stale value. (Bug#14170) + (Fwindow_line_height): Fix the test for up-to-date-ness of the + current matrix. - * xfont.c (xfont_list_family): Mark var as initialized. +2013-04-10 Eli Zaretskii - * xml.c (make_dom): Now static. + * frame.c (do_switch_frame): Mark the TTY frame we switch to as + garbaged only if it is not already the top frame on its TTY. + This prevents flickering due to constant redrawing of TTY frames when + there are GUI frames open in the same session. (Bug#13864) - * composite.c (composition_compute_stop_pos): Rename local to - avoid shadowing. - (composition_reseat_it): Remove unused locals. - (find_automatic_composition, composition_adjust_point): Likewise. - (composition_update_it): Mark var as initialized. - (find_automatic_composition): Mark vars as initialized, - with a FIXME (Bug#8290). +2013-04-10 Stefan Monnier - character.h: Rename locals to avoid shadowing. - * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE): - (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE): - (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS): - (BUF_DEC_POS): Be more systematic about renaming local temporaries - to avoid shadowing. + * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead + of marking the idle timers directly. - * textprop.c (property_change_between_p): Remove; unused. +2013-04-09 Stefan Monnier - * intervals.c (interval_start_pos): Now static. + * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash + tables (bug#14054). - * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else". +2013-04-08 Stefan Monnier - * atimer.c (start_atimer, append_atimer_lists, set_alarm): - Rename locals to avoid shadowing. + * window.c (select_window): Don't record_buffer while the invariant is + temporarily broken (bug#14161). - * sound.c (wav_play, au_play, Fplay_sound_internal): - Fix pointer signedness. - (alsa_choose_format): Remove unused local var. - (wav_play): Initialize a variable to 0, to prevent undefined - behavior (Bug#8278). + * fns.c (Fdelq): Don't assume !NILP => CONSP. - * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing. +2013-04-07 Eli Zaretskii - * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes. + * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT. - * callproc.c (Fcall_process): Use 'volatile' to avoid vfork - clobbering (Bug#8298). - * sysdep.c (sys_subshell): Likewise. - Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out. +2013-04-07 Romain Francoise - * lisp.h (child_setup): Now NO_RETURN unless DOS_NT. - This should get cleaned up, so that child_setup has the - same signature on all platforms. + Ignore additional platform-specific ACL errors (Bug#13702). + * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib. + (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it. - * callproc.c (call_process_cleanup): Now static. - (relocate_fd): Rename locals to avoid shadowing. +2013-03-31 Jan Djärv -2011-03-22 Chong Yidong + * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking + f->output_data.ns. - * xterm.c (x_clear_frame): Remove XClearWindow call. This appears - not to be necessary, and produces flickering. +2013-04-07 Paul Eggert -2011-03-20 Glenn Morris + Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783). + This bug was introduced by my 2013-02-25 change that simplified + data_start configuration. Without this change, on GNU/Linux + an Emacs configured with --enable-profiling fails immediately + due to a profiler signal. + * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link + with these flags. On platforms where special flags are needed + when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS. + (ALL_CFLAGS): Remove $(PROFILING_CFLAGS). + (.c.o, .m.o): Compile with $(PROFILING_CFLAGS). - * config.in: Remove file. +2013-04-07 Dmitry Antipov -2011-03-20 Juanma Barranquero + Get rid of some platform-specific functions examining window + system and its capabilities. This is a partial rework of the + 2013-04-05 change. + * lisp.h (have_menus_p): Remove prototype. This function is + replaced with platform-independent window_system_available. + (check_window_system): Move to... + * frame.h (decode_window_system_frame, window_system_available): + ...here, add new prototypes. + * frame.c (window_system_available, decode_window_system_frame): + New functions. + (check_window_system): Platform-independent now. + * xterm.h (x_in_use): Remove declaration. + (check_x_frame): + * w32term.h (check_x_frame): + * nsterm.h (check_x_frame): Remove prototypes. This function + is replaced with platform-independent decode_window_system_frame. + * msdos.c (have_menus_p): Remove. + * nsfns.m (check_window_system, have_menus_p, check_ns_frame): + Remove platform-specific functions. Use check_window_system, + decode_window_system_frame and check_ns_display_info where + appropriate. Minor style and comment tweaks. + * w32fns.c (w32_in_use, check_window_system, have_menus_p) + (check_x_frame): Likewise. + * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame): + Likewise. + * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m: + * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c: + * xmenu.c, xselect.c: All related users changed. - * minibuf.c (Vcompleting_read_function): Don't declare, global variables - are now in src/globals.h. - (syms_of_minibuf): Remove spurious & from previous change. +2013-04-03 Kenichi Handa -2011-03-20 Leo Liu + The following changes is to optimize the code for reading UTF-8 + files. - * minibuf.c (completing-read-function): New variable. - (completing-read-default): Rename from completing-read. - (completing-read): Call completing-read-function. + * coding.c (check_ascii): Rename from detect_ascii. Return value + changed. Check EOL format. Do not call adjust_coding_eol_type + here. + (check_utf_8): New function. + (adjust_coding_eol_type): Do nothing if already adjusted. + (detect_coding): Compare the return value of check_ascii with + coding->src_bytes. Call adjust_coding_eol_type if necessary. + (decode_coding_gap): Optimize for valid UTF-8. + +2013-03-21 Kenichi Handa + + * coding.c (syms_of_coding): Cancel previous change. + + * insdel.c (insert_from_gap): Fix previous change. + +2013-04-05 Dmitry Antipov + + Consistently use platform-specific function to detect window system. + * lisp.h (check_window_system): New prototype. This function is + going to replace check_x, check_w32 and check_ns. + (have_menus_p): Mention msdos.c in comment. + * fontset.c (check_window_system_func): Remove. Adjust all users. + * fontset.h (check_window_system_func): Remove prototype. + * nsterm.h (check_ns): + * xterm.h (check_x): + * w32term.h (check_w32): Likewise. + * menu.c (Fx_popup_menu): Use check_window_system. + * msdos.c (check_window_system): Define for MS-DOS. + * nsfns.m (check_window_system): Define for NS. Adjust all users. + * w32fns.c (check_window_system): Likewise for MS-Windows. + * xfns.c (check_window_system): Likewise for X. + * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c: + * xfaces.c, xmenu.c: Use check_window_system where appropriate. + +2013-04-02 Paul Eggert + + Prefer < to > in range checks such as 0 <= i && i < N. + This makes it easier to visualize quantities on a number line. + This patch doesn't apply to all such range checks, + only to the range checks affected by the 2013-03-24 change. + This patch reverts most of the 2013-03-24 change. + * alloc.c (xpalloc, Fgarbage_collect): + * ccl.c (ccl_driver, resolve_symbol_ccl_program): + * character.c (string_escape_byte8): + * charset.c (read_hex): + * data.c (cons_to_unsigned): + * dispnew.c (update_frame_1): + * doc.c (Fsubstitute_command_keys): + * doprnt.c (doprnt): + * editfns.c (hi_time, decode_time_components): + * fileio.c (file_offset): + * fns.c (larger_vector, make_hash_table, Fmake_hash_table): + * font.c (font_intern_prop): + * frame.c (x_set_alpha): + * gtkutil.c (get_utf8_string): + * indent.c (check_display_width): + * keymap.c (Fkey_description): + * lisp.h (FIXNUM_OVERFLOW_P, vcopy): + * lread.c (read1): + * minibuf.c (read_minibuf_noninteractive): + * process.c (wait_reading_process_output): + * search.c (Freplace_match): + * window.c (get_phys_cursor_glyph): + * xdisp.c (redisplay_internal): + * xsmfns.c (smc_save_yourself_CB): + Prefer < to > for range checks. + * dispnew.c (sit_for): Don't mishandle NaNs. + This fixes a bug introduced in the 2013-03-24 change. + * editfns.c (decode_time_components): Don't hoist comparison. + This fixes another bug introduced in the 2013-03-24 change. -2011-03-19 Juanma Barranquero +2013-03-31 Dmitry Antipov - * xfaces.c (Fx_load_color_file): - Read color file from absolute filename (bug#8250). + * frame.h (struct frame): Drop scroll_bottom_vpos + member becaue all real users are dead long ago. + (FRAME_SCROLL_BOTTOM_VPOS): Remove. + * xdisp.c (redisplay_internal): Adjust user. -2011-03-19 Juanma Barranquero +2013-03-30 Darren Ho (tiny change) - * makefile.w32-in: Update dependencies. + * nsmenu.m (showAtX:Y:for:): setLevel to + NSPopUpMenuWindowLevel (Bug#13998). -2011-03-17 Eli Zaretskii +2013-03-30 Jan Djärv - * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h. + * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open) + (ns_check_pending_open_menu): Declare. -2011-03-17 Paul Eggert + * nsmenu.m (ns_update_menubar): Correct NSTRACE. + (x_activate_menubar): Update the menu with title that matches + ns_get_pending_menu_title, and call + ns_check_pending_openmenu (Bug#12698). + (menuWillOpen:): New method. + (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698). - Fix more problems found by GCC 4.5.2's static checks. + * nsterm.m (menu_will_open_state, menu_mouse_point) + (menu_pending_title): New varaibles. + (ns_get_pending_menu_title, ns_check_menu_open) + (ns_check_pending_open_menu): New functions. - * process.c (make_serial_process_unwind, send_process_trap): - (sigchld_handler): Now static. +2013-03-29 Dmitry Antipov - * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars. - That way, the code declares only the vars that it needs. - * s/aix4-2.h (PTY_ITERATION): Declare iteration vars. - * s/cygwin.h (PTY_ITERATION): Likewise. - * s/darwin.h (PTY_ITERATION): Likewise. - * s/gnu-linux.h (PTY_ITERATION): Likewise. - - * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling. - * process.c (allocate_pty): Don't declare stb unless it's needed. + * indent.c (current_column_bol_cache): Remove leftover which is not + used in Fmove_to_column any more. + (current_column, scan_for_column): Adjust users. + * keyboard.c (last_point_position_buffer, last_point_position_window): + Remove leftovers which are not used for recording undo any more. + (command_loop_1, syms_of_keyboard): Adjust users. + * xdisp.c (last_max_ascent): Remove leftover which is not used in + redisplay_window any more. + (move_it_to): Adjust user. - * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else". - (CONSTANTLIM): Remove; unused. - (METER_CODE, Bscan_buffer, Bread_char, Bset_mark): - Define only if needed. - - * unexelf.c (unexec): Name an expression, - to avoid gcc -Wbad-function-cast warning. - Use a different way to cause a compilation error if anyone uses - n rather than nn, a way that does not involve shadowing. - (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused. - - * deps.mk (unexalpha.o): Remove; unused. - - New file unexec.h, the (simple) interface for unexec (Bug#8267). - * unexec.h: New file. - * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o): - (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o): - Depend on unexec.h. - * emacs.c [!defined CANNOT_DUMP]: Include unexec.h. - * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c: - * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h. - Change as necessary to match prototype in unexec.h. - - * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid - shadowing. - (back_comment, skip_chars): Mark vars as initialized. - - * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS): - Rename locals to avoid shadowing. - - * lread.c (read1): Rewrite so as not to use empty "else". - (Fload, readevalloop, read1): Rename locals to avoid shadowing. - - * print.c (Fredirect_debugging_output): Fix pointer signedess. - - * lisp.h (debug_output_compilation_hack): Add decl here, to avoid - warning when compiling print.c. - - * font.c (font_unparse_fcname): Abort in an "impossible" situation - instead of using an uninitialized var. - (font_sort_entities): Mark var as initialized. - - * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing. - - * font.c (font_unparse_xlfd): Don't mix pointers to variables with - pointers to constants. - (font_parse_fcname): Remove unused vars. - (font_delete_unmatched): Now static. - (font_get_spec): Remove; unused. - (font_style_to_value, font_prop_validate_style, font_unparse_fcname): - (font_update_drivers, Ffont_get_glyphs, font_add_log): - Rename or move locals to avoid shadowing. - - * fns.c (require_nesting_list, require_unwind): Now static. - (Ffillarray): Rename locals to avoid shadowing. - - * floatfns.c (domain_error2): Define only if needed. - (Ffrexp, Fldexp): Rename locals to avoid shadowing. - - * alloc.c (mark_backtrace): Move decl from here ... - * lisp.h: ... to here, so that it can be checked. - - * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static. - (Fdefvar): Rewrite so as not to use empty "else". - (lisp_indirect_variable): Name an expression, - to avoid gcc -Wbad-function-cast warning. - (Fdefvar): Rename locals to avoid shadowing. - - * callint.c (quotify_arg, quotify_args): Now static. - (Fcall_interactively): Rename locals to avoid shadowing. - Use const pointer when appropriate. - - * lisp.h (get_system_name, get_operating_system_release): - Move decls here, to check interfaces. - * process.c (get_operating_system_release): Move decl to lisp.h. - * xrdb.c (get_system_name): Likewise. - * editfns.c (init_editfns, Fuser_login_name, Fuser_uid): - (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts, - some of which prompt warnings from gcc -Wbad-function-cast. - (Fformat_time_string, Fencode_time, Finsert_char): - (Ftranslate_region_internal, Fformat): - Rename or remove local vars to avoid shadowing. - (Ftranslate_region_internal): Mark var as initialized. - - * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to - avoid shadowing. - - * lisp.h (eassert): Check that the argument compiles, even if - ENABLE_CHECKING is not defined. - - * data.c (Findirect_variable): Name an expression, to avoid - gcc -Wbad-function-cast warning. - (default_value, arithcompare, arith_driver, arith_error): Now static. - (store_symval_forwarding): Rename local to avoid shadowing. - (Fmake_variable_buffer_local, Fmake_local_variable): - Mark variables as initialized. - (do_blv_forwarding, do_symval_forwarding): Remove; unused. - - * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST. - (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect): - Rename locals to avoid shadowing. - (mark_stack): Move local variables into the #ifdef region where - they're used. - (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if - ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not - needed otherwise. - (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS. - (GC_STRING_CHARS): Remove; not used. - (Fmemory_limit): Cast sbrk's returned value to char *. - - * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this - avoids undefined behavior in theory. - - * regex.c (IF_LINT): Add defn, for benefit of ../lib-src. - - Use functions, not macros, for up- and down-casing (Bug#8254). - * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP): - (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed - to use the following functions instead of these macros. - (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not - EMACS_INT, since callers assume the returned value fits in int. - (upcase1): Likewise, for UPCASE_TABLE. - (uppercasep, lowercasep, upcase): New static inline functions. - * editfns.c (Fchar_equal): Remove no-longer-needed workaround for - the race-condition problem in the old DOWNCASE. - - * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT): - Rename locals to avoid shadowing. - (regex_compile, re_match_2_internal): Move locals to avoid shadowing. - (regex_compile, re_search_2, re_match_2_internal): - Remove unused local vars. - (FREE_VAR): Rewrite so as not to use empty "else", - which gcc can warn about. - (regex_compile, re_match_2_internal): Mark locals as initialized. - (RETALLOC_IF): Define only if needed. - (WORDCHAR_P): Likewise. This one is never needed, but is used - only in a comment talking about a compiler bug, so put inside - the #if 0 of that comment. - (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK): - (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING): - Remove; unused. +2013-03-29 Juanma Barranquero - * search.c (boyer_moore): Rename locals to avoid shadowing. - * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): - (PREV_CHAR_BOUNDARY): Likewise. + * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)): + Update dependencies. - * search.c (simple_search): Remove unused var. +2013-03-28 Stefan Monnier + + * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER) + (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid + forward references. + +2013-03-28 Dmitry Antipov + + * window.h (struct window): Replace hchild, vchild and buffer slots + with the only contents slot. This is possible because each valid + window may have either the child window (in vertical or horizontal + combination) or buffer to display (for the leaf window). Using that, + a lof of operations to traverse and/or change window hierarchies may + be simplified. New member horizontal is used to distinguish between + horizontal and vertical combinations of internal windows. + (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P) + (WINDOW_VERTICAL_COMBINATION_P): New macros. + (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes. + * window.c (wset_hchild, wset_vchild): Remove. Adjust all users. + Use contents slot, not buffer, where appropriate. + (wset_combination): New function. + (wset_buffer): Add eassert. + (Fframe_first_window): Simplify the loop reaching first window. + (Fwindow_buffer): Use WINDOW_LEAF_P. + (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P. + (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P. + (unshow_buffer): Convert initial debugging check to eassert. + (replace_window, recombine_windows, Fdelete_other_windows_internal) + (make_parent_window, window_resize_check, window_resize_apply) + (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal) + (Fset_window_configuration, delete_all_child_windows, save_window_save): + Adjust to match struct window changes. + (window_loop): Check for broken markers in CHECK_ALL_WINDOWS. + (mark_window_cursors_off, count_windows, get_leaf_windows) + (foreach_window_1): Simplify the loop. + * alloc.c (mark_object): Do not check for the leaf window because + internal windows has no glyph matrices anyway. + * dispnew.c (clear_window_matrices, showing_window_margins_p) + (allocate_matrices_for_window_redisplay, fake_current_matrices) + (allocate_matrices_for_frame_redisplay, free_window_matrices) + (build_frame_matrix_from_window_tree, mirror_make_current) + (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers) + (update_window_tree, set_window_update_flags): Simplify the loop. + (sync_window_with_frame_matrix_rows): Enforce live window. + Use contents slot, not buffer, where appropriate. + * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P + and WINDOW_HORIZONTAL_COMBINATION_P. + (make_frame_visible_1): Simplify the loop. + Use contents slot, not buffer, where appropriate. + * xdisp.c (hscroll_window_tree, mark_window_display_accurate) + (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree) + (expose_window_tree): Likewise. + Use contents slot, not buffer, where appropriate. + * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW + to avoid deleted windows. Use contents slot instead of buffer. + * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c: + * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c: + * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c: + * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate. + +2013-03-28 Eli Zaretskii + + * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help + identify the reasons for assertion violations in bug#14062 and + similar ones. + (Fx_show_tip): Fix compilation error under + "--enable-check-lisp-object-type". (Bug#14073) + + * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN. + Reported by . + +2013-03-28 Dmitry Antipov + + * xdisp.c (with_echo_area_buffer_unwind_data): Save window + start marker... + (unwind_with_echo_area_buffer): ...to restore it here. + This is needed to ensure that... + (redisplay_window): ...both window markers are valid here, + which is verified by eassert. + * editfns.c (save_excursion_save): Do not assume that + selected_window always displays the buffer. + * buffer.c (Fbuffer_swap_text): Adjust window start markers. + Fix comment. + +2013-03-27 Stefan Monnier + + * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for + the upcase table. + +2013-03-27 rzl24ozi (tiny changes) + + * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function. + +2013-03-27 Eli Zaretskii + + * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype, + since MinGW's w32api headers do. This avoids compiler warnings. + + * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define + if already defined. + +2013-03-26 Eli Zaretskii + + * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64. + +2013-03-26 Jan Djärv + + * gtkutil.c (style_changed_cb): Check if frame is live and an + X frame (Bug#14038). + +2013-03-26 Eli Zaretskii + + * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]: + Define only for _WIN32_WINNT less than 0x0500. + (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for + MinGW64. + Move inclusion of time.h before sys/time.h, so that MinGW64 could + see its own definitions of 'struct timeval' and 'struct timezone'. + + Fix incompatibilities between MinGW.org and MinGW64 headers. + * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined. + + * w32.c (REPARSE_DATA_BUFFER): Guard with + MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined. + +2013-03-25 Jan Djärv + + * xterm.c: Include X11/XKBlib.h + (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041). + +2013-03-24 Andreas Schwab + + * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are + written backwards. + * blockinput.h (input_blocked_p): Likewise. + * bytecode.c (exec_byte_code): Likewise. + * callproc.c (call_process_kill, call_process_cleanup) + (Fcall_process): Likewise. + * ccl.c (ccl_driver, resolve_symbol_ccl_program) + (Fccl_execute_on_string): Likewise. + * character.c (string_escape_byte8): Likewise. + * charset.c (read_hex): Likewise. + * cm.c (calccost): Likewise. + * data.c (cons_to_unsigned): Likewise. + * dired.c (directory_files_internal, file_name_completion): + Likewise. + * dispnew.c (scrolling_window, update_frame_1, Fsleep_for) + (sit_for): Likewise. + * doc.c (Fsubstitute_command_keys): Likewise. + * doprnt.c (doprnt): Likewise. + * editfns.c (hi_time, decode_time_components, Fformat): Likewise. + * emacsgtkfixed.c: Likewise. + * fileio.c (file_offset, Fwrite_region): Likewise. + * floatfns.c (Fexpt, fmod_float): Likewise. + * fns.c (larger_vector, make_hash_table, Fmake_hash_table): + Likewise. + * font.c (font_intern_prop): Likewise. + * frame.c (x_set_alpha): Likewise. + * gtkutil.c (get_utf8_string): Likewise. + * indent.c (check_display_width): Likewise. + * intervals.c (create_root_interval, rotate_right, rotate_left) + (split_interval_right, split_interval_left) + (adjust_intervals_for_insertion, delete_node) + (interval_deletion_adjustment, adjust_intervals_for_deletion) + (merge_interval_right, merge_interval_left, copy_intervals) + (set_intervals_multibyte_1): Likewise. + * keyboard.c (gobble_input, append_tool_bar_item): Likewise. + * keymap.c (Fkey_description): Likewise. + * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise. + * lread.c (openp, read_integer, read1, string_to_number): + Likewise. + * menu.c (ensure_menu_items): Likewise. + * minibuf.c (read_minibuf_noninteractive): Likewise. + * print.c (printchar, strout): Likewise. + * process.c (create_process, Faccept_process_output) + (wait_reading_process_output, read_process_output, send_process) + (wait_reading_process_output): Likewise. + * profiler.c (make_log, handle_profiler_signal): Likewise. + * regex.c (re_exec): Likewise. + * regex.h: Likewise. + * search.c (looking_at_1, Freplace_match): Likewise. + * sysdep.c (get_child_status, procfs_ttyname) + (procfs_get_total_memory): Likewise. + * systime.h (EMACS_TIME_VALID_P): Likewise. + * term.c (dissociate_if_controlling_tty): Likewise. + * window.c (get_phys_cursor_glyph): Likewise. + * xdisp.c (init_iterator, redisplay_internal, redisplay_window) + (try_window_reusing_current_matrix, try_window_id, pint2hrstr): + Likewise. + * xfns.c (Fx_window_property): Likewise. + * xmenu.c (set_frame_menubar): Likewise. + * xselect.c (x_get_window_property, x_handle_dnd_message): + Likewise. + * xsmfns.c (smc_save_yourself_CB): Likewise. + * xterm.c (x_scroll_bar_set_handle): Likewise. + +2013-03-24 Dmitry Antipov + + * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument + to be optional or nil. Adjust comment and convert it to docstring. + * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message. + * frame.c (display_x_get_resource, Fx_get_resource): Break long line. + +2013-03-24 Paul Eggert + + Static checking by GCC 4.8-20130319. + * image.c (gif_load): Assume pass < 3 to pacify GCC. + * process.c (Fset_process_datagram_address) + (Fmake_network_process): Check get_lisp_to_sockaddr_size return value. + * xdisp.c (get_char_face_and_encoding): + (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized. + (get_glyph_face_and_encoding): Prepare face before possibly using it. + (get_per_char_metric): Don't use CHAR2B if it might not be initialized. + +2013-03-24 Ken Brown + + * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to + fix compilation on 64-bit Cygwin, where underscores are not + automatically prepended. + + * w32term.c (w32_initialize): Silence compiler warning. + +2013-03-23 Eli Zaretskii + + * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH, + FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static + variables, to save and restore frame dimensions. + Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position + after returning from a 'fullscreen' configuration. + use SendMessage instead of PostMessage to send the SC_RESTORE message, + to avoid races between the main thread and the input thread. + + * w32term.h (struct w32_output): New members normal_width, + normal_height, normal_top, normal_left, and prev_fsmode. + (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP) + (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these + members of a frame. + + * w32term.c (w32fullscreen_hook): Record last value of the frame's + 'fullscreen' parameter. Always record previous width and height + of the frame, except when switching out of maximized modes, so + that they could be restored correctly, instead of resetting to the + default frame dimensions. Send SC_RESTORE command to the frame, + unless we are going to send SC_MAXIMIZE, to restore the frame + resize hints in the mouse pointer shown by the window manager. + (Bug#14032) + + * frame.c (get_frame_param): Now extern for WINDOWSNT as well. + + * lisp.h (get_frame_param): Adjust conditions for prototype + declaration. + +2013-03-22 Ken Brown + + * unexcw.c: Drop unneeded inclusion of w32common.h. + (report_sheap_usage): Declare. + (read_exe_header): Add magic numbers for x86_64. + (fixup_executable): Fix printf format specifier for unsigned long + argument. - * dired.c (compile_pattern): Move decl from here ... - * lisp.h: ... to here, so that it can be checked. - (struct re_registers): New forward decl. +2013-03-22 Dmitry Antipov + + * frame.h (struct frame): Put menu_bar_window under #ifdef + because this member is not needed when X toolkit is in use. + (fset_menu_bar_window): + * dispnew.c (clear_current_matrices, clear_desired_matrices) + (free_glyphs, update_frame): + * xdisp.c (expose_frame): Likewise. + (display_menu_bar): Likewise. Remove redundant eassert. + * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X + toolkit is in use. + +2013-03-21 Paul Eggert + + Use functions and constants to manipulate Lisp_Save_Value objects. + This replaces code that used macros and strings and token-pasting. + The change makes the C source a bit easier to follow, + and shrinks the Emacs executable a bit. + * alloc.c: Verify some properties of Lisp_Save_Value's representation. + (make_save_value): Change 1st arg from string to enum. All callers + changed. + (INTX): Remove. + (mark_object): Use if, not #if, for GC_MARK_STACK. + * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER) + (XSAVE_OBJECT): Now functions, not macros. + (STRING_BYTES_BOUND): Now just a macro, not a constant too; + the constant was never used. + (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT) + (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ) + (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ) + (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY): + New constants. + (struct Lisp_Save_Value): Replace members area, type0, type1, type2, + type3 with a single member save_type. All uses changed. + (save_type, set_save_pointer, set_save_integer): New functions. + * print.c (PRINTX): Remove. + + * alloc.c: Remove redundant static declarations. + +2013-03-20 Dmitry Antipov + + * window.h (struct window): Convert left_col, top_line, total_lines + and total_cols from Lisp_Objects to integers. Adjust comments. + (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines): + Remove. + (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL) + (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion. + * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c: + Adjust users where appropriate. + +2013-03-20 Dmitry Antipov + + * frame.h (struct frame): Drop resx and resy because the same data is + available from window system-specific output context. Adjust users. + (default_pixels_per_inch_x, default_pixels_per_inch_y): + New functions to provide defaults when no window system available. + (FRAME_RES_X, FRAME_RES_Y): New macros. + (NUMVAL): Move from xdisp.c. + * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface) + (Ffont_face_attributes, Fopen_font): + * image.c (gs_load): + * w32font.c (fill_in_logfont): + * xdisp.c (calc_pixel_width_or_height): + * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them. + * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment. - * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing. +2013-03-20 Kenichi Handa - * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width. - All uses changed. - (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion): - Rename locals to avoid shadowing. - (Fvertical_motion): Mark locals as initialized. - - * casefiddle.c (casify_object, casify_region): Now static. - (casify_region): Mark local as initialized. - - * cmds.c (internal_self_insert): Rename local to avoid shadowing. - - * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR): - New macros, so that the caller can use some names other than - gcpro1, gcpro2, etc. - (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms - of the new macros. - (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second - argument, for consistency with GCPRO2_VAR, etc: it is now the - prefix of the variable, not the variable itself. All uses - changed. - * dired.c (directory_files_internal, file_name_completion): - Rename locals to avoid shadowing. - - Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254). - An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in - dired.c's scmp function, had undefined behavior. - * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP): - (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ... - * buffer.h: ... to here, because these macros use current_buffer, - and the new implementation with inline functions needs to have - current_buffer in scope now, rather than later when the macros - are used. - (downcase, upcase1): New static inline functions. - (DOWNCASE, UPCASE1): Reimplement using these functions. - This avoids undefined behavior in expressions like - DOWNCASE (x) == DOWNCASE (y), which previously suffered - from race conditions in accessing the global variables - case_temp1 and case_temp2. - * casetab.c (case_temp1, case_temp2): Remove; no longer needed. - * lisp.h (case_temp1, case_temp2): Remove their decls. - * character.h (ASCII_CHAR_P): Move from here ... - * lisp.h: ... to here, so that the inline functions mentioned - above can use them. - - * dired.c (directory_files_internal_unwind): Now static. - - * fileio.c (file_name_as_directory, directory_file_name): - (barf_or_query_if_file_exists, auto_save_error, auto_save_1): - Now static. - (file_name_as_directory): Use const pointers when appropriate. - (Fexpand_file_name): Likewise. In particular, newdir might - point at constant storage, so make it a const pointer. - (Fmake_directory_internal, Fread_file_name): Remove unused vars. - (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer - signedness issues. - (Fset_file_times, Finsert_file_contents, auto_save_error): - Rename locals to avoid shadowing. - - * minibuf.c (choose_minibuf_frame_1): Now static. - (Ftry_completion, Fall_completions): Rename or remove locals - to avoid shadowing. - - * marker.c (bytepos_to_charpos): Remove; unused. - - * lisp.h (verify_bytepos, count_markers): New decls, - so that gcc does not warn that these functions aren't declared. - - * insdel.c (check_markers, make_gap_larger, make_gap_smaller): - (reset_var_on_error, Fcombine_after_change_execute_1): Now static. - (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic. - (copy_text): Remove unused local var. - - * filelock.c (within_one_second): Now static. - (lock_file_1): Rename local to avoid shadowing. - - * buffer.c (fix_overlays_before): Mark locals as initialized. - (fix_start_end_in_overlays): Likewise. This function should be - simplified by using pointers-to-pointers, but that's a different - matter. - (switch_to_buffer_1): Now static. - (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte): - (report_overlay_modification): Rename locals to avoid shadowing. - - * sysdep.c (system_process_attributes): Rename vars to avoid shadowing. - Fix pointer signedness issue. - (sys_subshell): Mark local as volatile if checking for lint, - to suppress a gcc -Wclobbered warning that does not seem to be right. - (MAXPATHLEN): Define only if needed. - - * process.c (serial_open, serial_configure): Move decls from here ... - * systty.h: ... to here, so that they can be checked. - - * fns.c (get_random, seed_random): Move extern decls from here ... - * lisp.h: ... to here, so that they can be checked. - - * sysdep.c (reset_io): Now static. - (wait_for_termination_signal): Remove; unused. - - * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal): - (copy_keymap_item, append_key, push_text_char_description): - Now static. - (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily. - (DENSE_TABLE_SIZE): Remove; unused. - (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal): - (describe_map_tree): - Rename locals to avoid shadowing. - - * keyboard.c: Declare functions static if they are not used elsewhere. - (echo_char, echo_dash, cmd_error, top_level_2): - (poll_for_input, handle_async_input): Now static. - (read_char, kbd_buffer_get_event, make_lispy_position): - (make_lispy_event, make_lispy_movement, apply_modifiers): - (decode_keyboard_code, tty_read_avail_input, menu_bar_items): - (parse_tool_bar_item, read_key_sequence, Fread_key_sequence): - (Fread_key_sequence_vector): Rename locals to avoid shadowing. - (read_key_sequence, read_char): Mark locals as initialized. - (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN. - - * keyboard.h (make_ctrl_char): New decl. - (mark_kboards): Move decl here ... - * alloc.c (mark_kboards): ... from here. - - * lisp.h (force_auto_save_soon): New decl. - - * emacs.c (init_cmdargs): Rename local to avoid shadowing. - (DEFINE_DUMMY_FUNCTION): New macro. - (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main): - Use it. - (main): Add casts to avoid warnings - if GCC considers string literals to be constants. + * coding.c (syms_of_coding): Initialize disable_ascii_optimization + to 1 (temporary workaround until a bug related to ASCII + optimization is fixed). - * lisp.h (fatal_error_signal): Add decl, since it's exported. +2013-03-19 Dmitry Antipov - * dbusbind.c: Pointer signedness fixes. - (xd_signature, xd_append_arg, xd_initialize): - (Fdbus_call_method, Fdbus_call_method_asynchronously): - (Fdbus_method_return_internal, Fdbus_method_error_internal): - (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service): - (Fdbus_register_signal): Use SSDATA when the context wants char *. + * window.c (Fwindow_combination_limit, Fset_window_combination_limit): + Signal error if window is not internal. Adjust docstring. + (delete_all_child_windows): Use combination_limit to save the buffer. + (Fset_window_configuration): Adjust accordingly. + * print.c (syms_of_print): Initialize debugging output not here... + (init_print_once): ...but in a new function here. + * lisp.h (init_print_once): Add prototype. + * emacs.c (main): Add call to init_print_once. Adjust comments. - * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning - if GCC considers string literals to be constants. - (Fdbus_register_service, Fdbus_register_method): Remove unused vars. +2013-03-18 Dmitry Antipov -2011-03-16 Stefan Monnier + * window.c (window_resize_check, window_resize_apply) + (window_from_coordinates, recombine_windows, set_window_buffer) + (make_parent_window, Fwindow_resize_apply, resize_frame_windows) + (Fsplit_window_internal, Fdelete_window_internal) + (freeze_window_starts): Use bool for booleans. + * window.h (window_frame_coordinates, resize_frame_windows) + (freeze_window_starts, set_window_buffer): Adjust prototypes. - * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro. - (print_preprocess, print_object): New macro to fix last change. +2013-03-17 Stefan Monnier - * print.c (print_preprocess): Don't forget font objects. + * dispnew.c (bitch_at_user): Use `user-error'. -2011-03-16 Juanma Barranquero +2013-03-17 Ken Brown - * emacs.c (USAGE3): Doc fixes. + * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it + as return type of image_background. (Bug#13981) + * image.c (RGB_PIXEL_COLOR): Move to dispextern.h. -2011-03-15 Andreas Schwab +2013-03-16 Jan Djärv - * coding.c (detect_coding_iso_2022): Reorganize code to clarify - structure. + * nsterm.m (updateFrameSize:): Change resize increments if needed. + (ns_select): Don't return with result uninitialized. -2011-03-14 Juanma Barranquero + * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename + and getDirectory. - * lisp.h (VWindow_system, Qfile_name_history): - * keyboard.h (lispy_function_keys) [WINDOWSNT]: - * w32term.h (w32_system_caret_hwnd, w32_system_caret_height) - (w32_system_caret_x, w32_system_caret_y): Declare extern. + * nsfns.m (ns_filename_from_panel, ns_directory_from_panel): + New functions. + (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose + directories. If filename is nil, get directory name (Bug#13932). + Use getFilename and getDirectory. + (getFilename, getDirectory): New methods for EmacsSavePanel and + EmacsOpenPanel. + (ok:): In EmacsOpenPanel, if we can't choose directories, just return. + +2013-03-15 Paul Eggert + + * coding.c (decode_coding_gap): Fix typo caught by static checking. + +2013-03-15 Kenichi Handa + + * insdel.c (insert_from_gap): New arg text_at_gap_tail. + (adjust_after_replace): Make it back to static. Delete the third + arg text_at_gap_tail. Cancel the code for handling it. + + * coding.h (struct coding_system): New member eol_seen. + + * coding.c (detect_ascii): New function. + (detect_coding): Set coding->head_ascii and coding->eol_seen only + when the source bytes are actually scanned. On detecting for + coding_category_utf_8_auto, call detect_ascii instead of scanning + source bytes directly. + (produce_chars): Call insert_from_gap with the new arg 0. + (encode_coding): Likewise. + (decode_coding_gap): Control ASCII optimization by the variable + disable_ascii_optimization instead of #ifndef .. #endif. + Deccode EOL format according to coding->eol_seen. + (syms_of_coding): Declare disable-ascii-optimization as a Lisp + variable. - * w32select.c: Don't #include "keyboard.h". - (run_protected): Add extern declaration for waiting_for_input. + * lisp.h (adjust_after_replace): Cancel externing it. + (insert_from_gap): Adjust prototype. - * w32.c (Qlocal, noninteractive1, inhibit_window_system): - * w32console.c (detect_input_pending, read_input_pending) - (encode_terminal_code): - * w32fns.c (quit_char, lispy_function_keys, Qtooltip) - (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x) - (w32_system_caret_y, Qfile_name_history): - * w32font.c (w32font_driver, QCantialias, QCotf, QClang): - * w32inevt.c (reinvoke_input_signal, lispy_function_keys): - * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map) - (Qoverriding_terminal_local_map, Qmenu_bar_update_hook): - * w32proc.c (Qlocal, report_file_error): - * w32term.c (Vwindow_system, updating_frame): - * w32uniscribe.c (initialized, uniscribe_font_driver): - Remove unneeded extern declarations. +2013-03-15 Eli Zaretskii -2011-03-14 Chong Yidong + * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and + FULLSCREEN_MAXIMIZED. (Bug#13935) - * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions. +2013-03-15 Dmitry Antipov -2011-03-13 Chong Yidong + * region-cache.c (find_cache_boundary, move_cache_gap) + (insert_cache_boundary, delete_cache_boundaries, set_cache_region): + Simplify debugging check and convert to eassert. Adjust comment. + (pp_cache): Put under ENABLE_CHECKING. - * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT) - (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219). - These macros can no longer be used for assignment. +2013-03-14 Eli Zaretskii - * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): - Assign struct members directly, instead of using BUF_BEGV etc. - (record_buffer_markers, fetch_buffer_markers): New functions for - recording and fetching special buffer markers. - (set_buffer_internal_1, set_buffer_temp): Use them. - - * lread.c (unreadchar): Use SET_BUF_PT_BOTH. - - * insdel.c (adjust_point): Use SET_BUF_PT_BOTH. - - * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH. - (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH. - - * xdisp.c (hscroll_window_tree): - (reconsider_clip_changes): Use PT instead of BUF_PT. + * w32term.c (w32_read_socket) : Remove old + and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE + and WM_ACTIVATEAPP. + (w32fullscreen_hook): If the frame is visible, reset + f->want_fullscreen flag after changing the frame size. If the + frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT. + (Bug#13953) -2011-03-13 Eli Zaretskii +2013-03-13 Daniel Colascione - * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on - $(EMACS_ROOT)/lib/intprops.h. + * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds + too so that these builds can use Cygwin's file conversion + functions. (We've been building and linking cygw32.o all along + and just not using it.) -2011-03-13 Paul Eggert +2013-03-13 Paul Eggert - Fix more problems found by GCC 4.5.2's static checks. + File synchronization fixes (Bug#13944). + * Makefile.in (LIB_FDATASYNC): New macro. + (LIBES): Use it. + * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed. + * 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. - * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char * - to unsigned char * to avoid compiler diagnostic. - (xg_free_frame_widgets): Make it clear that a local variable is - needed only if USE_GTK_TOOLTIP. - (gdk_window_get_screen): Make it clear that this macro is needed - only if USE_GTK_TOOLTIP. - (int_gtk_range_get_value): New function, which avoids a diagnostic - from gcc -Wbad-function-cast. - (xg_set_toolkit_scroll_bar_thumb): Use it. - (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid - diagnostic from gcc -Wbad-function-cast. - (get_utf8_string, xg_get_file_with_chooser): - Rename locals to avoid shadowing. - (create_dialog): Move locals to avoid shadowing. +2013-03-13 Eli Zaretskii - * xgselect.c (xg_select): Remove unused var. + * w32term.c (w32_read_socket): If the Emacs frame is being + activated, call w32fullscreen_hook, to make sure the new frame + dimensions are in effect. (Bug#13937) - * image.c (four_corners_best): Mark locals as initialized. - (gif_load): Initialize transparent_p to zero (Bug#8238). - Mark another local as initialized. - (my_png_error, my_error_exit): Mark with NO_RETURN. +2013-03-13 Dmitry Antipov - * image.c (clear_image_cache): Now static. - (DIM, HAVE_STDLIB_H_1): Remove unused macros. - (xpm_load): Redo to avoid "discards qualifiers" gcc warning. - (x_edge_detection): Remove unnecessary cast that - gcc -Wbad-function-cast diagnoses. - (gif_load): Fix pointer signedness. - (clear_image_cache, xbm_read_bitmap_data, x_detect_edges): - (jpeg_load, gif_load): Rename locals to avoid shadowing. + * xdisp.c (init_iterator): Simplify because both character and byte + positions are either specified or -1. Add eassert. Adjust comment. + * window.c (Fscroll_other_window): Use SET_PT_BOTH because both + character and byte positions can be obtained from marker. -2011-03-12 Paul Eggert +2013-03-13 Paul Eggert - Improve quality of tests for time stamp overflow. - For example, without this patch (encode-time 0 0 0 1 1 - 1152921504606846976) returns the obviously-bogus value (-948597 - 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly - reports time overflow. See - . - * deps.mk (editfns.o): Depend on ../lib/intprops.h. - * editfns.c: Include limits.h and intprops.h. - (TIME_T_MIN, TIME_T_MAX): New macros. - (time_overflow): Move earlier, to before first use. - (hi_time, lo_time): New functions, for an accurate test for - out-of-range times. - (Fcurrent_time, Fget_internal_run_time, make_time): Use them. - (Fget_internal_run_time): Don't assume time_t fits in int. - (make_time): Use list2 instead of Fcons twice. - (Fdecode_time): More accurate test for out-of-range times. - (check_tm_member): New function. - (Fencode_time): Use it, to test for out-of-range times. - (lisp_time_argument): Don't rely on undefined left-shift and - right-shift behavior when checking for time stamp overflow. - - * editfns.c (time_overflow): New function, refactoring common code. - (Fformat_time_string, Fdecode_time, Fencode_time): - (Fcurrent_time_string): Use it. - - Move 'make_time' to be next to its inverse 'lisp_time_argument'. - * dired.c (make_time): Move to ... - * editfns.c (make_time): ... here. - * systime.h: Note the move. - -2011-03-12 YAMAMOTO Mitsuharu - - * fringe.c (update_window_fringes): Remove unused variables. - - * unexmacosx.c (copy_data_segment): Also copy __got section. - (Bug#8223) - -2011-03-12 Eli Zaretskii - - * termcap.c [MSDOS]: Include "msdos.h". - (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent): - Constify `char *' arguments and their references according to - prototypes in tparam.h. - - * deps.mk (termcap.o): Depend on tparam.h and msdos.h. - - * msdos.c (XMenuAddPane): 3rd argument is `const char *' now. - Adapt all references accordingly. - - * msdos.h (XMenuAddPane): 3rd argument is `const char *' now. - -2011-03-11 Tom Tromey - - * buffer.c (syms_of_buffer): Remove obsolete comment. - -2011-03-11 Eli Zaretskii - - * termhooks.h (encode_terminal_code): Declare prototype. - - * msdos.c (encode_terminal_code): Don't declare prototype. - - * term.c (encode_terminal_code): Now external again, used by - w32console.c and msdos.c. - - * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)): - Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu. - -2011-03-11 Paul Eggert - - Fix some minor problems found by GCC 4.5.2's static checks. - - * fringe.c (update_window_fringes): Mark locals as initialized - (Bug#8227). - (destroy_fringe_bitmap, init_fringe_bitmap): Now static. - - * alloc.c (mark_fringe_data): Move decl from here ... - * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here, - to check its interface. - (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM. - - * fontset.c (free_realized_fontset): Now static. - (Fset_fontset_font): Rename local to avoid shadowing. - (fontset_font): Mark local as initialized. - (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused. - - * xrdb.c: Include "xterm.h", to check x_load_resources's interface. - - * xselect.c (x_disown_buffer_selections): Remove; not used. - (TRACE3) [!defined TRACE_SELECTION]: Remove; not used. - (x_own_selection, Fx_disown_selection_internal): Rename locals - to avoid shadowing. - (x_handle_dnd_message): Remove local to avoid shadowing. - - * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros, - so that the caller can use some name other than gcpro1. - (GCPRO1, UNGCPRO): Reimplement in terms of the new macros. - * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip): - (Fx_backspace_delete_keys_p): - Use them to avoid shadowing, and rename vars to avoid shadowing. - (x_decode_color, x_set_name, x_window): Now static. - (Fx_create_frame): Add braces to silence GCC warning. - (Fx_file_dialog, Fx_select_font): Fix pointer signedness. - (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame): - Remove unused locals. - (Fx_create_frame, x_create_tip_frame, Fx_show_tip): - (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing. - Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR - macros. - - * xterm.h (x_mouse_leave): New decl. - - * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame): - Remove unused functions. - (x_shift_glyphs_for_insert, XTflash, XTring_bell): - (x_calc_absolute_position): Now static. - (XTread_socket): Don't define label "out" unless it's used. - Don't declare local "event" unless it's used. - (x_iconify_frame, x_free_frame_resources): Don't declare locals - unless they are used. - (XEMBED_VERSION, xembed_set_info): Don't define unless needed. - (x_fatal_error_signal): Remove; not used. - (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position): - (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor): - (x_error_catcher, x_connection_closed, x_error_handler): - (x_error_quitter, xembed_send_message, x_iconify_frame): - (my_log_handler): Rename locals to avoid shadowing. - (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN. - (x_connection_closed): Tell GCC not to suggest NO_RETURN. - - * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font): - Rename or move locals to avoid shadowing. - (tty_defined_color, merge_face_heights): Now static. - (free_realized_faces_for_fontset): Remove; not used. - (Fx_list_fonts): Mark variable that gcc -Wuninitialized - does not deduce is never used uninitialized. - (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used. - (LFACEP): Define only if XASSERTS, as it's not needed otherwise. - - * terminal.c (store_terminal_param): Now static. - - * xmenu.c (menu_highlight_callback): Now static. - (set_frame_menubar): Remove unused local. - (xmenu_show): Rename parameter to avoid shadowing. - (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const" - since they might point to immutable storage. - (next_menubar_widget_id): Declare only if USE_X_TOOLKIT, - since it's unused otherwise. - - * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff. - Add a FIXME, since the code still doesn't look right. (Bug#8215) - (Fcurrent_bidi_paragraph_direction): Simplify slightly; this - avoids a gcc -Wuninitialized diagnostic. - (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs): - (note_mouse_highlight): Mark variables that gcc -Wuninitialized - does not deduce are never used uninitialized. - - * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c. - - * xdisp.c (redisplay_window): Rename local to avoid shadowing. - * window.c (window_loop, size_window): - (run_window_configuration_change_hook, enlarge_window): Likewise. - - * window.c (display_buffer): Now static. - (size_window): Mark variables that gcc -Wuninitialized - does not deduce are never used uninitialized. - * window.h (check_all_windows): New decl, to forestall - gcc -Wmissing-prototypes diagnostic. - * dispextern.h (bidi_dump_cached_states): Likewise. - - * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid - shadowing. - * charset.c (map_charset_for_dump, Fchar_charset): Likewise. - Include . - (Fsort_charsets): Redo min/max calculation to shorten the code a bit - and to avoid gcc -Wuninitialized warning. - (load_charset_map): Mark variables that gcc -Wuninitialized - does not deduce are never used uninitialized. - (load_charset): Abort instead of using uninitialized var (Bug#8229). - - * coding.c (coding_set_source, coding_set_destination): - Use "else { /* comment */ }" rather than "else /* comment */;" - for clarity, and to avoid gcc -Wempty-body warning. - (Fdefine_coding_system_internal): Don't redeclare 'i' inside - a block, when the outer 'i' will do. - (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule): - (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022): - (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5): - (decode_coding_raw_text, decode_coding_charset, get_translation_table): - (Fdecode_sjis_char, Fdefine_coding_system_internal): - Rename locals to avoid shadowing. - * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise. - * coding.c (emacs_mule_char, encode_invocation_designation): - Now static, since they're not used elsewhere. - (decode_coding_iso_2022): Add "default: abort ();" as a safety check. - (decode_coding_object, encode_coding_object, detect_coding_system): - (decode_coding_emacs_mule): Mark variables that gcc - -Wuninitialized does not deduce are never used uninitialized. - (detect_coding_iso_2022): Initialize a local variable that might - be used uninitialized. Leave a FIXME because it's not clear that - this initialization is needed. (Bug#8211) - (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT): - (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P): - (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER): - (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R): - Remove unused macros. - - * category.c (hash_get_category_set): Remove unused local var. - (copy_category_table): Now static, since it's not used elsewhere. - * character.c (string_count_byte8): Likewise. - - * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string): - (Fregister_code_conversion_map): Rename locals to avoid shadowing. - - * chartab.c (copy_sub_char_table): Now static, since it's not used - elsewhere. - (sub_char_table_ref_and_range, char_table_ref_and_range): - Rename locals to avoid shadowing. - (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros. - - * bidi.c (bidi_check_type): Now static, since it's not used elsewhere. - (BIDI_BOB): Remove unused macro. - - * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not - deduce are never used uninitialized. - * term.c (encode_terminal_code): Likewise. - - * term.c (encode_terminal_code): Now static. Remove unused local. - - * tparam.h: New file. - * term.c, tparam.h: Include it. - * deps.mk (term.o, tparam.o): Depend on tparam.h. - * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr): - Move these decls to tparam.h, and make them agree with what - is actually in tparam.c. The previous trick of using incompatible - decls in different modules does not conform to the C standard. - All callers of tparam changed to use tparam's actual API. - * tparam.c (tparam1, tparam, tgoto): - Use const pointers where appropriate. - - * cm.c (calccost, cmgoto): Use const pointers where appropriate. - * cm.h (struct cm): Likewise. - * dispextern.h (do_line_insertion_deletion_costs): Likewise. - * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise. - * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table): - (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph): - (turn_on_face, init_tty): Likewise. - * termchar.h (struct tty_display_info): Likewise. - - * term.c (term_mouse_position): Rename local to avoid shadowing. - - * alloc.c (mark_ttys): Move decl from here ... - * lisp.h (mark_ttys): ... to here, so that it's checked against defn. - -2011-03-11 Andreas Schwab - - * .gdbinit (pwinx, xbuffer): Fix access to buffer name. - -2011-03-09 Juanma Barranquero - - * search.c (compile_pattern_1): Remove argument regp, unused since - revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig. - (compile_pattern): Don't pass it. - -2011-03-08 Jan Djärv - - * xterm.h (DEFAULT_GDK_DISPLAY): New define. - (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines - for ! HAVE_GTK3. - (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID. - - * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size. - - * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define - gdk_window_get_screen, gdk_window_get_geometry, - gdk_x11_window_lookup_for_display and GDK_KEY_g. - (xg_set_screen): Use DEFAULT_GDK_DISPLAY. - (xg_get_pixbuf_from_pixmap): New function. - (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap - to Pixmap, take frame as parameter, remove GdkColormap parameter. - Call xg_get_pixbuf_from_pixmap instead of - gdk_pixbuf_get_from_drawable. - (xg_get_image_for_pixmap): Do not make GdkPixmaps, call - xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead. - (xg_check_special_colors): Use GtkStyleContext and its functions - for HAVE_GTK3. - (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen. - (xg_prepare_tooltip, create_dialog, menubar_map_cb) - (xg_update_frame_menubar, xg_tool_bar_detach_callback) - (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes): - Call gtk_widget_get_preferred_size. - (xg_frame_resized): gdk_window_get_geometry only takes 5 - parameters. - (xg_win_to_widget, xg_event_is_for_menubar): - Call gdk_x11_window_lookup_for_display. - (xg_set_widget_bg): New function. - (delete_cb): New function. - (xg_create_frame_widgets): Connect delete-event to delete_cb. - Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3 - (xg_set_background_color): Call xg_set_widget_bg. - (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask. - (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3. - Only call gtk_range_set_update_policy if ! HAVE_GTK3. - (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback - if ! HAVE_GTK3. - (update_frame_tool_bar): Call gtk_widget_hide. - (xg_initialize): Use GDK_KEY_g. - - * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id - if ! HAVE_GTK3 - (x_session_initialize): Call gdk_x11_set_sm_client_id. - - * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3. - (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS. - Load ~/emacs.d/gtkrc only for ! HAVE_GTK3. - -2011-03-08 Juanma Barranquero - - * w32xfns.c (select_palette): Check success of RealizePalette against - GDI_ERROR, not zero. - -See ChangeLog.11 for earlier changes. + Static checking by Sun C 5.12. + * alloc.c (buffer_memory_full) [REL_ALLOC]: + * bytecode.c (exec_byte_code): + * dispnew.c (init_display): + * eval.c (error): + * fileio.c (Fsubstitute_in_file_name): + * keyboard.c (Fevent_convert_list): + * keymap.c (Fsingle_key_description): + * term.c (maybe_fatal, fatal): + * xfns.c (Fx_display_backing_store, Fx_display_visual_class): + * xsmfns.c (Fhandle_save_session): + Omit unreachable code. + * keymap.c (map_keymap_char_table_item): Cast void * to + a function pointer type; the C Standard requires this. + + * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out. + Include unconditionally, as that works elsewhere and + is simpler here. Include if DARWIN_OS || + __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin + and FreeBSD now. + +See ChangeLog.12 for earlier changes. ;; Local Variables: ;; coding: utf-8