APPROVE COMMIT
NOTE: This patch has been committed
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1506161926 -3600
# Sat Sep 23 11:18:46 2017 +0100
# Node ID d3e0eec3a5082a28cdff11a9e5629b076abd4a17
# Parent 8dea4d0549ac0a49456d01bba96171399456c227
Return a Bytecount, read_process_output(), no need for bytecount_to_charcount()
src/ChangeLog addition:
2017-09-23 Aidan Kehoe <kehoea(a)parhasard.net>
* process.c (read_process_output): Have this return a Bytecount,
not a Charcount; the precise number of characters wasn't used by
our callers, so we were usually calling bytecount_to_charcount()
for no reason.
* process.h: Update the declaration of this function.
diff -r 8dea4d0549ac -r d3e0eec3a508 src/ChangeLog
--- a/src/ChangeLog Thu Sep 07 09:19:50 2017 +0100
+++ b/src/ChangeLog Sat Sep 23 11:18:46 2017 +0100
@@ -1,3 +1,11 @@
+2017-09-23 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * process.c (read_process_output): Have this return a Bytecount,
+ not a Charcount; the precise number of characters wasn't used by
+ our callers, so we were usually calling bytecount_to_charcount()
+ for no reason.
+ * process.h: Update the declaration of this function.
+
2017-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
* text.c (Fchar_width):
diff -r 8dea4d0549ac -r d3e0eec3a508 src/process.c
--- a/src/process.c Thu Sep 07 09:19:50 2017 +0100
+++ b/src/process.c Sat Sep 23 11:18:46 2017 +0100
@@ -1079,17 +1079,16 @@
/* Read pending output from the process channel,
starting with our buffered-ahead character if we have one.
- Yield number of characters read.
+ Yield number of bytes read.
This function reads at most 1024 bytes.
If you want to read all available subprocess output,
you must call it repeatedly until it returns zero. */
-
-Charcount
+Bytecount
read_process_output (Lisp_Object process, int read_stderr)
{
/* This function can GC */
- Bytecount nbytes, nchars;
+ Bytecount nbytes;
Ibyte chars[1025];
Lisp_Object outstream;
Lisp_Process *p = XPROCESS (process);
@@ -1139,16 +1138,16 @@
/* !!#### if the coding system changed as a result of reading, we
need to change the output coding system accordingly. */
- nchars = bytecount_to_charcount (chars, nbytes);
outstream = filter;
if (!NILP (outstream))
{
/* Some FSF junk with running_asynch_code, to preserve the match
data. Not necessary because we don't call process filters
asynchronously (i.e. from within QUIT). */
- /* Don't catch errors here; we're not in any critical code. */
+ /* Don't catch errors here; we're not in any critical code. call2() will
+ GCPRO() the string argument. */
call2 (outstream, process, make_string (chars, nbytes));
- return nchars;
+ return nbytes;
}
/* If no filter, write into buffer if it isn't dead. */
@@ -1177,7 +1176,8 @@
unbind_to (spec);
UNGCPRO;
}
- return nchars;
+
+ return nbytes;
}
int
diff -r 8dea4d0549ac -r d3e0eec3a508 src/process.h
--- a/src/process.h Thu Sep 07 09:19:50 2017 +0100
+++ b/src/process.h Sat Sep 23 11:18:46 2017 +0100
@@ -99,7 +99,7 @@
void status_notify (void);
void kick_status_notify (void);
void deactivate_process (Lisp_Object proc);
-Charcount read_process_output (Lisp_Object proc, int read_stderr);
+Bytecount read_process_output (Lisp_Object proc, int read_stderr);
int process_has_separate_stderr (Lisp_Object proc);
const char *signal_name (int signum);
Lisp_Object canonicalize_host_name (Lisp_Object host);
--
‘As I sat looking up at the Guinness ad, I could never figure out /
How your man stayed up on the surfboard after forty pints of stout’
(C. Moore)