1. 23 Sep, 2014 2 commits
    • Paul Eggert's avatar
      * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy. · 97914756
      Paul Eggert authored
      All callers changed.
      * xterm.c (x_term_init): Use new functionality to avoid two needs
      to compute a string length.
      97914756
    • Dmitry Antipov's avatar
      Use known length of a Lisp string to copy it faster. · 59e10fbd
      Dmitry Antipov authored
      * lisp.h (lispstrcpy): New function.  Add comment.
      * callproc.c (child_setup):
      * dbusbind.c (xd_append_arg):
      * doc.c (get_doc_string):
      * font.c (Ffont_xlfd_name):
      * frame.c (xrdb_get_resource):
      * process.c (Fmake_network_process, network_interface_info):
      * w32fns.c (Fx_open_connection):
      * w32proc.c (sys_spawnve):
      * xfns.c (select_visual):
      * xfont.c (xfont_list):
      * xsmfns.c (x_session_initialize):
      * xterm.c (x_term_init): Use it.
      59e10fbd
  2. 01 Sep, 2014 1 commit
  3. 30 Aug, 2014 1 commit
    • Eli Zaretskii's avatar
      Improve error checking and error messages in string-collation functions. · e7027eab
      Eli Zaretskii authored
       src/sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the
       wording of the error messages.
       (str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings
       sets errno.
       src/w32proc.c (get_lcid_callback): Accept locale specifications
       without the country part, as in "enu" vs "enu_USA".
       (w32_compare_strings): Signal an error if a locale was specified,
       but couldn't be translated into a valid LCID.
      e7027eab
  4. 29 Aug, 2014 3 commits
  5. 25 Aug, 2014 1 commit
    • Eli Zaretskii's avatar
      Implement locale-sensitive string collation for MS-Windows. (Bug#18051) · 015ea0ff
      Eli Zaretskii authored
       src/w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
       New functions.
       src/w32.h (w32_compare_strings): Add prototype.
       src/w32.c <g_b_init_compare_string_w>: New global flag.
       (globals_of_w32): Initialize it.
       src/sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
       src/fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
       [WINDOWSNT]: Call str_collate on MS-Windows.
      
       etc/NEWS: Mention that string-collate-* functions are supported on
       MS-Windows as well.
      015ea0ff
  6. 26 Mar, 2014 1 commit
    • Juanma Barranquero's avatar
      src/*.c: Silence a few warnings about unused vars and functions. · 5af73b0f
      Juanma Barranquero authored
      * src/image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
      * src/sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
      
      * src/keyboard.c (read_decoded_event_from_main_queue): #ifdef out
        variables on Windows.
      
      * src/w32.c (unsetenv): Remove unused var `retval'.
        (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
      
      * src/w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
      
      * src/w32notify.c (watch_worker): Remove unnecesary var sleep_result.
        (start_watching): Remove unused var `thr'.
      
      * src/w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
        (find_child_console): Remove unnecesary var `thread_id'.
      
      * src/w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
        (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
      5af73b0f
  7. 13 Feb, 2014 1 commit
    • Eli Zaretskii's avatar
      Fix crashes in itimers on Windows 9X. · e2607667
      Eli Zaretskii authored
       src/w32proc.c (start_timer_thread): Pass a non-NULL pointer as last
       argument to CreateThread.  This avoids segfaults on Windows 9X.
       Reported by oslsachem <oslsachem@gmail.com>.
      e2607667
  8. 01 Jan, 2014 1 commit
  9. 31 Dec, 2013 1 commit
    • Fabrice Popineau's avatar
      Minor fixes for MinGW64 build. · bd717ca4
      Fabrice Popineau authored
       configure.ac (canonical, C_SWITCH_SYSTEM): Support a 64-bit
       MinGW64 build on MS-Windows.
      
       nt/inc/ms-w32.h (sys_kill): Fix prototype.
      
       src/w32term.c (w32_initialize): Use LCID and LOWORD.
       src/w32proc.c (create_child): Use pid_t for 5th argument.
       (IsValidLocale): Don't provide prototype for MinGW64.
       (Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
       (Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
       src/w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
       MinGW64 doesn't support.
       src/lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
      bd717ca4
  10. 18 Dec, 2013 1 commit
    • Glenn Morris's avatar
      Add load-prefer-newer option, to load .el if newer than .elc · 1f41ee56
      Glenn Morris authored
      * src/lread.c (Fload): Pass load_prefer_newer to openp.
      Don't bother checking mtime if openp already did it.
      (openp): Add `newer' argument, to check all suffixes
      and find the newest file.
      (syms_of_lread) <load_prefer_newer>: New option. 
      
      * src/callproc.c (call_process):
      * src/charset.c (load_charset_map_from_file):
      * src/emacs.c (init_cmdargs):
      * src/image.c (x_create_bitmap_from_file, x_find_image_file):
      * src/lisp.h (openp):
      * lread.c (Flocate_file_internal):
      * src/process.c (Fformat_network_address):
      * src/sound.c (Fplay_sound_internal):
      * src/w32.c (check_windows_init_file):
      * src/w32proc.c (sys_spawnve): Update for new arg spec of openp.
      
      * lisp/Makefile.in (BYTE_COMPILE_FLAGS): Set load-prefer-newer to t.
      
      * etc/NEWS: Mention this.
      
      Fixes: debbugs:2061
      1f41ee56
  11. 07 Dec, 2013 1 commit
  12. 06 Dec, 2013 1 commit
  13. 28 Nov, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #15933 with crashes in file-notify-tests on MS-Windows. · 9c099ca7
      Eli Zaretskii authored
       Support w32 file notifications in batch mode.
       src/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.
       src/w32notify.c (send_notifications): Handle FRAME_INITIAL frames as
       well.
       src/w32inevt.c (handle_file_notifications): Now external, not
       static.
       src/w32term.h (handle_file_notifications): Provide prototype.
       src/emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
       init_crit, since init_display, which does that otherwise, is not
       called.
      9c099ca7
  14. 16 Nov, 2013 1 commit
  15. 02 Nov, 2013 1 commit
  16. 14 Oct, 2013 1 commit
  17. 11 Sep, 2013 1 commit
  18. 29 Aug, 2013 1 commit
    • Eli Zaretskii's avatar
      A possible fix for bug #14333 with hanging at exit on MS-Windows. · 3f940c5a
      Eli Zaretskii authored
       src/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.
       src/w32proc.c (release_listen_threads): New function, signals all
       the reader threads that listen for connections to stop waiting.
       src/w32.h (release_listen_threads): Add prototype.
      3f940c5a
  19. 27 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Simplify EMACS_TIME-related code. · 43aac990
      Paul Eggert authored
      This portability layer is no longer needed, since Emacs has been
      using struct timespec as a portability layer for some time.
      Merge from gnulib, incorporating:
      2013-08-27 timespec: new convenience constants and function
      * src/atimer.h, src/buffer.h, src/dispextern.h, src/xgselect.h:
      Include <time.h> rather than "systime.h"; that's all that's needed now.
      * src/dispnew.c: Include <timespec.h> rather than "systime.h";
      that's all that's needed now.
      * src/systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
      (EMACS_TIME_RESOLUTION): Remove.  All uses changed to
      TIMESPEC_RESOLUTION.
      (LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
      LOG10_TIMESPEC_RESOLUTION.
      (EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
      (EMACS_NSECS): Remove.  All uses changed to tv_nsec.
      (make_emacs_time): Remove.  All used changed to make_timespec.
      (invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
      (current_timespec): Rename from current_emacs_time.  All uses changed.
      (add_emacs_time): Remove.  All uses changed to timespec_add.
      (sub_emacs_time): Remove.  All uses change dot timespec_sub.
      (EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
      (timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
      (EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
      (EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
      (current_timespec): Rename from current_emacs_time.  All uses changed.
      (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
      changed to timespec_cmp.
      * src/xgselect.c: Include <timespec.h>, since our .h files don't.
      43aac990
  20. 25 Feb, 2013 1 commit
    • Eli Zaretskii's avatar
      Implement CLASH_DETECTION for MS-Windows. · 343a2aef
      Eli Zaretskii authored
       src/filelock.c [WINDOWSNT]: Include w32.h.
       (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
       function of that name.  Up-case the macro arguments.
       (IS_LOCK_FILE): New macro.
       (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
       (create_lock_file): New function, with body extracted from
       lock_file_1.
       [WINDOWSNT]: Implement lock files by writing a regular file with
       the lock information as its contents.
       (read_lock_data): New function, on Posix platforms just calls
       emacs_readlinkat.
       [WINDOWSNT]: Read the lock info from the file.
       (current_lock_owner): Call read_lock_data instead of calling
       emacs_readlinkat directly.
       (lock_file) [WINDOWSNT]: Run the file name through
       dostounix_filename.
       src/w32proc.c (sys_kill): Support the case of SIG = 0, in which case
       just check if the process by that PID exists.
       src/w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
       also present, as doing so will fail to error out if the file
       already exists.
       src/makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
      
       nt/inc/ms-w32.h (BOOT_TIME_FILE): Define.
       nt/config.nt (CLASH_DETECTION): Define to 1.
      
       lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Reject files
       that match "\`\.#", to avoid compiling lock files, even if they
       are readable (as they are on MS-Windows).
      
       doc/emacs/files.texi (Interlocking): Don't refer to symlinks as the
       exclusive means of locking files.
      
       etc/NEWS: Mention support for lock files on MS-Windows.
      343a2aef
  21. 18 Feb, 2013 1 commit
  22. 17 Feb, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #13735 with network streams on MS-Windows. · ae11bda5
      Eli Zaretskii authored
      Revert changes to w32proc.c done since 2012-11-30T09:23:15Z!eliz@gnu.org.
      
      Do NOT merge to trunk!
      
       src/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.
       (sys_select): Don't pass a NULL process handle to
       WaitForMultipleObjects.
      
      Fixes: debbugs:13735 debbugs:13546
      ae11bda5
  23. 15 Feb, 2013 3 commits
  24. 13 Feb, 2013 1 commit
  25. 02 Feb, 2013 1 commit
    • Eli Zaretskii's avatar
      Avoid encoding file names run through dostounix_filename on MS-Windows. · e7ac588e
      Eli Zaretskii authored
       src/w32.c (normalize_filename): Accept an additional argument
       MULTIBYTE; if non-zero, traverse the file name by bytes and don't
       downcase it even if w32-downcase-file-names is non-nil.
       (dostounix_filename): Accept an additional argument MULTIBYTE and
       pass it to normalize_filename.
       (emacs_root_dir): Adjust.
       src/msdos.h (dostounix_filename): Adjust prototype.
       src/w32.h (dostounix_filename): Adjust prototype.
       src/msdos.c (dostounix_filename): Accept an additional argument and
       ignore it.
       (init_environment): Adjust callers of dostounix_filename.
       src/fileio.c (Ffile_name_directory, file_name_as_directory)
       (directory_file_name, Fexpand_file_name)
       (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
       dostounix_filename.
       [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
       non-nil.
       (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
       variables, as egetenv is case-insensitive for DOS_NT.
       src/dired.c (file_name_completion): Don't call Fdirectory_file_name
       with an encoded file name.
       src/w32proc.c (Fw32_short_file_name, Fw32_long_file_name): Adjust
       calls to dostounix_filename.
       src/w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
       src/unexw32.c (unexec): Adjust call to dostounix_filename.
       src/termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
       src/emacs.c (decode_env_path) [DOS_NT]: Adjust call to
       dostounix_filename.
       src/callproc.c (Fcall_process) [MSDOS]: Adjust call to
       dostounix_filename.
      e7ac588e
  26. 01 Feb, 2013 1 commit
  27. 01 Jan, 2013 1 commit
  28. 29 Dec, 2012 1 commit
  29. 23 Dec, 2012 1 commit
    • Eli Zaretskii's avatar
      Improve handling of subprocess shutdown on MS-Windows. · 299614f3
      Eli Zaretskii authored
       src/w32proc.c (reader_thread): Do not index fd_info[] with negative
       values.
       (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
       after WaitForSingleObject returns normally.  This expedites reader
       thread shutdown when delete_child triggers it.
       (reap_subprocess): More accurate commentary for why we call
       delete_child only when cp->fd is negative.
       src/w32.c (sys_close): Do not call delete_child on a subprocess
       whose handle is not yet closed.  Instead, set its file descriptor
       to a negative value, so that reap_subprocess will call
       delete_child on that subprocess when its SIGCHLD arrives.  This
       avoids closing handles used for communications between sys_select
       and reader_thread, which doesn't give sys_select a chance to
       notice that the process exited and invoke the SIGCHLD handler for
       it.
      299614f3
  30. 21 Dec, 2012 1 commit
    • Eli Zaretskii's avatar
      Possibly fix bug #13086 with losing track of subprocesses on MS-Windows. · 7efa3fb3
      Eli Zaretskii authored
       src/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.
       Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
      7efa3fb3
  31. 15 Dec, 2012 3 commits
    • Eli Zaretskii's avatar
      Fix bug #13079 on MS-Windows with temp files not being deleted. · b0728617
      Eli Zaretskii authored
       src/w32.h (_child_process): New members input_file and
       pending_deletion.
       (register_child): First argument is now pid_t.
       (record_infile, record_pending_deletion): New prototypes.
       src/w32proc.c (new_child): Initialize input_file and
       pending_deletion members of the child.
       (delete_child): Delete the child's temporary input file, if any,
       that is pending deletion.
       (register_child): First argument is now pid_t.
       (record_infile, record_pending_deletion): New functions.
       (reap_subprocess): Fix a typo in DebPrint string.
       (sys_spawnve, sys_kill): Use pid_t for PID arguments.
       src/fileio.c (internal_delete_file): Return an int again: non-zero
       if delete-file succeeds, zero otherwise.
       src/lisp.h (internal_delete_file): Adjust prototype.
       src/callproc.c (Fcall_process): Don't overwrite infile with result
       of DECODE_FILE.
       [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
       asynchronous subprocess, record the name of the input file name,
       if any.
       (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
       delete the file, record it as pending deletion when the subprocess
       exits.
      
       nt/inc/ms-w32.h (sys_unlink): Provide prototype.
      b0728617
    • Eli Zaretskii's avatar
      7be7da6c
    • Eli Zaretskii's avatar
  32. 08 Dec, 2012 1 commit
    • Paul Eggert's avatar
      Assume POSIX 1003.1-1988 or later for signal.h. · d983a10b
      Paul Eggert authored
      Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
      SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
      * admin/CPP-DEFINES (SIGALRM, SIGCHLD, SIGHUP, SIGKILL, SIGPIPE, SIGQUIT):
      Remove.
      (SIGTRAP): Remove this one too, as config.h no longer defines it.
      * admin/merge-gnulib (GNULIB_MODULES): Add sig2str.
      * configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF):
      Use SIGCHLD rather than SIGCLD.
      * lib/sig2str.c, lib/sig2str.h, m4/sig2str.m4: New files, from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/makefile.w32-in (GNULIBOBJS): Add $(BUILD)/sig2str.$(O).
      * src/process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
      (deleted_pid_list, Fdelete_process, create_process)
      (record_child_status_change, handle_child_signal, deliver_child_signal)
      (init_process_emacs, syms_of_process):
      Assume SIGCHLD is defined.
      (parse_signal): Remove.  All uses removed.
      (abbr_to_signal): New static function.
      (Fsignal_process): Use it to convert signal names to ints.
      * src/sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
      kill (getpgrp (), ...).
      (emacs_sigaction_init): Assume SIGCHLD is defined.
      (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
      SIGPIPE, and SIGQUIT are defined.  Do not worry about SIGCLD any more.
      * src/syssignal.h (EMACS_KILLPG): Remove.
      All uses replaced by 'kill' with a negative pid.
      (SIGCHLD): Remove definition, as we now assume SIGCHLD.
      * src/w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
      
      Fixes: debbugs:13026
      d983a10b
  33. 06 Dec, 2012 1 commit