1. 02 Jan, 2013 1 commit
  2. 01 Jan, 2013 1 commit
  3. 24 Dec, 2012 1 commit
  4. 11 Dec, 2012 1 commit
  5. 08 Dec, 2012 2 commits
    • Paul Eggert's avatar
      Use putenv+unsetenv instead of modifying environ directly. · 5745a7df
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add putenv, unsetenv.
      * lib/putenv.c, lib/unsetenv.c, m4/putenv.m4, m4/setenv.m4:
      New files, copied automatically from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * src/alloc.c (xputenv): New function.
      * src/dbusbind.c (Fdbus_init_bus):
      * src/emacs.c (main):
      * src/xterm.c (x_term_init):
      Use xputenv instead of setenv or putenv, to detect memory exhaustion.
      * src/editfns.c (initial_tz): Move static var decl up.
      (tzvalbuf_in_environ): New static var.
      (init_editfns):	Initialize these two static vars.
      (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
      Save old TZ value on stack, if it's small.
      (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
      instead, use xputenv+unsetenv to set and restore TZ.
      (environbuf): Remove static var.  All uses removed.
      (Fset_time_zone_rule): Do not save TZ and environ;
      no longer needed here.
      (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
      Move to inside set_time_zone_rule; they don't need file scope any more.
      (set_time_zone_rule): Maintain the TZ=value string separately.
      (syms_of_editfns): Don't initialize initial_tz;
      init_editfns now does it.
      * src/emacs.c (dump_tz) [HAVE_TZSET]: Now const.
      * src/lisp.h (xputenv): New decl.
      
      Fixes: debbugs:13070
      5745a7df
    • 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
  6. 30 Nov, 2012 1 commit
    • Paul Eggert's avatar
      Merge from gnulib for 'inline'. · f64898ab
      Paul Eggert authored
      2012-11-29 snippet/warn-on-use: no 'static inline'
      2012-11-29 ftruncate, fts, lstat, openat, raise: no 'static inline'
      2012-11-29 arctwo, md4, md5, sha1, sha256, sha512: no 'static inline'
      2012-11-29 fflush, stat: no 'static inline'
      2012-11-29 stdio: better 'inline'
      2012-11-29 sys_stat: no 'static inline'
      2012-11-29 unistd: better 'inline'
      2012-11-29 c-strtod, memcoll, readutmp: no 'static inline'
      2012-11-29 extern-inline: no 'static inline'
      2012-11-29 sys_socket: better 'inline'
      * lib/stdio.c, lib/unistd.c: New files, from gnulib.
      * build-aux/snippet/warn-on-use.h, lib/gnulib.mk, lib/lstat.c:
      * lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c, lib/stat.c:
      * lib/stdio.in.h, lib/sys_stat.in.h, lib/unistd.in.h, m4/c-strtod.m4:
      * m4/extern-inline.m4, m4/gnulib-comp.m4, m4/lstat.m4, m4/md5.m4:
      * m4/sha1.m4, m4/sha256.m4, m4/sha512.m4, m4/stat.m4, m4/stdio_h.m4:
      * m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/unistd_h.m4:
      Update from gnulib.
      
      Fixes: debbugs:13040
      f64898ab
  7. 14 Nov, 2012 1 commit
    • Paul Eggert's avatar
      Use faccessat, not access, when checking file permissions. · 73dcdb9f
      Paul Eggert authored
      This fixes a bug that has been present in Emacs since its creation.
      It was reported by Chris Torek in 1983 even before GNU Emacs existed,
      which must set some sort of record.  (Torek's bug report was against
      a predecessor of GNU Emacs, but GNU Emacs happened to have the
      same common flaw.)  See Torek's Usenet posting
      "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
      Posted: Fri Apr  8 14:18:56 1983.
      * .bzrignore: Add lib/fcntl.h.
      * configure.ac (euidaccess): Remove check; gnulib does this for us now.
      (gl_FCNTL_O_FLAGS): Define a dummy version.
      * lib/at-func.c, lib/euidaccess.c, lib/faccessat.c, lib/fcntl.in.h:
      * lib/getgroups.c, lib/group-member.c, lib/root-uid.h:
      * lib/xalloc-oversized.h, m4/euidaccess.m4, m4/faccessat.m4:
      * m4/fcntl_h.m4, m4/getgroups.m4, m4/group-member.m4:
      New files, from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * admin/merge-gnulib (GNULIB_MODULES): Add faccessat.
      (GNULIB_TOOL_FLAGS): Avoid at-internal, fchdir, malloc-posix,
      openat-die, openat-h, save-cwd.  Do not avoid fcntl-h.
      Omit gnulib's m4/fcntl-o.m4.
      * nt/inc/ms-w32.h (AT_FDCWD, AT_EACCESS): New symbols.
      (access): Remove.
      (faccessat): New macro.
      * src/Makefile.in (LIB_EACCESS): New macro.
      (LIBES): Use it.
      * src/callproc.c (init_callproc):
      * src/charset.c (init_charset):
      * src/fileio.c (check_existing, check_executable, check_writable)
      (Ffile_readable_p):
      * src/lread.c (openp, load_path_check):
      * src/process.c (allocate_pty):
      * src/xrdb.c (file_p):
      Use effective UID when checking permissions, not real UID.
      * src/callproc.c (init_callproc):
      * src/charset.c (init_charset):
      * src/lread.c (load_path_check, init_lread):
      Test whether directories are accessible, not merely whether they exist.
      * src/conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
      * src/fileio.c (check_existing, check_executable, check_writable)
      (Ffile_readable_p):
      Use symbolic names instead of integers for the flags, as they're
      portable now.
      (check_writable): New arg AMODE.  All uses changed.
      Set errno on failure.
      (Ffile_readable_p): Use faccessat, not stat + open + close.
      (Ffile_writable_p): No need to call check_existing + check_writable.
      Just call check_writable and then look at errno.  This saves a syscall.
      dir should never be nil; replace an unnecessary runtime check
      with an eassert.  When checking the parent directory of a nonexistent
      file, check that the directory is searchable as well as writable, as
      we can't create files in unsearchable directories.
      (file_directory_p): New function, which uses 'stat' on most platforms
      but faccessat with D_OK (for efficiency) if WINDOWSNT.
      (Ffile_directory_p, Fset_file_times): Use it.
      (file_accessible_directory_p): New function, which uses a single
      syscall for efficiency.
      (Ffile_accessible_directory_p): Use it.
      * src/xrdb.c (file_p): Use file_directory_p.
      * src/lisp.h (file_directory_p, file_accessible_directory_p): New decls.
      * src/lread.c (openp): When opening a file, use fstat rather than
      stat, as that avoids a permissions race.  When not opening a file,
      use file_directory_p rather than stat.
      (dir_warning): First arg is now a usage string, not a format.
      Use errno.  All uses changed.
      * src/nsterm.m (ns_term_init): Remove unnecessary call to file-readable
      that merely introduced a race.
      * src/process.c, src/sysdep.c, src/term.c: All uses of '#ifdef O_NONBLOCK'
      changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
      and similarly for the other O_* flags.
      * src/w32.c (sys_faccessat): Rename from sys_access and switch to
      faccessat's API.  All uses changed.
      * src/xrdb.c: Do not include <sys/stat.h>; no longer needed.
      (magic_db): Rename from magic_file_p.
      (magic_db, search_magic_path): Return an XrmDatabase rather than a
      char *, so that we don't have to test for file existence
      separately from opening the file for reading.  This removes a race
      fixes a permission-checking problem, and simplifies the code.
      All uses changed.
      (file_p): Remove; no longer needed.
      
      Fixes: debbugs:12632
      73dcdb9f
  8. 03 Nov, 2012 1 commit
    • Paul Eggert's avatar
      Fix data-loss with --batch. · 7ccfb720
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add close-stream.
      * lib/close-stream.c, lib/close-stream.h, lib/fpending.c
      * lib/fpending.h, m4/close-stream.m4, m4/fpending.m4:
      New files, from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * src/emacs.c: Include <close-stream.h>.
      (close_output_streams): New function.
      (main): Pass it to atexit, so that Emacs closes stdout and stderr
      and handles errors appropriately.
      (Fkill_emacs): Don't worry about flushing, as close_output_stream
      does that now.
      
      Fixes: debbugs:9574
      7ccfb720
  9. 19 Oct, 2012 3 commits
    • Paul Eggert's avatar
      Undo faccessat change. · f0a80175
      Paul Eggert authored
      f0a80175
    • Paul Eggert's avatar
      New files from gnulib. · 2c43889e
      Paul Eggert authored
      Fixes: debbugs:12632
      2c43889e
    • Paul Eggert's avatar
      Use faccessat, not access, when checking file permissions. · e752e0b0
      Paul Eggert authored
      * .bzrignore: Add lib/fcntl.h.
      * configure.ac (euidaccess): Remove check; gnulib does this for us now.
      (gl_FCNTL_O_FLAGS): Define a dummy version.
      * lib/at-func.c, lib/euidaccess.c, lib/faccessat.c, lib/fcntl.in.h:
      * lib/getgroups.c, lib/group-member.c, lib/root-uid.h:
      * lib/xalloc-oversized.h, m4/euidaccess.m4, m4/faccessat.m4:
      * m4/fcntl_h.m4, m4/getgroups.m4, m4/group-member.m4:
      New files, from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * admin/merge-gnulib (GNULIB_MODULES): Add faccessat.
      (GNULIB_TOOL_FLAGS): Avoid at-internal, fchdir, malloc-posix,
      openat-die, openat-h, save-cwd.  Do not avoid fcntl-h.
      Omit gnulib's m4/fcntl-o.m4.
      * nt/inc/ms-w32.h (AT_FDCWD, AT_EACCESS): New symbols.
      (access): Remove.
      (faccessat): New macro.
      * src/Makefile.in (LIB_EACCESS): New macro.
      (LIBES): Use it.
      * src/callproc.c (init_callproc):
      * src/charset.c (init_charset):
      * src/fileio.c (check_existing, check_executable):
      * src/lread.c (openp, load_path_check):
      * src/process.c (allocate_pty):
      * src/xrdb.c (file_p):
      Use faccessat, not access or euidaccess.  Use symbolic names
      instead of integers for the flags, as they're portable now.
      * src/charset.c, src/xrdb.c: Include <fcntl.h>, for the new flags used.
      * src/fileio.c (Ffile_readable_p):
      Use faccessat, not stat + open + close.
      (file_directory_p): New function, which uses 'stat' on most places
      but 'access' (for efficiency) if WINDOWSNT.
      * src/fileio.c (Ffile_directory_p, Fset_file_times):
      * src/xrdb.c (file_p): Use file_directory_p.
      * src/lisp.h (file_directory_p): New decl.
      * src/lread.c (openp): When opening a file, use fstat rather than
      stat, as that avoids a permissions race.  When not opening a file,
      use file_directory_p rather than stat.
      * src/process.c, src/sysdep.c, src/term.c: All uses of '#ifdef O_NONBLOCK'
      changed to '#if O_NONBLOCK', to accommodate gnulib O_* tyle.
      * src/w32.c (sys_faccessat): Rename from sys_access and switch to
      faccessat's API.  All uses changed.
      
      Fixes: debbugs:12632
      e752e0b0
  10. 04 Oct, 2012 1 commit
  11. 30 Sep, 2012 1 commit
  12. 27 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Check more robustly for timer_settime. · a615a3ae
      Paul Eggert authored
      This should fix an OS X build problem reported by Ivan Andrus in
      <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
      * admin/merge-gnulib (GNULIB_MODULES): Add timer-time.
      * configure.ac (gl_THREADLIB): Define to empty, since Emacs
      does threads its own way.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * m4/timer_time.m4: New file, from gnulib.
      * src/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.
      a615a3ae
  13. 22 Sep, 2012 1 commit
  14. 03 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Merge from gnulib. · 7f507777
      Paul Eggert authored
      This incorporates:
      2012-08-29 stdbool: be more compatible with mixed C/C++ compiles
      2011-11-30 manywarnings: update the list of "all" warnings
      7f507777
  15. 25 Aug, 2012 2 commits
  16. 21 Aug, 2012 1 commit
  17. 19 Aug, 2012 1 commit
    • Paul Eggert's avatar
      Merge from gnulib. · 562d4436
      Paul Eggert authored
      2012-08-19 ignore-value, stat-time, timespec: omit AC_C_INLINE
      2012-08-19 mktime, sys_select: avoid 'static inline'
      2012-08-19 gnulib-tool: Fix indentation.
      562d4436
  18. 18 Aug, 2012 1 commit
  19. 14 Aug, 2012 2 commits
  20. 02 Aug, 2012 1 commit
    • Paul Eggert's avatar
      Merge from gnulib, for extern-inline. · a0d4efe9
      Paul Eggert authored
      2012-08-01 extern-inline: new module
      2012-08-01 stat-time, timespec, u64, utimens: use extern-inline
      * lib/stat-time.c, lib/utimespec.c, lib/u64.c, m4/extern-inline.m4:
      New files.  The new .c files are for instantiating extern inline
      functions.
      
      Fixes: debbugs:12116
      a0d4efe9
  21. 28 Jul, 2012 1 commit
    • Paul Eggert's avatar
      Use Gnulib stdalign and environ modules (Bug#9772, Bug#9960). · e32a5799
      Paul Eggert authored
      * .bzrignore: Add lib/stdalign.h.
      * config.bat: Do not set NO_DECL_ALIGN; no longer needed.
      Copy lib/stdalign.in.h to lib/stdalign.in-h as needed.
      * configure.ac (HAVE_ATTRIBUTE_ALIGNED): Remove the code that
      fiddles with this, as gnulib now does this for us.
      * admin/merge-gnulib: Add environ, stdalign.
      * m4/environ.m4: New file, from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/stdalign.in.h, m4/stdalign.m4: New files, from gnulib.
      * sed2v2.inp (HAVE_ATTRIBUTE_ALIGNED): Remove edit.
      * sedlibmk.inp (STDALIGN_H, @GL_GENERATE_STDALIGN_H_TRUE@)
      (GL_GENERATE_STDALIGN_H_FALSE): New edits.
      * nt/config.nt (HAVE_ATTRIBUTE_ALIGNED): Remove.
      * src/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.
      * src/lisp.h: Include <stdalign.h>.
      (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.
      e32a5799
  22. 11 Jul, 2012 1 commit
  23. 09 Jul, 2012 1 commit
  24. 06 Jul, 2012 2 commits
  25. 28 Jun, 2012 1 commit
    • Paul Eggert's avatar
      Merge from gnulib. · 059e4fb5
      Paul Eggert authored
      * m4/getopt.m4: Copy new version from gnulib, incorporating:
      getopt-posix: No longer guarantee that option processing is resettable.
      059e4fb5
  26. 25 Jun, 2012 1 commit
  27. 23 Jun, 2012 1 commit
    • Paul Eggert's avatar
      Merge from gnulib. · 47d0c011
      Paul Eggert authored
      * m4/getopt.m4: Copy new version from gnulib, incorporating:
      getopt-gnu: Handle suboptimal getopt_long's abbreviation handling.
      47d0c011
  28. 22 Jun, 2012 3 commits
    • Paul Eggert's avatar
      Add gnulib files to support higher-resolution time stamps. · c8fff863
      Paul Eggert authored
      Fixes: debbugs:9000
      c8fff863
    • Paul Eggert's avatar
      Support higher-resolution time stamps. · d35af63c
      Paul Eggert authored
      Fixes: debbugs:9000
      d35af63c
    • Paul Eggert's avatar
      Merge from gnulib. · 05730648
      Paul Eggert authored
      * lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
      * lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
      * m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
      * m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
      Copy new versions from gnulib, incorporating the following changes:
      2012-06-22 time_r: fix typo that always overrode localtime_r decl
      2012-06-22 Write "Mac OS X" instead of "MacOS X".
      2012-06-21 mktime: fix integer overflow in 'configure'-time test
      2012-06-21 nonblocking: Avoid compilation error on mingw64.
      2012-06-19 stat, fstat: Avoid warnings on mingw64.
      2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
      05730648
  29. 28 May, 2012 1 commit
    • Paul Eggert's avatar
      Make 'configure' a bit smaller and faster. · 0e7a053e
      Paul Eggert authored
      * configure.in (INSTALL_INFO): Set it with one call to
      AC_PATH_PROG, not three.
      (PKG_CONFIG): Hoist this out of PKG_CHECK_MODULES, since it's
      so likely that it'll be needed.
      (AC_CHECK_HEADERS_ONCE): Prefer to AC_CHECK_HEADERS where either works.
      (AC_PROG_MAKE_SET): Remove; Automake does this.
      (sysinfo): Do not check for this function, as it's never used.
      (tzset): Check for this function just once.
      * admin/CPP-DEFINES: Remove HAVE_SYSINFO.
      * m4/manywarnings.m4: Sync from gnulib, incorporating the following:
      2012-05-27 manywarnings: remove duplicate -Wmultichar entry
      0e7a053e
  30. 26 May, 2012 1 commit
  31. 21 May, 2012 1 commit
    • Paul Eggert's avatar
      Use full name for m4/gnulib-comp.m4. (Bug#11529) · fb77d37e
      Paul Eggert authored
      Previously the file was named m4/gl-comp.m4 due to DOS 8+3 restrictions,
      even though the file's name in gnulib is m4/gnulib-comp.m4.
      This had a problem when merging from gnulib, as the code temporarily
      renamed it to the full name, causing problems when interrupted.
      Now the file has its full name, with the idea that we will find
      a solution for MS-DOS that does not affect the rest of Emacs.
      * m4/gnulib-comp.m4: Rename from m4/gl-comp.m4.
      * admin/merge-gnulib: Leave m4/gnulib-comp.m4's name alone.
      fb77d37e
  32. 21 Apr, 2012 1 commit