diff -urpN --exclude=*~ ../emacs-21.0.104/lib-src/ChangeLog ./lib-src/ChangeLog
--- ../emacs-21.0.104/lib-src/ChangeLog	Tue May 15 12:18:56 2001
+++ ./lib-src/ChangeLog	Mon Jul 16 14:32:48 2001
@@ -1,3 +1,15 @@
+2001-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* emacsclient.c (print_help_and_exit): Fix help message for
+	+LINE:COLUMN option.
+
+	Apply to 21.0.104.
+
+2000-07-16  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+	
+	* emacsclient.c (main): Add support for +LINE:COLUMN command line
+	argument.
+
 2001-05-14  Francesco Potorti`  <pot@gnu.org>
 
 	* etags.c (add_regex): Reset the whole newly allocated pattern
diff -urpN --exclude=*~ ../emacs-21.0.104/lib-src/emacsclient.c ./lib-src/emacsclient.c
--- ../emacs-21.0.104/lib-src/emacsclient.c	Mon May  7 12:49:51 2001
+++ ./lib-src/emacsclient.c	Mon Jul 16 13:22:53 2001
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA.  */
 #include <../src/config.h>
 #undef signal
 
+#include <ctype.h> 
 #include <stdio.h>
 #include <getopt.h>
 #ifdef HAVE_UNISTD_H
@@ -115,7 +116,7 @@ void
 print_help_and_exit ()
 {
   fprintf (stderr,
-	   "Usage: %s [-a ALTERNATE-EDITOR] [-n] [--no-wait] [+LINENUMBER] FILENAME\n",
+	   "Usage: %s [-a ALTERNATE-EDITOR] [-n] [--no-wait] [+LINE[:COLUMN]] FILENAME\n",
 	   progname);
   fprintf (stderr,
 	   "Or %s --version\n",
@@ -424,7 +425,7 @@ main (argc, argv)
       if (*argv[i] == '+')
 	{
 	  char *p = argv[i] + 1;
-	  while (*p >= '0' && *p <= '9') p++;
+	  while (isdigit (*p) || *p == ':') p++;
 	  if (*p != 0)
 	    fprintf (out, "%s/", quote_file_name (cwd));
 	}
@@ -567,7 +568,8 @@ main (argc, argv)
       if (*modified_arg == '+')
 	{
 	  char *p = modified_arg + 1;
-	  while (*p >= '0' && *p <= '9') p++;
+	  while (isdigit (*p) || *p == ':')
+	    p++;
 	  if (*p != 0)
 	    need_cwd = 1;
 	}
diff -urpN --exclude=*~ ../emacs-21.0.104/lisp/ChangeLog ./lisp/ChangeLog
--- ../emacs-21.0.104/lisp/ChangeLog	Fri Jul 13 12:19:51 2001
+++ ./lisp/ChangeLog	Mon Jul 16 14:31:33 2001
@@ -1,3 +1,17 @@
+2001-07-16  Jan Nieuwenhuizen  <jan@netland.nl>
+
+	* startup.el (command-line-1): Add support for +LINE:COLUMN
+	command line argument.
+
+2001-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* server.el: Apply to 21.0.104.
+
+2000-07-16  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+	* server.el (server-process-filter,server-visit-files): Add support for
+	+LINE:COLUMN style emacsclient calls.
+
 2001-07-13  Gerd Moellmann  <gerd@gnu.org>
 
 	* play/fortune.el: Add types to defcustoms.
diff -urpN --exclude=*~ ../emacs-21.0.104/lisp/server.el ./lisp/server.el
--- ../emacs-21.0.104/lisp/server.el	Mon Jun 18 10:51:07 2001
+++ ./lisp/server.el	Mon Jul 16 16:36:25 2001
@@ -232,7 +232,8 @@ Prefix arg means just kill any existing 
 				  default-file-name-coding-system)))
 	  client nowait
 	  (files nil)
-	  (lineno 1))
+	  (lineno 1)
+	  (columnno 0))
       ;; Remove this line from STRING.
       (setq string (substring string (match-end 0)))	  
       (if (string-match "^Error: " request)
@@ -249,9 +250,17 @@ Prefix arg means just kill any existing 
 		  (setq request (substring request (match-end 0)))
 		  (if (string-match "\\`-nowait" arg)
 		      (setq nowait t)
