From 65ff0feacf98c4b7096a3c5df4dd6efd4ffe5fa2 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Thu, 22 May 1997 18:55:40 +0000 Subject: [PATCH] Fix backslash commands broken when \connect user added. --- src/bin/psql/psql.c | 36 ++++++++++++++++-------------------- src/bin/psql/psqlHelp.h | 4 ++-- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c index 4ff3d59cbdf..6f62b57ccea 100644 --- a/src/bin/psql/psql.c +++ b/src/bin/psql/psql.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.60 1997/05/21 03:12:02 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.61 1997/05/22 18:55:35 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1055,19 +1055,12 @@ HandleSlashCmds(PsqlSettings * settings, * assuming it's not a one-character command. If it's a one-character * command, this is meaningless. */ - char *optarg3; - /* - * Pointer inside the second <cmd> string to the argument of the slash command - * assuming it's not a one-character command. If it's a one-character - * command, this is meaningless. - */ char *cmd; /* * String: value of the slash command, less the slash and with escape * sequences decoded. */ int blank_loc; - int blank_loc2; /* Offset within <cmd> of first blank */ cmd = malloc(strlen(line)); /* unescaping better not make string grow. */ @@ -1089,19 +1082,10 @@ HandleSlashCmds(PsqlSettings * settings, optarg = NULL; blank_loc = strcspn(cmd, " \t"); - if (blank_loc == 0) { + if (blank_loc == 0) optarg2 = NULL; - optarg3 = NULL; - } else { + else optarg2 = cmd + blank_loc + strspn(cmd + blank_loc, " \t"); - blank_loc2 = strcspn(optarg2, " \t"); - if (blank_loc2 == 0 || *(optarg2 + blank_loc2) == '\0') - optarg3 = NULL; - else { - optarg3 = optarg2 + blank_loc2 + strspn(optarg2 + blank_loc2, " \t"); - *(optarg2 + blank_loc2) = '\0'; - } - } switch (cmd[0]) { case 'a': /* toggles to align fields on output */ @@ -1124,8 +1108,20 @@ HandleSlashCmds(PsqlSettings * settings, case 'c':{ if (strncmp(cmd, "copy ", strlen("copy ")) == 0) do_copy(optarg2, settings); - else if (strncmp(cmd, "connect ", strlen("connect ")) == 0) + else if (strncmp(cmd, "connect ", strlen("connect ")) == 0) { + char *optarg3; + int blank_loc2; + + blank_loc2 = strcspn(optarg2, " \t"); + if (blank_loc2 == 0 || *(optarg2 + blank_loc2) == '\0') + optarg3 = NULL; + else { + optarg3 = optarg2 + blank_loc2 + + strspn(optarg2 + blank_loc2, " \t"); + *(optarg2 + blank_loc2) = '\0'; + } do_connect(optarg2, optarg3, settings); + } else do_connect(optarg, optarg2, settings); } diff --git a/src/bin/psql/psqlHelp.h b/src/bin/psql/psqlHelp.h index 294c79b4167..b41f5a08787 100644 --- a/src/bin/psql/psqlHelp.h +++ b/src/bin/psql/psqlHelp.h @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: psqlHelp.h,v 1.13 1997/05/17 06:16:34 thomas Exp $ + * $Id: psqlHelp.h,v 1.14 1997/05/22 18:55:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -175,6 +175,6 @@ static struct _helpStruct QL_HELP[] = { "update <class_name> set <attr1>=<expr1>,...<attrN>=<exprN> [from <from_clause>] [where <qual>];"}, { "vacuum", "vacuum the database, i.e. cleans out deleted records, updates statistics", - "vacuum [verbose] [analyze]\n\tor\nvacuum [verbose] table [analyze [(attr1, ... attrN)] ];"}, + "vacuum [verbose] [analyze]\n\tor\nvacuum [verbose] [analyze] table [analyze [(attr1, ... attrN)] ];"}, { NULL, NULL, NULL} /* important to keep a NULL terminator here! */ }; -- GitLab