--- mysql.cc.orig	Thu Jul 15 12:14:01 2004
+++ mysql.cc	Thu Jul 15 12:47:16 2004
@@ -177,7 +177,8 @@
 	   com_use(String *str,char*), com_source(String *str, char*),
 	   com_rehash(String *str, char*), com_tee(String *str, char*),
            com_notee(String *str, char*),
-           com_prompt(String *str, char*);
+           com_prompt(String *str, char*),
+           com_ls(String *str, char*);
 
 #ifdef USE_POPEN
 static int com_nopager(String *str, char*), com_pager(String *str, char*),
@@ -212,6 +213,7 @@
 static COMMANDS commands[] = {
   { "help",   'h', com_help,   0, "Display this help." },
   { "?",      '?', com_help,   0, "Synonym for `help'." },
+  { "cd",     'C', com_use,    1, "Synonym for `use'." },
   { "clear",  'c', com_clear,  0, "Clear command."},
   { "connect",'r', com_connect,1,
     "Reconnect to the server. Optional arguments are db and host." },
@@ -222,6 +224,7 @@
     "Send command to mysql server, display result vertically."},
   { "exit",   'q', com_quit,   0, "Exit mysql. Same as quit."},
   { "go",     'g', com_go,     0, "Send command to mysql server." },
+  { "ls",     'l', com_ls,     0, "List databases or tables." },
 #ifdef USE_POPEN
   { "nopager",'n', com_nopager,0, "Disable pager, print to stdout." },
 #endif
@@ -2247,6 +2250,25 @@
   return 0;
 }
 
+static int
+com_ls(String *buffer __attribute__((unused)), char *line)
+{
+
+  if (!connected && reconnect())
+    return status.batch ? 1 : -1;
+
+  if (!current_db)
+  {
+    buffer->set("SHOW DATABASES", 14);
+    com_go(buffer, 0);
+  }
+  else
+  {
+    buffer->set("SHOW TABLES", 11);
+    com_go(buffer, 0);
+  }
+  return 0;
+}
 
 static int
 sql_real_connect(char *host,char *database,char *user,char *password,
