anchor.diff:                                   "TRANSLATE-LOGICAL-PATHNAME"
                                    "PRINT-NOT-READABLE"
                                    "PRINT-NOT-READABLE-OBJECT")
  -  (:export "MAKE" "MV" "CP" "DEFCOMMAND" "*SHELL*" "LESS" "MORE" "CAT" "LS"
  +  (:export "MAKE" "MV" "CP" "DEFINE-EXTERNAL-COMMAND" "*SHELL*" "LESS" "MORE" "CAT" "LS"
              "MKDIR" "POPD" "PUSHD" "PWD" "CD" "BROWSE" "*TERMINAL-HEIGHT*"
              "CHANGE-WORKING-DIRECTORY" "WORKING-DIRECTORY" "*CHANGE-DIRECTORY-HOOK*"
              "*KEEP-DOT-FILES*")
  
positive.code: 
      AGPL3
  
      Copyright Pascal J. Bourguignon 2002 - 2015
  
      This program is free software: you can redistribute it and/or modify
      it under the terms of the GNU Affero General Public License as published by
  
negative.code:                                     (otherwise item))) (cons name args)))))
        (error "Please assign a shell function to ~S" '*shell*)))
  
  (defmacro define-external-command (name &optional docstring)
    "Define a macro named NAME taking any number of arguments, and
  calling the external program of same name thru the shell."
    `(defun ,name (&rest args)
       ,(or docstring (format nil "COMMAND~%Runs the ~A command." name))
       (runcommand ',name args)))
  
  (define-external-command cp)
  (define-external-command mv)
  (define-external-command make)
  (define-external-command grep)
  
  
  (defvar *keep-dot-files* nil
  