<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src, branch scratch/posix-spawn</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Revert "Revert "Use posix_spawn if possible.""</title>
<updated>2020-12-26T11:20:51+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2020-12-26T11:20:51+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e24f15c562e39f051dc963f9b3744b9a12b4c839'/>
<id>e24f15c562e39f051dc963f9b3744b9a12b4c839</id>
<content type='text'>
This reverts commit e387371497d313f05b94e3bf42fe6685184605d1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit e387371497d313f05b94e3bf42fe6685184605d1.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improvements for `:base-uri' svg image property</title>
<updated>2020-12-26T09:18:49+00:00</updated>
<author>
<name>Zajcev Evgeny</name>
</author>
<published>2020-12-16T22:04:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b3c9af9061e09efd94a1f5bd58aed69800da237d'/>
<id>b3c9af9061e09efd94a1f5bd58aed69800da237d</id>
<content type='text'>
* src/image.c (svg_load): Use ENCODE_FILE for `:base-uri'

* doc/lispref/display.texi (SVG Images): Add more documentation for
  `:base-uri'
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/image.c (svg_load): Use ENCODE_FILE for `:base-uri'

* doc/lispref/display.texi (SVG Images): Add more documentation for
  `:base-uri'
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from origin/emacs-27</title>
<updated>2020-12-25T18:36:48+00:00</updated>
<author>
<name>Glenn Morris</name>
</author>
<published>2020-12-25T18:36:48+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=90ec81f5b243b6b7b3ebe2de394b20e8078ebc96'/>
<id>90ec81f5b243b6b7b3ebe2de394b20e8078ebc96</id>
<content type='text'>
b242bbb073 (origin/emacs-27) ; lisp/org/org.el: Fix Version header.
e0fc939c5f Add more details to the "word processor" section
fda9b3e83a * src/Makefile.in (DO_CODESIGN): Fix expected architecture...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
b242bbb073 (origin/emacs-27) ; lisp/org/org.el: Fix Version header.
e0fc939c5f Add more details to the "word processor" section
fda9b3e83a * src/Makefile.in (DO_CODESIGN): Fix expected architecture...
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Use posix_spawn if possible."</title>
<updated>2020-12-25T12:50:25+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2020-12-25T12:50:25+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e387371497d313f05b94e3bf42fe6685184605d1'/>
<id>e387371497d313f05b94e3bf42fe6685184605d1</id>
<content type='text'>
This reverts commit 2c79a8f9210db01c86b0e5f236adeb0509519d30.
It breaks the MinGW build in too many ways, and should be
first tested on a branch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 2c79a8f9210db01c86b0e5f236adeb0509519d30.
It breaks the MinGW build in too many ways, and should be
first tested on a branch.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use posix_spawn if possible.</title>
<updated>2020-12-25T11:17:32+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2020-12-25T10:39:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2c79a8f9210db01c86b0e5f236adeb0509519d30'/>
<id>2c79a8f9210db01c86b0e5f236adeb0509519d30</id>
<content type='text'>
posix_spawn is less error-prone than vfork + execve, and can make
better use of system-specific enhancements like 'clone' on Linux.  Use
it if we don't need to configure a pseudoterminal.

* src/Makefile.in (LIB_POSIX_SPAWN): New variable.
(LIBES): Use it.

* src/callproc.c (emacs_spawn): Use posix_spawn on Unix-like system if
we don't need to set up a pseudoterminal.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
posix_spawn is less error-prone than vfork + execve, and can make
better use of system-specific enhancements like 'clone' on Linux.  Use
it if we don't need to configure a pseudoterminal.

* src/Makefile.in (LIB_POSIX_SPAWN): New variable.
(LIBES): Use it.

* src/callproc.c (emacs_spawn): Use posix_spawn on Unix-like system if
we don't need to set up a pseudoterminal.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adjust to recent Gnulib changes</title>
<updated>2020-12-25T09:40:39+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2020-12-25T09:38:31+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ec8a17e938c3ef213709ea6b6b3e565333a9c508'/>
<id>ec8a17e938c3ef213709ea6b6b3e565333a9c508</id>
<content type='text'>
The latest Gnulib merge brought in free-posix, which causes 'free'
to preserve errno.  This lets us simplify some Emacs code that
calls 'free'.
* admin/merge-gnulib (GNULIB_MODULES): Add free-posix.
This module is pulled in by canonicalize-lgpl anyway,
so we might as well rely on it.
* lib-src/emacsclient.c (get_current_dir_name):
Sync better with src/sysdep.c.
* lib-src/etags.c (process_file_name, etags_mktmp):
* lib-src/update-game-score.c (unlock_file):
* src/fileio.c (file_accessible_directory_p):
* src/sysdep.c (get_current_dir_name_or_unreachable):
Simplify by assuming that 'free' preserves errno.
* src/alloc.c (malloc_unblock_input):
Preserve errno, so that xfree preserves errno.
* src/sysdep.c (get_current_dir_name_or_unreachable):
Simplify by using strdup instead of malloc+memcpy.
No need for realloc (and the old code leaked memory anyway on
failure); just use free+malloc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The latest Gnulib merge brought in free-posix, which causes 'free'
to preserve errno.  This lets us simplify some Emacs code that
calls 'free'.
* admin/merge-gnulib (GNULIB_MODULES): Add free-posix.
This module is pulled in by canonicalize-lgpl anyway,
so we might as well rely on it.
* lib-src/emacsclient.c (get_current_dir_name):
Sync better with src/sysdep.c.
* lib-src/etags.c (process_file_name, etags_mktmp):
* lib-src/update-game-score.c (unlock_file):
* src/fileio.c (file_accessible_directory_p):
* src/sysdep.c (get_current_dir_name_or_unreachable):
Simplify by assuming that 'free' preserves errno.
* src/alloc.c (malloc_unblock_input):
Preserve errno, so that xfree preserves errno.
* src/sysdep.c (get_current_dir_name_or_unreachable):
Simplify by using strdup instead of malloc+memcpy.
No need for realloc (and the old code leaked memory anyway on
failure); just use free+malloc.
</pre>
</div>
</content>
</entry>
<entry>
<title>Pacify gcc 10.2 -Wanalyzer-null-argument in gtkutil.c</title>
<updated>2020-12-25T09:40:39+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2020-12-25T08:27:37+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b8b17038e140fe215a76f2e899c00b9b95614886'/>
<id>b8b17038e140fe215a76f2e899c00b9b95614886</id>
<content type='text'>
* src/gtkutil.c (xg_item_label_same_p): Simplify.  Without this
simplification, GCC (Ubuntu 10.2.0-13ubuntu1)
-Wanalyzer-null-argument complains about use of NULL where
non-null expected as argument of strcmp.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/gtkutil.c (xg_item_label_same_p): Simplify.  Without this
simplification, GCC (Ubuntu 10.2.0-13ubuntu1)
-Wanalyzer-null-argument complains about use of NULL where
non-null expected as argument of strcmp.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * src/callproc.c (emacs_spawn) [!WINDOWSNT]: Fix last change.</title>
<updated>2020-12-24T16:32:54+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2020-12-24T16:32:54+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e3525712ee312627544bfd6d054b1defa46b660f'/>
<id>e3525712ee312627544bfd6d054b1defa46b660f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unbreak the MinGW build broken by recent changes in callproc.c</title>
<updated>2020-12-24T15:58:51+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2020-12-24T15:58:51+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=527cc64e5d7e8945dfb89bf44d5f4141bd221456'/>
<id>527cc64e5d7e8945dfb89bf44d5f4141bd221456</id>
<content type='text'>
* src/w32.h (set_process_dir):
* src/w32proc.c (set_process_dir): Change the argument to 'const
char *'.
* src/lisp.h (make_environment_block):
* src/callproc.c (make_environment_block): Now returns 'char **'.
(exec_failed) [DOS_NT]: Remove unused function.
* src/callproc.c (child_setup): NEW_ARGV and ENV are now 'char **'.
Making them 'const' breaks the MinGW build and is not needed for
other platforms.
* src/callproc.c (emacs_spawn): ARGV and ENVP arguments are now
'char *', for the same reason.
* src/process.c (create_process): Adapt to above changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/w32.h (set_process_dir):
* src/w32proc.c (set_process_dir): Change the argument to 'const
char *'.
* src/lisp.h (make_environment_block):
* src/callproc.c (make_environment_block): Now returns 'char **'.
(exec_failed) [DOS_NT]: Remove unused function.
* src/callproc.c (child_setup): NEW_ARGV and ENV are now 'char **'.
Making them 'const' breaks the MinGW build and is not needed for
other platforms.
* src/callproc.c (emacs_spawn): ARGV and ENVP arguments are now
'char *', for the same reason.
* src/process.c (create_process): Adapt to above changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Centralize subprocess creation in a single function.</title>
<updated>2020-12-24T14:34:23+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2020-12-24T14:27:45+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bf7041a6f6ea2d57f842b9b2915cc58a90b01406'/>
<id>bf7041a6f6ea2d57f842b9b2915cc58a90b01406</id>
<content type='text'>
Getting the vfork + execve combination right isn't easy, and the code
was partially duplicated between callproc.c and process.c.  Centralize
the spawn operation in a single function that deals with the nasty
details.  Going forward, we should be able to use posix_spawn from
either libc or Gnulib (or CreateProcessW on Windows) in the non-pty
case.

* src/callproc.c (emacs_spawn): New function to start an asynchronous
subprocess.  Merge code from 'call_process' and 'create_process' into
this function.
(call_process): Use new 'emacs_spawn' function.
(child_setup): Make static, since there are no users outside this
compilation unit left.
(CHILD_SETUP_TYPE): Move from header file, since there are no users
outside this compilation unit left.

* src/process.c (create_process): Use new 'emacs_spawn' function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Getting the vfork + execve combination right isn't easy, and the code
was partially duplicated between callproc.c and process.c.  Centralize
the spawn operation in a single function that deals with the nasty
details.  Going forward, we should be able to use posix_spawn from
either libc or Gnulib (or CreateProcessW on Windows) in the non-pty
case.

* src/callproc.c (emacs_spawn): New function to start an asynchronous
subprocess.  Merge code from 'call_process' and 'create_process' into
this function.
(call_process): Use new 'emacs_spawn' function.
(child_setup): Make static, since there are no users outside this
compilation unit left.
(CHILD_SETUP_TYPE): Move from header file, since there are no users
outside this compilation unit left.

* src/process.c (create_process): Use new 'emacs_spawn' function.
</pre>
</div>
</content>
</entry>
</feed>
