Mercurial > emacs
changeset 70948:7ea8b1c11d80
(Ffind_operation_coding_system): Allow (FILENAME . BUFFER) in TARGET.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 26 May 2006 04:48:21 +0000 |
parents | 48b2a1baa586 |
children | b7bf7b5a50ea |
files | src/coding.c |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/coding.c Fri May 26 04:47:47 2006 +0000 +++ b/src/coding.c Fri May 26 04:48:21 2006 +0000 @@ -7457,7 +7457,7 @@ whichever argument specifies the file name is TARGET. TARGET has a meaning which depends on OPERATION: - For file I/O, TARGET is a file name. + For file I/O, TARGET is a file name (except for the special case below). For process I/O, TARGET is a process name. For network I/O, TARGET is a service name or a port number @@ -7469,6 +7469,12 @@ In the last case, we call the function with one argument, which is a list of all the arguments given to this function. +If OPERATION is `insert-file-contents', the argument corresponding to +TARGET may be a cons (FILENAME . BUFFER). In that case, FILENAME is a +file name to look up, and BUFFER is a buffer that already contains the +file (but not yet decoded). If a function is found as above, the +function must pay attention to this format of TARGET. + usage: (find-operation-coding-system OPERATION ARGUMENTS ...) */) (nargs, args) int nargs; @@ -7495,8 +7501,12 @@ target_idx = make_number (4); target = args[XINT (target_idx) + 1]; if (!(STRINGP (target) + || (EQ (operation, Qinsert_file_contents) && CONSP (target) + && STRINGP (XCAR (target)) && BUFFERP (XCDR (target))) || (EQ (operation, Qopen_network_stream) && INTEGERP (target)))) error ("Invalid argument %d", XINT (target_idx) + 1); + if (CONSP (target)) + target = XCAR (target); chain = ((EQ (operation, Qinsert_file_contents) || EQ (operation, Qwrite_region))