changeset 9173:6ee3eeec722b

(command-line): Recognize --longopt synonyms for all options handled here.
author Karl Heuer <kwzh@gnu.org>
date Wed, 28 Sep 1994 22:15:38 +0000
parents 393a55341859
children 900fdf19446a
files lisp/startup.el
diffstat 1 files changed, 27 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/startup.el	Wed Sep 28 21:00:06 1994 +0000
+++ b/lisp/startup.el	Wed Sep 28 22:15:38 1994 +0000
@@ -41,13 +41,14 @@
 ; -u user		load user's init file
 ; -user user		same
 ; -debug-init		Don't catch errors in init file; let debugger run.
+; -no-site-file		Don't load site-run-file.
 
 ; These are processed in the order encountered.
 ; -f function		execute function
 ; -funcall function	same
 ; -l file		load file
 ; -load file		same
-; -insert file		same
+; -insert file		insert file into buffer
 ; file			visit file
 ; -kill			kill (exit) emacs
 
@@ -291,7 +292,21 @@
     ;; processed.  This is consistent with the way main in emacs.c
     ;; does things.
     (while (and (not done) args)
-      (let ((argi (car args)))
+      (let ((longopts '(("--no-init-file") ("--no-site-file") ("--user")
+			("--debug-init")))
+	    (argi (car args))
+	    (argval nil))
+	(if (string-match "=" argi)
+	    (setq argi (substring argi 0 (1- (match-beginning 0)))
+		  argval (substring argi (match-end 0))))
+	(let ((completion (try-completion argi longopts)))
+	  (if (eq completion t)
+	      (setq argi (substring argi 1))
+	    (if (stringp completion)
+		(let ((elt (assoc completion longopts)))
+		  (or elt
+		      (error "Option `%s' is ambiguous" argi))
+		  (setq argi (substring (car elt) 1))))))
 	(cond
 	 ((or (string-equal argi "-q")
 	      (string-equal argi "-no-init-file"))
@@ -299,8 +314,11 @@
 		args (cdr args)))
 	 ((or (string-equal argi "-u")
 	      (string-equal argi "-user"))
-	  (setq args (cdr args)
-		init-file-user (car args)
+	  (or argval
+	      (setq argval (car args)
+		    args (cdr args)))
+	  (setq init-file-user argval
+		argval nil
 		args (cdr args)))
 	 ((string-equal argi "-no-site-file")
 	  (setq site-run-file nil
@@ -308,8 +326,11 @@
 	 ((string-equal argi "-debug-init")
 	  (setq init-file-debug t
 		args (cdr args)))
-	 (t (setq done t)))))
-    
+	 (t (setq done t)))
+	;; Was argval set but not used?
+	(and argval
+	     (error "Option `%s' doesn't allow an argument" argi))))
+
     ;; Re-attach the program name to the front of the arg list.
     (setcdr command-line-args args))