[Cl-darcs-cvs] r81 - cl-darcs/trunk

Author: mhenoch Date: Mon Nov 27 19:15:21 2006 New Revision: 81 Added: cl-darcs/trunk/display-patch.lisp Modified: cl-darcs/trunk/cl-darcs.asd Log: Add display-patch.lisp Modified: cl-darcs/trunk/cl-darcs.asd ============================================================================== --- cl-darcs/trunk/cl-darcs.asd (original) +++ cl-darcs/trunk/cl-darcs.asd Mon Nov 27 19:15:21 2006 @@ -45,6 +45,7 @@ (:file "write-patch" :depends-on ("patch-core")) (:file "apply-patch" :depends-on ("patch-core")) (:file "invert-patch" :depends-on ("patch-core")) + (:file "display-patch" :depends-on ("patch-core")) (:file "pristine" :depends-on ("patch-core")) (:file "touching" :depends-on ("patch-core")) (:file "commute" :depends-on ("patch-core")) Added: cl-darcs/trunk/display-patch.lisp ============================================================================== --- (empty file) +++ cl-darcs/trunk/display-patch.lisp Mon Nov 27 19:15:21 2006 @@ -0,0 +1,36 @@ +;;; Copyright (C) 2006 Magnus Henoch +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU General Public License as +;;; published by the Free Software Foundation; either version 2 of the +;;; License, or (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program; if not, write to the Free Software +;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +(in-package :darcs) + +(defgeneric display-patch (patch stream) + (:documentation + "Print an elaborate and readable description of PATCH to STREAM.")) + +(defmethod display-patch ((patch patch) stream) + "When no display method is defined, write a terse description." + (print patch stream)) + +(defmethod display-patch ((patch hunk-patch) stream) + (format stream "~&~A: ~A~[~:;~:*-~A~]~[~:;~:*+~A~]" + (patch-filename patch) + (hunk-line-number patch) + (length (hunk-old-lines patch)) + (length (hunk-new-lines patch))) + (dolist (old (hunk-old-lines patch)) + (format stream "~&-~A" (bytes-to-string old))) + (dolist (new (hunk-new-lines patch)) + (format stream "~&+~A" (bytes-to-string new))))
participants (1)
-
mhenoch@common-lisp.net