Implement M-x insert-filename.
authorChris Hanson <org/chris-hanson/cph>
Wed, 9 Dec 1998 02:51:45 +0000 (02:51 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 9 Dec 1998 02:51:45 +0000 (02:51 +0000)
v7/src/edwin/filcom.scm
v7/src/edwin/modefs.scm

index 72c5d68943a26aa049c6194eee9412c35cecbe99..95efc4681227cf90711a69a2641f84691ff7dbae 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: filcom.scm,v 1.196 1998/11/18 03:42:26 cph Exp $
+;;;    $Id: filcom.scm,v 1.197 1998/12/09 02:51:39 cph Exp $
 ;;;
 ;;;    Copyright (c) 1986, 1989-98 Massachusetts Institute of Technology
 ;;;
@@ -364,6 +364,25 @@ Argument means don't offer to use auto-save file."
            (message
             "Auto-save off in this buffer till you do M-x auto-save-mode.")
            (select-buffer buffer)))))))
+
+(define-command insert-filename
+  "Interactively read a file name and insert it at point.
+The file name is normally inserted using Scheme syntax,
+but see the variable insert-filename-format."
+  "FInsert filename"
+  (lambda (filename)
+    (insert-string ((ref-variable insert-filename-format) filename)
+                  (current-point))))
+
+(define-variable insert-filename-format
+  "Defines the format used by \[insert-filename].
+The value of this variable must be a procedure of one argument.
+The procedure is called with the filename as an argument,
+and returns the string that is inserted into the buffer."
+  write-to-string
+  (lambda (object)
+    (and (procedure? object)
+        (procedure-arity-valid? object 1))))
 \f
 (define-command save-buffer
   "Save current buffer in visited file if modified.  Versions described below.
@@ -610,6 +629,8 @@ If a file with the new name already exists, confirmation is requested first."
                        ": Permission denied"))
       (set-buffer-default-directory! buffer directory))))
 \f
+;;;; Encryption
+
 (define-command encrypt-file
   "Encrypt a file with the blowfish encryption algorithm.
 Prompts for the plaintext and ciphertext filenames.
index 9f7d7b77bfbc0ff2668301dc8e85396650cdcf38..341b162c60e6f6f0f2fefd64ab47a1635d3cad8f 100644 (file)
@@ -1,8 +1,8 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: modefs.scm,v 1.151 1998/01/20 18:40:46 adams Exp $
+;;;    $Id: modefs.scm,v 1.152 1998/12/09 02:51:45 cph Exp $
 ;;;
-;;;    Copyright (c) 1985, 1989-1998 Massachusetts Institute of Technology
+;;;    Copyright (c) 1985, 1989-98 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
@@ -237,6 +237,7 @@ Like Fundamental mode, but no self-inserting characters.")
 (define-key 'fundamental #\c-m-w 'append-next-kill)
 (define-key 'fundamental #\c-m-rubout 'backward-kill-sexp)
 
+(define-key 'fundamental '(#\c-c #\c-i) 'insert-filename)
 (define-key 'fundamental '(#\c-c #\c-s) 'repl)
 
 (define-key 'fundamental '(#\c-h #\a) 'command-apropos)