Add Licensing and Contributing
[opera] / src / main / opera.lisp
index 0d70f9f0c5a6a793dcc8a855fac0cc2d20654bf8..3e45a9e4a76b1317a453c1b288ea561a7aeeab7e 100644 (file)
@@ -1,3 +1,4 @@
+; Copyright 2022 Frank Duncan (frank@consxy.com) under AGPL3.  See distributed LICENSE.txt.
 (defpackage #:opera
  (:use :common-lisp)
  (:export #:process-arguments #:usage
@@ -87,7 +88,8 @@
    ((process-options (remaining-options &optional current-strings)
      (if (not remaining-options)
       (format nil
-       (format nil "~~A~~{~~,,~A~~A~~}" command-width)
+       ; Then 1+ is for the space after the command
+       (format nil "~~A~~{~~%~~,,~A@A~~}" (1+ command-width))
        (car (reverse current-strings))
        (cdr (reverse current-strings)))
       (let*
 (defun option-present (option-name parsed-options)
  (find option-name parsed-options :key #'car))
 
-(defun option-argument (option-name parsed-options)
- (cadr (assoc option-name parsed-options)))
+(defun option-argument (option-name parsed-options &optional default)
+ (if
+  (option-present option-name parsed-options)
+  (cadr (assoc option-name parsed-options))
+  default))
 
 (defun option-arguments (option-name parsed-options)
  (mapcar #'cadr (remove option-name parsed-options :key #'car :test-not #'eql)))