-		    (if (string-match "\\`\\+[0-9]+\\'" arg)
-			;; ARG is a line number option.
-			(setq lineno (read (substring arg 1)))
+		    (cond
+    			;; ARG is a line number option.
+		     ((string-match "\\`\\+[0-9]+\\'" arg)
+		      (setq lineno (string-to-int (substring arg 1))))
+		     ;; ARG is line number:column option. 
+		     ((string-match "\\`+\\([0-9]+\\):\\([0-9]+\\)\\'" arg)
+		      (setq lineno (string-to-int
+				    (substring arg 1 (match-end 1))))
+		      (setq columnno (string-to-int
+				      (substring arg (match-beginning 2)))))
+		     (t
 		      ;; ARG is a file name.
 		      ;; Collapse multiple slashes to single slashes.
 		      (setq arg (command-line-normalize-file-name arg))
@@ -270,9 +279,10 @@ Prefix arg means just kill any existing 
 		      (if coding-system
 			  (setq arg (decode-coding-string arg coding-system)))
 		      (setq files
-			    (cons (list arg lineno)
+			    (cons (list arg lineno columnno)
 				  files))
-		      (setq lineno 1)))))
+		      (setq lineno 1)
+		      (setq columnno 0))))))
 	      (server-visit-files files client nowait)
 	      ;; CLIENT is now a list (CLIENTNUM BUFFERS...)
 	      (if (null (cdr client))
@@ -293,7 +303,7 @@ Prefix arg means just kill any existing 
 
 (defun server-visit-files (files client &optional nowait)
   "Finds FILES and returns the list CLIENT with the buffers nconc'd.
-FILES is an alist whose elements are (FILENAME LINENUMBER).
+FILES is an alist whose elements are (FILENAME LINENUMBER COLUMNNUMBER).
 NOWAIT non-nil means this client is not waiting for the results,
 so don't mark these buffers specially, just visit them normally."
   ;; Bind last-nonmenu-event to force use of keyboard, not mouse, for queries.
@@ -325,6 +335,7 @@ so don't mark these buffers specially, j
 		  (goto-line (nth 1 (car files))))
 	      (set-buffer (find-file-noselect filen))
 	      (goto-line (nth 1 (car files)))
+	      (move-to-column (- (nth 2 (car files)) 1))
 	      (run-hooks 'server-visit-hook)))
 	  (if (not nowait)
 	      (setq server-buffer-clients
diff -urpN --exclude=*~ ../emacs-21.0.104/lisp/startup.el ./lisp/startup.el
--- ../emacs-21.0.104/lisp/startup.el	Tue Jul 10 14:54:04 2001
+++ ./lisp/startup.el	Mon Jul 16 16:35:25 2001
@@ -1436,7 +1436,8 @@ Type \\[describe-distribution] for infor
 		   (mapcar (lambda (elt)
 			     (list (concat "-" (car elt))))
 			   command-switch-alist)))
-	  (line 0))
+	  (line 0)
+	  (column 0))
 
       ;; Add the long X options to longopts.
       (setq tem command-line-x-option-alist)
@@ -1545,6 +1546,11 @@ Type \\[describe-distribution] for infor
 		((string-match "^\\+[0-9]+\\'" argi)
 		 (setq line (string-to-int argi)))
 		
