Function: tar-new-entry

tar-new-entry is an interactive and byte-compiled function defined in tar-mode.el.gz.

Signature

(tar-new-entry FILENAME &optional INDEX)

Documentation

Insert a new empty regular file before point.

Probably introduced at or before Emacs version 25.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/tar-mode.el.gz
(defun tar-new-entry (filename &optional index)
  "Insert a new empty regular file before point."
  (interactive "*sFile name: ")
  (let* ((index   (or index (tar-current-position)))
	 (d-list  (and (not (zerop index))
		       (nthcdr (+ -1 index) tar-parse-info)))
	 (pos     (if d-list
		      (tar-header-data-end (car d-list))
		    (point-min)))
	 (new-descriptor
	  (tar-new-regular-file-header filename)))
    ;; Update the data buffer; fill the missing descriptor fields.
    (with-current-buffer tar-data-buffer
      (goto-char pos)
      (insert (tar-header-serialize new-descriptor t))
      (setf  (tar-header-data-start new-descriptor)
	     (copy-marker (point) nil)))
    ;; Update tar-parse-info.
    (if d-list
	(setcdr d-list     (cons new-descriptor (cdr d-list)))
      (setq tar-parse-info (cons new-descriptor tar-parse-info)))
    ;; Update the listing buffer.
    (save-excursion
      (goto-char (point-min))
      (forward-line index)
      (let ((inhibit-read-only t))
	(insert (tar-header-block-summarize new-descriptor) ?\n)))
    ;; .
    index))