diff -urN ../gnuserv-2.1alpha.orig/ChangeLog ./ChangeLog
--- ../gnuserv-2.1alpha.orig/ChangeLog	Thu Jan  1 01:00:00 1970
+++ ./ChangeLog	Wed Feb  7 20:05:30 2001
@@ -0,0 +1,8 @@
+2001-02-07  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* gnuclient.c (main): * gnuserv.el (server-edit-files):
+	(server-edit-files-quickly): Added support for +line[:column]
+	point 'n click editing; see
+	http://appel.lilypond.org/wiki?pointandclick
+	
+
diff -urN ../gnuserv-2.1alpha.orig/gnuclient.c ./gnuclient.c
--- ../gnuserv-2.1alpha.orig/gnuclient.c	Thu Feb 16 18:46:41 1995
+++ ./gnuclient.c	Wed Feb  7 19:58:22 2001
@@ -102,6 +102,7 @@
      char *argv[];
 {
   int starting_line = 1;			/* line to start editing at */
+  int starting_column = 1;			/* column to start editing at */
   char command[MAXPATHLEN+50];			/* emacs command buffer */
   char fullpath[MAXPATHLEN+1];			/* full pathname to file */
   int qflg = 0;					/* quick edit, don't wait for 
@@ -159,9 +160,9 @@
   if (errflg) {
     fprintf(stderr,
 #ifdef INTERNET_DOMAIN_SOCKETS
-	    "usage: %s [-q] [-h hostname] [-p port] [-r pathname] [[+line] path] ...\n",
+	    "usage: %s [-q] [-h hostname] [-p port] [-r pathname] [[+line[:column]] path] ...\n",
 #else /* !INTERNET_DOMAIN_SOCKETS */
-	    "usage: %s [-q] [[+line] path] ...\n",
+	    "usage: %s [-q] [[+line[:column]] path] ...\n",
 #endif /* !INTERNET_DOMAIN_SOCKETS */
 	    progname);
     exit (1);
@@ -214,11 +215,13 @@
 
   for (; optind < argc; optind++) {
     if (*argv[optind] == '+')
-      starting_line = atoi(argv[optind]);
+      {
+	sscanf (argv[optind], "+%d:%d", &starting_line, &starting_column);
+      }
     else {
 
       filename_expand(fullpath,argv[optind]);
-      sprintf(command,"(%d . \"%s%s\")",starting_line,
+      sprintf(command,"(%d %d \"%s%s\")",starting_line, starting_column-1,
 
 #ifdef INTERNET_DOMAIN_SOCKETS
 	      remotepath,
@@ -228,6 +231,7 @@
 	      fullpath);
       send_string(s,command);
       starting_line = 1;
+      starting_column = 1;
     }; /* else */
   }; /* for */
 
diff -urN ../gnuserv-2.1alpha.orig/gnuserv.1 ./gnuserv.1
--- ../gnuserv-2.1alpha.orig/gnuserv.1	Thu Feb 16 18:46:42 1995
+++ ./gnuserv.1	Wed Feb  7 20:00:30 2001
@@ -4,7 +4,7 @@
 gnuserv, gnuclient, gnudoit \- Server and Clients for GNU Emacs
 .SH SYNOPSIS
 .B gnuclient
-[-q] [[-h hostname] [-p port] [-r pathname]] [[+line] path] ...
+[-q] [[-h hostname] [-p port] [-r pathname]] [[+line[:col]] path] ...
 .br
 .B gnudoit 
 [-q] [[-h hostname] [-p port]] [sexpr] ...
diff -urN ../gnuserv-2.1alpha.orig/gnuserv.el ./gnuserv.el
--- ../gnuserv-2.1alpha.orig/gnuserv.el	Thu Feb 16 18:46:42 1995
+++ ./gnuserv.el	Wed Feb  7 20:03:02 2001
@@ -287,32 +287,36 @@
 
 
 (defun server-edit-files-quickly (list)
-  "For each (line-number . file) pair in LIST, edit the file at line-number.
-Unlike (server-edit-files), no information is saved about clients waiting on
-edits to this buffer."
+  "For each (line-number column-number file) list in LIST, edit the
+file at line-number, column-number.  Unlike (server-edit-files), no
+information is saved about clients waiting on edits to this buffer."
   (server-write-to-client current-client nil)
   (setq current-client nil)
   (while list
-    (let ((line (car (car list)))
-	  (path (cdr (car list))))
+    (let ((line (nth 0 (car list)))
+	  (col (nth 1 (car list)))
+	  (path (nth 2 (car list))))
       (server-find-file path)
       (server-make-window-visible)
-      (goto-line line))
+      (goto-line line)
+      (move-to-column (col)))
     (setq list (cdr list))))
 
 
 (defun server-edit-files (list)
-  "For each (line-number . file) pair in LIST, edit the file at line-number.
-Save enough information for (server-kill-buffer) to inform the client when
-the edit is finished."
+  "For each (line-number column-number file) list in LIST, edit the
+file at line-number.  Save enough information for (server-kill-buffer)
+to inform the client when the edit is finished."
   (while list
-    (let ((line (car (car list)))
-	  (path (cdr (car list))))
+    (let ((line (nth 0 (car list)))
+	  (col (nth 1 (car list)))
+	  (path (nth 2 (car list))))
       (server-find-file path)
       (server-make-window-visible)
       (let ((old-clients (assq current-client server-clients))
 	    (buffer (current-buffer)))
 	(goto-line line)
+	(move-to-column col)
 	(setq server-buffer-clients
 	      (cons current-client server-buffer-clients))
 	(if old-clients			;client already waiting for buffers?

