;;; 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))))