mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
Fix backslash commands broken when \connect user added.
This commit is contained in:
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* assuming it's not a one-character command. If it's a one-character
|
||||||
* command, this is meaningless.
|
* 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;
|
char *cmd;
|
||||||
/*
|
/*
|
||||||
* String: value of the slash command, less the slash and with escape
|
* String: value of the slash command, less the slash and with escape
|
||||||
* sequences decoded.
|
* sequences decoded.
|
||||||
*/
|
*/
|
||||||
int blank_loc;
|
int blank_loc;
|
||||||
int blank_loc2;
|
|
||||||
/* Offset within <cmd> of first blank */
|
/* Offset within <cmd> of first blank */
|
||||||
|
|
||||||
cmd = malloc(strlen(line)); /* unescaping better not make string grow. */
|
cmd = malloc(strlen(line)); /* unescaping better not make string grow. */
|
||||||
@ -1089,19 +1082,10 @@ HandleSlashCmds(PsqlSettings * settings,
|
|||||||
optarg = NULL;
|
optarg = NULL;
|
||||||
|
|
||||||
blank_loc = strcspn(cmd, " \t");
|
blank_loc = strcspn(cmd, " \t");
|
||||||
if (blank_loc == 0) {
|
if (blank_loc == 0)
|
||||||
optarg2 = NULL;
|
optarg2 = NULL;
|
||||||
optarg3 = NULL;
|
else
|
||||||
} else {
|
|
||||||
optarg2 = cmd + blank_loc + strspn(cmd + blank_loc, " \t");
|
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]) {
|
switch (cmd[0]) {
|
||||||
case 'a': /* toggles to align fields on output */
|
case 'a': /* toggles to align fields on output */
|
||||||
@ -1124,8 +1108,20 @@ HandleSlashCmds(PsqlSettings * settings,
|
|||||||
case 'c':{
|
case 'c':{
|
||||||
if (strncmp(cmd, "copy ", strlen("copy ")) == 0)
|
if (strncmp(cmd, "copy ", strlen("copy ")) == 0)
|
||||||
do_copy(optarg2, settings);
|
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);
|
do_connect(optarg2, optarg3, settings);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
do_connect(optarg, optarg2, settings);
|
do_connect(optarg, optarg2, settings);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* 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>];"},
|
"update <class_name> set <attr1>=<expr1>,...<attrN>=<exprN> [from <from_clause>] [where <qual>];"},
|
||||||
{ "vacuum",
|
{ "vacuum",
|
||||||
"vacuum the database, i.e. cleans out deleted records, updates statistics",
|
"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! */
|
{ NULL, NULL, NULL} /* important to keep a NULL terminator here! */
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user