+		((string-match "^\\+\\([0-9]+\\):\\([0-9]+\\)\\'" argi)
+		 (setq line (string-to-int (substring argi 1 (match-end 1))))
+		 (setq column (string-to-int
+			       (substring argi (match-beginning 2)))))
+
 		((setq tem (assoc argi command-line-x-option-alist))
 		 ;; Ignore X-windows options and their args if not using X.
 		 (setq command-line-args-left
@@ -1568,7 +1574,10 @@ Type \\[describe-distribution] for infor
 		     (find-file-other-window file)))
 		 (or (zerop line)
 		     (goto-line line))
-		 (setq line 0))
+		 (setq line 0)
+		 (or (< column 1)
+		     (move-to-column (- column 1)))
+		 (setq column 0))
 		
 		((equal argi "--")
 		 (setq just-files t))
@@ -1595,7 +1604,10 @@ Type \\[describe-distribution] for infor
 			     (find-file-other-window file)))
 			 (or (zerop line)
 			     (goto-line line))
-			 (setq line 0))))))))
+			 (setq line 0)
+			 (or (< column 1)
+			     (move-to-column (- column 1)))
+			 (setq column 0))))))))
       ;; If 3 or more files visited, and not all visible,
       ;; show user what they all are.  But leave the last one current.
       (and (> file-count 2)
diff -urpN --exclude=*~ ../emacs-21.0.104/man/ChangeLog ./man/ChangeLog
--- ../emacs-21.0.104/man/ChangeLog	Mon Jun 18 10:51:08 2001
+++ ./man/ChangeLog	Mon Jul 16 14:30:25 2001
@@ -1,3 +1,7 @@
+2001-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* cmdargs.texi: Add +LINE:COLUMN option description.
+
 2001-06-08  Carsten Dominik  <dominik@astro.uva.nl>
 
 	* reftex.texi: Updated to version 4.16
diff -urpN --exclude=*~ ../emacs-21.0.104/man/cmdargs.texi ./man/cmdargs.texi
--- ../emacs-21.0.104/man/cmdargs.texi	Mon May 21 10:45:17 2001
+++ ./man/cmdargs.texi	Mon Jul 16 14:54:13 2001
@@ -92,6 +92,11 @@ Visit @var{file} using @code{find-file}.
 Visit @var{file} using @code{find-file}, then go to line number
 @var{linenum} in it.
 
+@item +@var{linenum}:@var{columnnum} @var{file}
+@opindex +@var{linenum}:@var{columnnum}
+Visit @var{file} using @code{find-file}, then go to line number
+@var{linenum} in it, and move to column number @var{columnnum}.
+
 @need 3000
 @item -l @var{file}
 @opindex -l
diff -urpN --exclude=*~ ../emacs-21.0.104/src/ChangeLog ./src/ChangeLog
--- ../emacs-21.0.104/src/ChangeLog	Fri Jul 13 11:30:04 2001
+++ ./src/ChangeLog	Mon Jul 16 13:43:09 2001
@@ -1,3 +1,7 @@
+2001-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* emacs.c (Usage): Add +LINE:COLUMN option help.
+
 2001-07-13  Gerd Moellmann  <gerd@gnu.org>
 
 	* xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
diff -urpN --exclude=*~ ../emacs-21.0.104/src/emacs.c ./src/emacs.c
--- ../emacs-21.0.104/src/emacs.c	Sat Jun 30 00:07:49 2001
+++ ./src/emacs.c	Mon Jul 16 13:36:37 2001
@@ -239,7 +239,9 @@ Initialization options:\n\
 Action options:\n\
 \n\
 FILE			visit FILE using find-file\n\
-+LINENUM FILE		visit FILE using find-file, then go to line LINENUM\n\
++LINE FILE		visit FILE using find-file, then go to line LINE\n\
++LINE:COLUMN FILE	visit FILE using find-file, then go to line LINE,\n\
+			    column COLUMN\n\
 --directory, -L DIR	add DIR to variable load-path\n\
 --eval EXPR		evaluate Emacs Lisp expression EXPR\n\
 --execute EXPR		evaluate Emacs Lisp expression EXPR\n\

