1. 01 Jan, 2020 1 commit
  2. 25 Feb, 2019 1 commit
    • Paul Eggert's avatar
      Update from Gnulib · 0d49078a
      Paul Eggert authored
      This incorporates:
      2019-02-24 nstrftime: support the ‘+’ flag
      2019-02-24 stat, lstat: fix conflict with relocatable-prog-wrapper
      2019-02-23 nstrftime: tweak arg order
      2019-02-21 nstrftime: merge glibc strftime changes
      2019-02-02 vla: add commentary about VLA_ELEMS
      * build-aux/config.guess, doc/misc/texinfo.tex, lib/fstatat.c:
      * lib/lstat.c, lib/nstrftime.c, lib/vla.h:
      Copy from Gnulib.
      0d49078a
  3. 01 Jan, 2019 1 commit
  4. 01 Jan, 2018 1 commit
    • Paul Eggert's avatar
      Merge from Gnulib · 220a9ecb
      Paul Eggert authored
      This incorporates:
      2018-01-01 maint: Run 'make update-copyright'
      2017-12-29 Add cross-compilation results for GNU/Hurd.
      2017-12-12 explicit_bzero: port to macOS + Clang 9.0.0
      220a9ecb
  5. 13 Sep, 2017 1 commit
    • Paul Eggert's avatar
      Merge from Gnulib · a0202fdc
      Paul Eggert authored
      This incorporates:
      2017-09-13 all: prefer https: URLs
      This just changes http: to https: in comments,
      in files copied from Gnulib.
      a0202fdc
  6. 01 Jan, 2017 1 commit
  7. 19 Jan, 2016 1 commit
    • Paul Eggert's avatar
      Merge from gnulib · cd19641e
      Paul Eggert authored
      This mostly just updates copyright dates of gnulib files.
      It also updates to the latest version of texinfo.tex.
      cd19641e
  8. 01 Jan, 2016 1 commit
    • Paul Eggert's avatar
      Merge from gnulib · 98253051
      Paul Eggert authored
      This mostly just updates copyright dates of gnulib files.
      It also updates to the latest version of texinfo.tex.
      98253051
  9. 01 Jan, 2015 1 commit
  10. 30 Aug, 2014 1 commit
    • Paul Eggert's avatar
      Vector-sorting fixes. · f9caea82
      Paul Eggert authored
      It's not safe to call qsort or qsort_r, since they have undefined
      behavior if the user-specified predicate is not a total order.
      Also, watch out for garbage-collection while sorting vectors.
      * admin/merge-gnulib (GNULIB_MODULES): Add vla.
      * configure.ac (qsort_r): Remove, as we no longer use qsort-like
      functions.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/vla.h, m4/vararrays.m4: New files, copied from gnulib.
      * lib/stdlib.in.h, m4/stdlib_h.m4: Sync from gnulib, incorporating:
      2014-08-29 qsort_r: new module, for GNU-style qsort_r
      The previous two files' changes are boilerplate generated by
      admin/merge-gnulib, and should not affect Emacs.
      * src/fns.c: Include <vla.h>.
      (sort_vector_predicate) [!HAVE_QSORT_R]: Remove.
      (sort_vector_compare): Remove, replacing with ....
      (inorder, merge_vectors, sort_vector_inplace, sort_vector_copy):
      ... these new functions.
      (sort_vector): Rewrite to use the new functions.
      GCPRO locals, since the predicate can invoke the GC.
      Since it's in-place return void; caller changed.
      (merge): Use 'inorder', for clarity.
      
      Fixes: debbugs:18361
      f9caea82
  11. 01 Jan, 2014 1 commit
  12. 02 Jan, 2013 1 commit
  13. 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
  14. 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
  15. 26 May, 2012 1 commit
  16. 21 Apr, 2011 1 commit
  17. 30 Jan, 2011 1 commit