|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 3749 (0xea5) Types: TextFile Names: »tar.el«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89 └─⟦dbcd4071d⟧ »./gnu-ada-1.05.tar.Z« └─⟦999713de5⟧ └─⟦this⟧ »tar.el«
;;;;;;;;;;;;;;;;;;;;;;;;;; -*- Mode: Emacs-Lisp -*- ;;;;;;;;;;;;;;;;;;;;;;;;;; ;; tar.el --- An emacs equivilent to tar ;; Author : Lynn Slater ;; Created On : Tue Sep 6 13:39:03 1988 ;; Last Modified By: Lynn Slater ;; Last Modified On: Fri Sep 9 07:01:43 1988 ;; Update Count : 12 ;; Status : Unknown, Use with caution! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Copyright (C) 1988 Lynn Randolph Slater, Jr. ;; This file might become part of GNU Emacs. ;; ;; This file is distributed in the hope that it will be useful, ;; but without any warranty. No author or distributor ;; accepts responsibility to anyone for the consequences of using it ;; or for whether it serves any particular purpose or works at all, ;; unless he says so in writing. ;; ;; Everyone is granted permission to copy, modify and redistribute ;; this file, but only under the conditions described in the ;; document "GNU Emacs copying permission notice". An exact copy ;; of the document is supposed to have been given to you along with ;; this file so that you can know how you may redistribute it all. ;; It should be in a file named COPYING. Among other things, the ;; copyright notice and this notice must be preserved on all copies. ;; call this tar.el ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; This file supports automatic insertion and extraction of "cut here" ;; style embedded files. I call these "tar" files because this is the ;; within a file equivilent to what I use tar for in a shell. This ;; facility is good for sending short ascii files in mail messages. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun insert-tar-file (fname &optional dir) "Inserts the named file into the current buffer in a format that get-tar-file will understand." (interactive "fFile: ") (beginning-of-line) (setq real-fname (expand-file-name fname (or dir default-directory))) (insert "\n-*- File: " fname "\n") (if (file-exists-p real-fname) (progn (insert-file real-fname) (exchange-point-and-mark)) (insert "<<File missing>")) (insert "\n-*- End File: " fname "\n") ) (defun get-tar-file () "Searches in the current buffer for the next tar file and creates it" (interactive) (if (re-search-forward "^\\-\\*\\- File: \\(.*\\)$" nil t) (let ((fname (buffer-substring (match-beginning 1) (match-end 1))) b e str) (next-line 1) (beginning-of-line) (setq b (point)) (re-search-forward "^\\-\\*\\- End File: \\(.*\\)$") (beginning-of-line) (setq e (point)) (setq str (buffer-substring b e)) (if (and (file-exists-p fname) (not (yes-or-no-p (format "File %s already exists, replace? " fname)))) (message "File already exists: %s" fname) (save-excursion (find-file fname) (kill-region 1 (1+ (buffer-size))) (insert str) t))))) ;; The functions in this file pack and unpack files into or from a buffer (defun create-tar (fnames) "Given a list of file names, adds each file into the buffer *tar*, The files may be unpacked by extract-tar." (switch-to-buffer "*tar*") (end-of-buffer) (let ((dd default-directory) fname) (while fnames (insert-tar-file (car fnames) dd) (setq fnames (cdr fnames)) ))) (defun extract-tar () "If invoked from a buffer filled by create-tar, will find all files following point and will create their buffers providing that the files do not already exist. The buffers must be saved manually; this way you have some control over files being created accidentally." (interactive) (while (get-tar-file)) (message "Now save the files you want to keep"))