changeset 40323:8716d2ed21c6

(artist-version): 1.2.4. (artist-butlast-fn): New variable. (artist-butlast): New function. (artist-ellipse-mirror-quadrant): Use it. (artist-mouse-draw-poly): Use nil for `point-list'. (artist-mouse-draw-poly): Check for point-list being nil.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 26 Oct 2001 09:50:51 +0000
parents 8f3d5fa1699f
children fdcfb565034f
files lisp/textmodes/artist.el
diffstat 1 files changed, 33 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/artist.el	Fri Oct 26 09:14:37 2001 +0000
+++ b/lisp/textmodes/artist.el	Fri Oct 26 09:50:51 2001 +0000
@@ -1,12 +1,12 @@
 ;;; artist.el --- draw ascii graphics with your mouse
 
-;; Copyright (C) 2000 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author:       Tomas Abrahamsson <tab@lysator.liu.se>
 ;; Maintainer:   Tomas Abrahamsson <tab@lysator.liu.se>
 ;; Keywords:     mouse
-;; Version:	 1.2.2
-;; Release-date: 22-Oct-2000
+;; Version:	 1.2.4
+;; Release-date: 25-Oct-2001
 ;; Location:     http://www.lysator.liu.se/~tab/artist/
 
 ;; This file is part of GNU Emacs.
@@ -136,6 +136,15 @@
 
 ;;; ChangeLog:
 
+;; 1.2.4	25-Oct-2001
+;; Bugfix:	Some operations (the edit menu) got hidden
+;; Bugfix:      The first arrow for poly-lines was always pointing
+;;              to the right
+;; Changed:	Updated with changes made for Emacs 21.1
+;;
+;; 1.2.3	20-Nov-2000
+;; Bugfix:	Autoload cookie corrected
+;;
 ;; 1.2.2	19-Nov-2000
 ;; Changed:	More documentation fixes.
 ;; Bugfix:	The arrow characters (`artist-arrows'), which 
@@ -178,7 +187,7 @@
 
 ;; Variables
 
-(defconst artist-version "1.2.2")
+(defconst artist-version "1.2.4")
 (defconst artist-maintainer-address "tab@lysator.liu.se")
 
 
@@ -701,7 +710,7 @@
 		 2
 		 artist-draw-square
 		 (artist-undraw-square
-		  artist-t artist-cut-square)))))
+		  artist-t artist-cut-square))))))
 
        (graphics-operation
 	("Copy" (("copy rectangle" copy-r "copy-r"
@@ -717,7 +726,7 @@
 		  2
 		  artist-draw-square
 		  (artist-undraw-square
-		   artist-t artist-copy-square)))))
+		   artist-t artist-copy-square))))))
 
        (graphics-operation
 	("Paste" (("paste" paste "paste"
@@ -745,7 +754,7 @@
 			nil nil nil
 			1
 			artist-flood-fill
-			nil)))))))))
+			nil)))))))
 
     (menu
      ("Settings"
@@ -1675,6 +1684,20 @@
   "Call function FN with ARGS iff FN is not nil."
   (list 'if fn (cons 'funcall (cons fn args))))
 
+(defvar artist-butlast-fn 'artist-butlast
+  "The butlast function")
+
+(if (fboundp 'butlast)
+    (setq artist-butlast-fn 'butlast)
+  (setq artist-butlast-fn 'artist-butlast))
+
+(defun artist-butlast (l)
+  "Return the list L with all elements but the last."
+  (cond ((null l) nil)
+	((null (cdr l)) nil)
+	(t (cons (car l) (artist-butlast (cdr l))))))
+
+
 (defun artist-last (seq &optional n)
   "Return the last link in the list SEQ.
 With optional argument N, returns Nth-to-last link (default 1)."
@@ -3341,7 +3364,7 @@
 				       (t c)))))
 	   ;; The cdr and butlast below is so we don't draw the middle top
 	   ;; and middle bottom char twice.
-	   (butlast (cdr (reverse right-half)))))
+	   (funcall artist-butlast-fn (cdr (reverse right-half)))))
     (append right-half left-half)))
 
 
@@ -4952,7 +4975,7 @@
 	 (y2           y1-last)
 	 (is-down      t)
 	 (shape        nil)
-	 (point-list   (list (artist-make-endpoint x1-last y1-last)))
+	 (point-list   nil)
 	 (done         nil))
     (select-window (posn-window ev-start))
     (artist-funcall init-fn x1-last y1-last)
@@ -5125,7 +5148,7 @@
 	(artist-funcall fill-fn point-list))
 
     ;; Maybe set arrow points
-    (if (artist-funcall arrow-pred)
+    (if (and point-list (artist-funcall arrow-pred))
 	(artist-funcall arrow-set-fn point-list)
       (artist-clear-arrow-points))