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

mhenoch at common-lisp.net mhenoch at common-lisp.net
Wed Mar 5 05:39:54 UTC 2008


Author: mhenoch
Date: Wed Mar  5 00:39:54 2008
New Revision: 159

Modified:
   cl-darcs/trunk/cmdline.lisp
   cl-darcs/trunk/getopt.lisp
Log:
Move INVALID-ARGUMENTS condition to getopt.lisp, and use it.


Modified: cl-darcs/trunk/cmdline.lisp
==============================================================================
--- cl-darcs/trunk/cmdline.lisp	(original)
+++ cl-darcs/trunk/cmdline.lisp	Wed Mar  5 00:39:54 2008
@@ -27,9 +27,6 @@
     "Turn a command symbol into a function symbol."
     (intern (format nil "CMD-~A" command) :darcs)))
 
-(define-condition invalid-arguments (simple-error)
-  ())
-
 (defun handle-command-line (argv)
   "Handle a command line, emulating the real darcs client.
 ARGV is a list of strings.  This function is to be called in some

Modified: cl-darcs/trunk/getopt.lisp
==============================================================================
--- cl-darcs/trunk/getopt.lisp	(original)
+++ cl-darcs/trunk/getopt.lisp	Wed Mar  5 00:39:54 2008
@@ -16,6 +16,9 @@
 
 (in-package :darcs)
 
+(define-condition invalid-arguments (simple-error)
+  ())
+
 ;; The option struct describes a command line option.
 (defstruct option
   ;; keyword for return value of GETOPT
@@ -53,7 +56,9 @@
 	   (push (cons (option-keyword opt)
 		       (if (option-arg opt)
 			   (if (or no-argument (null args))
-			       (error "Option ~A requires an argument." arg)
+			       (error 'invalid-arguments
+				      :format-control "Option ~A requires an argument."
+				      :format-arguments (list arg))
 			       (pop args))
 			   t))
 		 parsed))
@@ -80,7 +85,9 @@
 		   (long-option (maybe-split-long-option arg))
 		   (option (find long-option options :key #'option-long :test #'string=)))
 	      (unless option
-		(error "Unknown long option ~S (none of ~{~S ~})." arg (mapcar #'option-long options)))
+		(error 'invalid-arguments
+		       :format-control "Unknown long option ~S (none of ~{~S ~})."
+		       :format-arguments (list arg (mapcar #'option-long options))))
 	      (maybe-get-argument arg option)))
 
 	   (:short
@@ -93,7 +100,9 @@
 		   (let* ((letter (pop letters))
 			  (option (find letter options :key #'option-short)))
 		     (unless option
-		       (error "Unknown option ~A." letter))
+		       (error 'invalid-arguments
+			      :format-control "Unknown option ~A."
+			      :format-arguments (list letter)))
 		     ;; Only the last short option can have an argument.
 		     (maybe-get-argument letter option 
 					 :no-argument (not (null letters)))))))



More information about the Cl-darcs-cvs mailing list