Index: ChangeLog
===================================================================
--- ChangeLog	(revision cf83b7a15ef998b48ca0aa69dae69a963b365dc1)
+++ ChangeLog	(revision 453bd70a59b841b3725a0d19cf4a7e825db5a3e8)
@@ -3,4 +3,7 @@
 2.0.6-pre-2
 	Started adding code to do question/response stuff
+	aimlogin will now accept the screenname without a password and ask
+	   for the password such that it is not echo'd to the terminal
+	Fixed documentation bug in aimwrite
 
 2.0.6-pre-1
Index: commands.c
===================================================================
--- commands.c	(revision cf83b7a15ef998b48ca0aa69dae69a963b365dc1)
+++ commands.c	(revision 453bd70a59b841b3725a0d19cf4a7e825db5a3e8)
@@ -81,4 +81,9 @@
 	      "prompts the user to enter a response to some question",
 	      "start-command <question>",
+	      ""),
+
+  OWLCMD_ARGS("start-password", owl_command_start_password, OWL_CTX_INTERACTIVE,
+	      "prompts the user to enter a password",
+	      "start-password <question>",
 	      ""),
 
@@ -118,5 +123,5 @@
 
   OWLCMD_ARGS("aimwrite", owl_command_aimwrite, OWL_CTX_INTERACTIVE,
-	      "send a zephyr",
+	      "send an AIM message",
 	      "aimzwrite <user>",
 	      "Send an aim message to a user.\n"),
@@ -640,5 +645,5 @@
   OWLCMD_ARGS("aimlogin", owl_command_aimlogin, OWL_CTX_ANY,
 	      "login to an AIM account",
-	      "aimlogin <screenname> <password>\n",
+	      "aimlogin <screenname> [<password>]\n",
 	      ""),
 
@@ -1224,4 +1229,11 @@
 }
 
+char *owl_command_start_password(int argc, char **argv, char *buff)
+{
+  buff = skiptokens(buff, 1);
+  owl_function_start_password(buff);
+  return(NULL);
+}
+
 char *owl_command_zaway(int argc, char **argv, char *buff)
 {
@@ -1610,5 +1622,4 @@
   } else {
     owl_function_zwrite_setup(buff);
-    owl_global_set_buffercommand(&g, buff);
   }
   return(NULL);
@@ -1639,5 +1650,4 @@
     
   owl_function_aimwrite_setup(newbuff);
-  owl_global_set_buffercommand(&g, newbuff);
   owl_free(newbuff);
   return(NULL);
@@ -1661,5 +1671,4 @@
   } else {
     owl_function_zwrite_setup(buff);
-    owl_global_set_buffercommand(&g, buff);
   }
   return(NULL);
@@ -2095,6 +2104,13 @@
   int ret;
   
-  if (argc!=3) {
+  if ((argc<2) || (argc>3)) {
     owl_function_makemsg("Wrong number of arguments to aimlogin command");
+    return(NULL);
+  }
+
+  /* if we get two arguments, ask for the password */
+  if (argc==2) {
+    owl_global_set_buffercommand(&g, buff);
+    owl_function_start_password("Password: ");
     return(NULL);
   }
@@ -2230,5 +2246,5 @@
   owl_global_set_needrefresh(&g);
 
-  owl_function_makemsg("Thank you");
+  owl_function_run_buffercommand();
 }
 
Index: functions.c
===================================================================
--- functions.c	(revision cf83b7a15ef998b48ca0aa69dae69a963b365dc1)
+++ functions.c	(revision 453bd70a59b841b3725a0d19cf4a7e825db5a3e8)
@@ -222,4 +222,6 @@
   /* make it active */
   owl_global_set_typwin_active(&g);
+
+  owl_global_set_buffercommand(&g, line);
 }
 
@@ -250,4 +252,6 @@
   /* make it active */
   owl_global_set_typwin_active(&g);
+
+  owl_global_set_buffercommand(&g, line);
 }
 
@@ -300,4 +304,6 @@
   /* make it active */
   owl_global_set_typwin_active(&g);
+
+  owl_global_set_buffercommand(&g, line);
 }
 
@@ -1078,5 +1084,7 @@
 void owl_function_run_buffercommand()
 {
-  char *buff;
+  char *buff, *ptr;
+
+  owl_function_debugmsg("Got: %s", buff);
 
   buff=owl_global_get_buffercommand(&g);
@@ -1085,4 +1093,8 @@
   } else if (!strncmp(buff, "aimwrite ", 9)) {
     owl_function_aimwrite(buff+9);
+  } else if (!strncmp(buff, "aimlogin ", 9)) {
+    ptr=owl_sprintf("%s %s", buff, owl_global_get_response(&g));
+    owl_function_command(ptr);
+    owl_free(ptr);
   }
 }
@@ -1945,4 +1957,22 @@
 }
 
+void owl_function_start_password(char *line)
+{
+  owl_editwin *tw;
+
+  tw=owl_global_get_typwin(&g);
+  owl_global_set_typwin_active(&g);
+  owl_editwin_new_style(tw, OWL_EDITWIN_STYLE_ONELINE, owl_global_get_cmd_history(&g));
+  owl_editwin_set_echochar(tw, '*');
+
+  owl_editwin_set_locktext(tw, line);
+  owl_global_set_needrefresh(&g);
+
+  owl_editwin_redisplay(tw, 0);
+
+  owl_context_set_editresponse(owl_global_get_context(&g), tw);
+  owl_function_activate_keymap("editresponse");
+}
+
 char *owl_function_exec(int argc, char **argv, char *buff, int type)
 {
