/[emacs]/emacs/lisp/subr.el
ViewVC logotype

Diff of /emacs/lisp/subr.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.360.2.1 by handa, Fri Apr 16 12:50:10 2004 UTC revision 1.360.2.2 by miles, Mon Jun 28 07:28:46 2004 UTC
# Line 90  DOCSTRING is an optional documentation s Line 90  DOCSTRING is an optional documentation s
90   But documentation strings are usually not useful in nameless functions.   But documentation strings are usually not useful in nameless functions.
91  INTERACTIVE should be a call to the function `interactive', which see.  INTERACTIVE should be a call to the function `interactive', which see.
92  It may also be omitted.  It may also be omitted.
93  BODY should be a list of Lisp expressions."  BODY should be a list of Lisp expressions.
94    
95    \(fn ARGS [DOCSTRING] [INTERACTIVE] BODY)"
96    ;; Note that this definition should not use backquotes; subr.el should not    ;; Note that this definition should not use backquotes; subr.el should not
97    ;; depend on backquote.el.    ;; depend on backquote.el.
98    (list 'function (cons 'lambda cdr)))    (list 'function (cons 'lambda cdr)))
# Line 161  the return value (nil if RESULT is omitt Line 163  the return value (nil if RESULT is omitt
163  (defmacro declare (&rest specs)  (defmacro declare (&rest specs)
164    "Do not evaluate any arguments and return nil.    "Do not evaluate any arguments and return nil.
165  Treated as a declaration when used at the right place in a  Treated as a declaration when used at the right place in a
166  `defmacro' form.  \(See Info anchor `(elisp)Definition of declare'."  `defmacro' form.  \(See Info anchor `(elisp)Definition of declare'.)"
167    nil)    nil)
168    
169  (defsubst caar (x)  (defsubst caar (x)
# Line 180  Treated as a declaration when used at th Line 182  Treated as a declaration when used at th
182    "Return the cdr of the cdr of X."    "Return the cdr of the cdr of X."
183    (cdr (cdr x)))    (cdr (cdr x)))
184    
185  (defun last (x &optional n)  (defun last (list &optional n)
186    "Return the last link of the list X.  Its car is the last element.    "Return the last link of LIST.  Its car is the last element.
187  If X is nil, return nil.  If LIST is nil, return nil.
188  If N is non-nil, return the Nth-to-last link of X.  If N is non-nil, return the Nth-to-last link of LIST.
189  If N is bigger than the length of X, return X."  If N is bigger than the length of LIST, return LIST."
190    (if n    (if n
191        (let ((m 0) (p x))        (let ((m 0) (p list))
192          (while (consp p)          (while (consp p)
193            (setq m (1+ m) p (cdr p)))            (setq m (1+ m) p (cdr p)))
194          (if (<= n 0) p          (if (<= n 0) p
195            (if (< n m) (nthcdr (- m n) x) x)))            (if (< n m) (nthcdr (- m n) list) list)))
196      (while (consp (cdr x))      (while (consp (cdr list))
197        (setq x (cdr x)))        (setq list (cdr list)))
198      x))      list))
199    
200  (defun butlast (x &optional n)  (defun butlast (list &optional n)
201    "Returns a copy of LIST with the last N elements removed."    "Returns a copy of LIST with the last N elements removed."
202    (if (and n (<= n 0)) x    (if (and n (<= n 0)) list
203      (nbutlast (copy-sequence x) n)))      (nbutlast (copy-sequence list) n)))
204    
205  (defun nbutlast (x &optional n)  (defun nbutlast (list &optional n)
206    "Modifies LIST to remove the last N elements."    "Modifies LIST to remove the last N elements."
207    (let ((m (length x)))    (let ((m (length list)))
208      (or n (setq n 1))      (or n (setq n 1))
209      (and (< n m)      (and (< n m)
210           (progn           (progn
211             (if (> n 0) (setcdr (nthcdr (- (1- m) n) x) nil))             (if (> n 0) (setcdr (nthcdr (- (1- m) n) list) nil))
212             x))))             list))))
213    
214  (defun delete-dups (list)  (defun delete-dups (list)
215    "Destructively remove `equal' duplicates from LIST.    "Destructively remove `equal' duplicates from LIST.
# Line 627  The normal global definition of the char Line 629  The normal global definition of the char
629    
630  (defsubst eventp (obj)  (defsubst eventp (obj)
631    "True if the argument is an event object."    "True if the argument is an event object."
632    (or (integerp obj)    (or (and (integerp obj)
633               ;; Filter out integers too large to be events.
634               ;; M is the biggest modifier.
635               (zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1)))))
636               (characterp (event-basic-type obj)))
637        (and (symbolp obj)        (and (symbolp obj)
638             (get obj 'event-symbol-elements))             (get obj 'event-symbol-elements))
639        (and (consp obj)        (and (consp obj)
# Line 644  and `down'." Line 650  and `down'."
650          (setq type (car type)))          (setq type (car type)))
651      (if (symbolp type)      (if (symbolp type)
652          (cdr (get type 'event-symbol-elements))          (cdr (get type 'event-symbol-elements))
653        (let ((list nil))        (let ((list nil)
654          (or (zerop (logand type ?\M-\^@))              (char (logand type (lognot (logior ?\M-\^@ ?\C-\^@ ?\S-\^@
655                                                   ?\H-\^@ ?\s-\^@ ?\A-\^@)))))
656            (if (not (zerop (logand type ?\M-\^@)))
657              (setq list (cons 'meta list)))              (setq list (cons 'meta list)))
658          (or (and (zerop (logand type ?\C-\^@))          (if (or (not (zerop (logand type ?\C-\^@)))
659                   (>= (logand type 127) 32))                  (< char 32))
660              (setq list (cons 'control list)))              (setq list (cons 'control list)))
661          (or (and (zerop (logand type ?\S-\^@))          (if (or (not (zerop (logand type ?\S-\^@)))
662                   (= (logand type 255) (downcase (logand type 255))))                  (/= char (downcase char)))
663              (setq list (cons 'shift list)))              (setq list (cons 'shift list)))
664          (or (zerop (logand type ?\H-\^@))          (or (zerop (logand type ?\H-\^@))
665              (setq list (cons 'hyper list)))              (setq list (cons 'hyper list)))
# Line 843  and `event-end' functions." Line 851  and `event-end' functions."
851  (make-obsolete 'dot-min 'point-min      "before 19.15")  (make-obsolete 'dot-min 'point-min      "before 19.15")
852  (make-obsolete 'dot-marker 'point-marker "before 19.15")  (make-obsolete 'dot-marker 'point-marker "before 19.15")
853  (make-obsolete 'buffer-flush-undo 'buffer-disable-undo "before 19.15")  (make-obsolete 'buffer-flush-undo 'buffer-disable-undo "before 19.15")
854  (make-obsolete 'baud-rate "use the baud-rate variable instead." "before 19.15")  (make-obsolete 'baud-rate "use the `baud-rate' variable instead." "before 19.15")
855  (make-obsolete 'compiled-function-p 'byte-code-function-p "before 19.15")  (make-obsolete 'compiled-function-p 'byte-code-function-p "before 19.15")
856  (make-obsolete 'define-function 'defalias "20.1")  (make-obsolete 'define-function 'defalias "20.1")
857    (make-obsolete 'focus-frame "it does nothing." "19.32")
858    (make-obsolete 'unfocus-frame "it does nothing." "19.32")
859    
860  (defun insert-string (&rest args)  (defun insert-string (&rest args)
861    "Mocklisp-compatibility insert function.    "Mocklisp-compatibility insert function.
# Line 862  is converted into a string by expressing Line 872  is converted into a string by expressing
872    "Return the value of the `baud-rate' variable."    "Return the value of the `baud-rate' variable."
873    baud-rate)    baud-rate)
874    
875  (defalias 'focus-frame 'ignore)  (defalias 'focus-frame 'ignore "")
876  (defalias 'unfocus-frame 'ignore)  (defalias 'unfocus-frame 'ignore "")
877    
878    
879  ;;;; Obsolescence declarations for variables.  ;;;; Obsolescence declarations for variables.
# Line 1112  FILE should be the name of a library, wi Line 1122  FILE should be the name of a library, wi
1122    "Open a TCP connection for a service to a host.    "Open a TCP connection for a service to a host.
1123  Returns a subprocess-object to represent the connection.  Returns a subprocess-object to represent the connection.
1124  Input and output work as for subprocesses; `delete-process' closes it.  Input and output work as for subprocesses; `delete-process' closes it.
1125    
1126  Args are NAME BUFFER HOST SERVICE.  Args are NAME BUFFER HOST SERVICE.
1127  NAME is name for process.  It is modified if necessary to make it unique.  NAME is name for process.  It is modified if necessary to make it unique.
1128  BUFFER is the buffer (or buffer-name) to associate with the process.  BUFFER is the buffer (or buffer name) to associate with the process.
1129   Process output goes at end of that buffer, unless you specify   Process output goes at end of that buffer, unless you specify
1130   an output stream or filter function to handle the output.   an output stream or filter function to handle the output.
1131   BUFFER may be also nil, meaning that this process is not associated   BUFFER may be also nil, meaning that this process is not associated
1132   with any buffer   with any buffer.
1133  Third arg is name of the host to connect to, or its IP address.  HOST is name of the host to connect to, or its IP address.
1134  Fourth arg SERVICE is name of the service desired, or an integer  SERVICE is name of the service desired, or an integer specifying
1135  specifying a port number to connect to."   a port number to connect to."
1136    (make-network-process :name name :buffer buffer    (make-network-process :name name :buffer buffer
1137                          :host host :service service))                          :host host :service service))
1138    
# Line 1130  specifying a port number to connect to." Line 1141  specifying a port number to connect to."
1141  It returns nil if non-blocking connects are not supported; otherwise,  It returns nil if non-blocking connects are not supported; otherwise,
1142  it returns a subprocess-object to represent the connection.  it returns a subprocess-object to represent the connection.
1143    
1144  This function is similar to `open-network-stream', except that this  This function is similar to `open-network-stream', except that it
1145  function returns before the connection is established.  When the  returns before the connection is established.  When the connection
1146  connection is completed, the sentinel function will be called with  is completed, the sentinel function will be called with second arg
1147  second arg matching `open' (if successful) or `failed' (on error).  matching `open' (if successful) or `failed' (on error).
1148    
1149  Args are NAME BUFFER HOST SERVICE SENTINEL FILTER.  Args are NAME BUFFER HOST SERVICE SENTINEL FILTER.
1150  NAME, BUFFER, HOST, and SERVICE are as for `open-network-stream'.  NAME, BUFFER, HOST, and SERVICE are as for `open-network-stream'.
1151  Optional args, SENTINEL and FILTER specifies the sentinel and filter  Optional args SENTINEL and FILTER specify the sentinel and filter
1152  functions to be used for this network stream."  functions to be used for this network stream."
1153    (if (featurep 'make-network-process  '(:nowait t))    (if (featurep 'make-network-process  '(:nowait t))
1154        (make-network-process :name name :buffer buffer :nowait t        (make-network-process :name name :buffer buffer :nowait t
# Line 1155  is called for the new process. Line 1166  is called for the new process.
1166    
1167  Args are NAME BUFFER SERVICE SENTINEL FILTER.  Args are NAME BUFFER SERVICE SENTINEL FILTER.
1168  NAME is name for the server process.  Client processes are named by  NAME is name for the server process.  Client processes are named by
1169  appending the ip-address and port number of the client to NAME.   appending the ip-address and port number of the client to NAME.
1170  BUFFER is the buffer (or buffer-name) to associate with the server  BUFFER is the buffer (or buffer name) to associate with the server
1171  process.  Client processes will not get a buffer if a process filter   process.  Client processes will not get a buffer if a process filter
1172  is specified or BUFFER is nil; otherwise, a new buffer is created for   is specified or BUFFER is nil; otherwise, a new buffer is created for
1173  the client process.  The name is similar to the process name.   the client process.  The name is similar to the process name.
1174  Third arg SERVICE is name of the service desired, or an integer  Third arg SERVICE is name of the service desired, or an integer
1175  specifying a port number to connect to.  It may also be t to selected   specifying a port number to connect to.  It may also be t to select
1176  an unused port number for the server.   an unused port number for the server.
1177  Optional args, SENTINEL and FILTER specifies the sentinel and filter  Optional args SENTINEL and FILTER specify the sentinel and filter
1178  functions to be used for the client processes; the server process   functions to be used for the client processes; the server process
1179  does not use these function."   does not use these function."
1180    (if (featurep 'make-network-process '(:server t))    (if (featurep 'make-network-process '(:server t))
1181        (make-network-process :name name :buffer buffer        (make-network-process :name name :buffer buffer
1182                              :service service :server t :noquery t                              :service service :server t :noquery t
# Line 1176  does not use these function." Line 1187  does not use these function."
1187    
1188  ;; compatibility  ;; compatibility
1189    
1190    (make-obsolete 'process-kill-without-query
1191                   "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'."
1192                   "21.5")
1193  (defun process-kill-without-query (process &optional flag)  (defun process-kill-without-query (process &optional flag)
1194    "Say no query needed if PROCESS is running when Emacs is exited.    "Say no query needed if PROCESS is running when Emacs is exited.
1195  Optional second argument if non-nil says to require a query.  Optional second argument if non-nil says to require a query.
1196  Value is t if a query was formerly required.  Value is t if a query was formerly required."
 New code should not use this function; use `process-query-on-exit-flag'  
 or `set-process-query-on-exit-flag' instead."  
1197    (let ((old (process-query-on-exit-flag process)))    (let ((old (process-query-on-exit-flag process)))
1198      (set-process-query-on-exit-flag process nil)      (set-process-query-on-exit-flag process nil)
1199      old))      old))
# Line 1274  any other non-digit terminates the chara Line 1286  any other non-digit terminates the chara
1286  (defun read-passwd (prompt &optional confirm default)  (defun read-passwd (prompt &optional confirm default)
1287    "Read a password, prompting with PROMPT.  Echo `.' for each character typed.    "Read a password, prompting with PROMPT.  Echo `.' for each character typed.
1288  End with RET, LFD, or ESC.  DEL or C-h rubs out.  C-u kills line.  End with RET, LFD, or ESC.  DEL or C-h rubs out.  C-u kills line.
1289  Optional argument CONFIRM, if non-nil, then read it twice to make sure.  If optional CONFIRM is non-nil, read password twice to make sure.
1290  Optional DEFAULT is a default password to use instead of empty input."  Optional DEFAULT is a default password to use instead of empty input."
1291    (if confirm    (if confirm
1292        (let (success)        (let (success)
# Line 1323  Optional DEFAULT is a default password t Line 1335  Optional DEFAULT is a default password t
1335    (let ((n nil))    (let ((n nil))
1336      (when default      (when default
1337        (setq prompt        (setq prompt
1338              (if (string-match "\\(\\):[^:]*" prompt)              (if (string-match "\\(\\):[ \t]*\\'" prompt)
1339                  (replace-match (format " [%s]" default) t t prompt 1)                  (replace-match (format " (default %s)" default) t t prompt 1)
1340                (concat prompt (format " [%s] " default)))))                (replace-regexp-in-string "[ \t]*\\'"
1341                                            (format " (default %s) " default)
1342                                            prompt t t))))
1343      (while      (while
1344          (progn          (progn
1345            (let ((str (read-from-minibuffer prompt nil nil nil nil            (let ((str (read-from-minibuffer prompt nil nil nil nil
1346                                             (number-to-string default))))                                             (and default
1347                                                    (number-to-string default)))))
1348              (setq n (cond              (setq n (cond
1349                       ((zerop (length str)) default)                       ((zerop (length str)) default)
1350                       ((stringp str) (read str)))))                       ((stringp str) (read str)))))
# Line 1454  menu bar menus and the frame title." Line 1469  menu bar menus and the frame title."
1469    
1470  (defun momentary-string-display (string pos &optional exit-char message)  (defun momentary-string-display (string pos &optional exit-char message)
1471    "Momentarily display STRING in the buffer at POS.    "Momentarily display STRING in the buffer at POS.
1472  Display remains until next character is typed.  Display remains until next event is input.
1473  If the char is EXIT-CHAR (optional third arg, default is SPC) it is swallowed;  Optional third arg EXIT-CHAR can be a character, event or event
1474  otherwise it is then available as input (as a command if nothing else).  description list.  EXIT-CHAR defaults to SPC.  If the input is
1475    EXIT-CHAR it is swallowed; otherwise it is then available as
1476    input (as a command if nothing else).
1477  Display MESSAGE (optional fourth arg) in the echo area.  Display MESSAGE (optional fourth arg) in the echo area.
1478  If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there."  If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there."
1479    (or exit-char (setq exit-char ?\ ))    (or exit-char (setq exit-char ?\ ))
# Line 1486  If MESSAGE is nil, instructions to type Line 1503  If MESSAGE is nil, instructions to type
1503                    (recenter 0))))                    (recenter 0))))
1504            (message (or message "Type %s to continue editing.")            (message (or message "Type %s to continue editing.")
1505                     (single-key-description exit-char))                     (single-key-description exit-char))
1506            (let ((char (read-event)))            (let (char)
1507              (or (eq char exit-char)              (if (integerp exit-char)
1508                  (setq unread-command-events (list char)))))                  (condition-case nil
1509                        (progn
1510                          (setq char (read-char))
1511                          (or (eq char exit-char)
1512                              (setq unread-command-events (list char))))
1513                      (error
1514                       ;; `exit-char' is a character, hence it differs
1515                       ;; from char, which is an event.
1516                       (setq unread-command-events (list char))))
1517                  ;; `exit-char' can be an event, or an event description
1518                  ;; list.
1519                  (setq char (read-event))
1520                  (or (eq char exit-char)
1521                      (eq char (event-convert-list exit-char))
1522                      (setq unread-command-events (list char))))))
1523        (if insert-end        (if insert-end
1524            (save-excursion            (save-excursion
1525              (delete-region pos insert-end)))              (delete-region pos insert-end)))
# Line 1509  If MESSAGE is nil, instructions to type Line 1540  If MESSAGE is nil, instructions to type
1540        (overlay-put o1 (pop props) (pop props)))        (overlay-put o1 (pop props) (pop props)))
1541      o1))      o1))
1542    
1543  (defun remove-overlays (beg end name val)  (defun remove-overlays (&optional beg end name val)
1544    "Clear BEG and END of overlays whose property NAME has value VAL.    "Clear BEG and END of overlays whose property NAME has value VAL.
1545  Overlays might be moved and or split."  Overlays might be moved and/or split.
1546    BEG and END default respectively to the beginning and end of buffer."
1547      (unless beg (setq beg (point-min)))
1548      (unless end (setq end (point-max)))
1549    (if (< end beg)    (if (< end beg)
1550        (setq beg (prog1 end (setq end beg))))        (setq beg (prog1 end (setq end beg))))
1551    (save-excursion    (save-excursion
# Line 1671  If UNDO is present and non-nil, it is a Line 1705  If UNDO is present and non-nil, it is a
1705      (if (nth 4 handler) ;; COMMAND      (if (nth 4 handler) ;; COMMAND
1706          (setq this-command (nth 4 handler)))))          (setq this-command (nth 4 handler)))))
1707    
1708  (defun insert-buffer-substring-no-properties (buf &optional start end)  (defun insert-buffer-substring-no-properties (buffer &optional start end)
1709    "Insert before point a substring of buffer BUFFER, without text properties.    "Insert before point a substring of BUFFER, without text properties.
1710  BUFFER may be a buffer or a buffer name.  BUFFER may be a buffer or a buffer name.
1711  Arguments START and END are character numbers specifying the substring.  Arguments START and END are character positions specifying the substring.
1712  They default to the beginning and the end of BUFFER."  They default to the values of (point-min) and (point-max) in BUFFER."
1713    (let ((opoint (point)))    (let ((opoint (point)))
1714      (insert-buffer-substring buf start end)      (insert-buffer-substring buffer start end)
1715      (let ((inhibit-read-only t))      (let ((inhibit-read-only t))
1716        (set-text-properties opoint (point) nil))))        (set-text-properties opoint (point) nil))))
1717    
1718  (defun insert-buffer-substring-as-yank (buf &optional start end)  (defun insert-buffer-substring-as-yank (buffer &optional start end)
1719    "Insert before point a part of buffer BUFFER, stripping some text properties.    "Insert before point a part of BUFFER, stripping some text properties.
1720  BUFFER may be a buffer or a buffer name.  Arguments START and END are  BUFFER may be a buffer or a buffer name.
1721  character numbers specifying the substring.  They default to the  Arguments START and END are character positions specifying the substring.
1722  beginning and the end of BUFFER.  Strip text properties from the  They default to the values of (point-min) and (point-max) in BUFFER.
1723  inserted text according to `yank-excluded-properties'."  Strip text properties from the inserted text according to
1724    `yank-excluded-properties'."
1725    ;; Since the buffer text should not normally have yank-handler properties,    ;; Since the buffer text should not normally have yank-handler properties,
1726    ;; there is no need to handle them here.    ;; there is no need to handle them here.
1727    (let ((opoint (point)))    (let ((opoint (point)))
1728      (insert-buffer-substring buf start end)      (insert-buffer-substring buffer start end)
1729      (remove-yank-excluded-properties opoint (point))))      (remove-yank-excluded-properties opoint (point))))
1730    
1731    
# Line 1698  inserted text according to `yank-exclude Line 1733  inserted text according to `yank-exclude
1733    
1734  (defun start-process-shell-command (name buffer &rest args)  (defun start-process-shell-command (name buffer &rest args)
1735    "Start a program in a subprocess.  Return the process object for it.    "Start a program in a subprocess.  Return the process object for it.
 Args are NAME BUFFER COMMAND &rest COMMAND-ARGS.  
1736  NAME is name for process.  It is modified if necessary to make it unique.  NAME is name for process.  It is modified if necessary to make it unique.
1737  BUFFER is the buffer or (buffer-name) to associate with the process.  BUFFER is the buffer (or buffer name) to associate with the process.
1738   Process output goes at end of that buffer, unless you specify   Process output goes at end of that buffer, unless you specify
1739   an output stream or filter function to handle the output.   an output stream or filter function to handle the output.
1740   BUFFER may be also nil, meaning that this process is not associated   BUFFER may be also nil, meaning that this process is not associated
1741   with any buffer   with any buffer
1742  Third arg is command name, the name of a shell command.  COMMAND is the name of a shell command.
1743  Remaining arguments are the arguments for the command.  Remaining arguments are the arguments for the command.
1744  Wildcards and redirection are handled as usual in the shell."  Wildcards and redirection are handled as usual in the shell.
1745    
1746    \(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)"
1747    (cond    (cond
1748     ((eq system-type 'vax-vms)     ((eq system-type 'vax-vms)
1749      (apply 'start-process name buffer args))      (apply 'start-process name buffer args))
# Line 1766  See also `with-temp-buffer'." Line 1802  See also `with-temp-buffer'."
1802    (declare (indent 1) (debug t))    (declare (indent 1) (debug t))
1803    ;; Most of this code is a copy of save-selected-window.    ;; Most of this code is a copy of save-selected-window.
1804    `(let ((save-selected-window-window (selected-window))    `(let ((save-selected-window-window (selected-window))
1805             ;; It is necessary to save all of these, because calling
1806             ;; select-window changes frame-selected-window for whatever
1807             ;; frame that window is in.
1808           (save-selected-window-alist           (save-selected-window-alist
1809            (mapcar (lambda (frame) (list frame (frame-selected-window frame)))            (mapcar (lambda (frame) (list frame (frame-selected-window frame)))
1810                    (frame-list))))                    (frame-list))))
# Line 1777  See also `with-temp-buffer'." Line 1816  See also `with-temp-buffer'."
1816                (window-live-p (cadr elt))                (window-live-p (cadr elt))
1817                (set-frame-selected-window (car elt) (cadr elt))))                (set-frame-selected-window (car elt) (cadr elt))))
1818         (if (window-live-p save-selected-window-window)         (if (window-live-p save-selected-window-window)
            ;; This is where the code differs from save-selected-window.  
1819             (select-window save-selected-window-window 'norecord)))))             (select-window save-selected-window-window 'norecord)))))
1820    
1821  (defmacro with-temp-file (file &rest body)  (defmacro with-temp-file (file &rest body)
# Line 2051  which separates, but is not part of, the Line 2089  which separates, but is not part of, the
2089  `split-string-default-separators', normally \"[ \\f\\t\\n\\r\\v]+\", and  `split-string-default-separators', normally \"[ \\f\\t\\n\\r\\v]+\", and
2090  OMIT-NULLS is forced to t.  OMIT-NULLS is forced to t.
2091    
2092  If OMIT-NULLs is t, zero-length substrings are omitted from the list \(so  If OMIT-NULLS is t, zero-length substrings are omitted from the list \(so
2093  that for the default value of SEPARATORS leading and trailing whitespace  that for the default value of SEPARATORS leading and trailing whitespace
2094  are effectively trimmed).  If nil, all zero-length substrings are retained,  are effectively trimmed).  If nil, all zero-length substrings are retained,
2095  which correctly parses CSV format, for example.  which correctly parses CSV format, for example.

Legend:
Removed from v.1.360.2.1  
changed lines
  Added in v.1.360.2.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26