Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf82e2ba

Browse files
committed
Use a proper enum for tri-valued variables.
1 parent59b89e9 commitf82e2ba

File tree

1 file changed

+48
-53
lines changed

1 file changed

+48
-53
lines changed

‎src/bin/scripts/createuser.c

Lines changed: 48 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
66
* Portions Copyright (c) 1994, Regents of the University of California
77
*
8-
* $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.22 2005/12/12 15:41:52 momjian Exp $
8+
* $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.23 2005/12/12 15:48:04 momjian Exp $
99
*
1010
*-------------------------------------------------------------------------
1111
*/
@@ -17,6 +17,11 @@
1717

1818
staticvoidhelp(constchar*progname);
1919

20+
enumtrivalue {
21+
TRI_DEFAULT,
22+
TRI_NO,
23+
TRI_YES
24+
};
2025

2126
int
2227
main(intargc,char*argv[])
@@ -51,7 +56,6 @@ main(int argc, char *argv[])
5156
constchar*progname;
5257
intoptindex;
5358
intc;
54-
5559
char*newuser=NULL;
5660
char*host=NULL;
5761
char*port=NULL;
@@ -62,16 +66,13 @@ main(int argc, char *argv[])
6266
char*conn_limit=NULL;
6367
boolpwprompt= false;
6468
char*newpassword=NULL;
65-
/*
66-
*Tri-valued variables. -1 is "NO", +1 is enable and 0 uses the
67-
*server default.
68-
*/
69-
intcreatedb=0;
70-
intsuperuser=0;
71-
intcreaterole=0;
72-
intinherit=0;
73-
intlogin=0;
74-
intencrypted=0;
69+
/*Tri-valued variables. */
70+
enumtrivaluecreatedb=TRI_DEFAULT,
71+
superuser=TRI_DEFAULT,
72+
createrole=TRI_DEFAULT,
73+
inherit=TRI_DEFAULT,
74+
login=TRI_DEFAULT,
75+
encrypted=TRI_DEFAULT;
7576

7677
PQExpBufferDatasql;
7778

@@ -107,36 +108,36 @@ main(int argc, char *argv[])
107108
quiet= true;
108109
break;
109110
case'd':
110-
createdb=+1;
111+
createdb=TRI_YES;
111112
break;
112113
case'D':
113-
createdb=-1;
114+
createdb=TRI_NO;
114115
break;
115116
case's':
116117
case'a':
117-
superuser=+1;
118+
superuser=TRI_YES;
118119
break;
119120
case'S':
120121
case'A':
121-
superuser=-1;
122+
superuser=TRI_NO;
122123
break;
123124
case'r':
124-
createrole=+1;
125+
createrole=TRI_YES;
125126
break;
126127
case'R':
127-
createrole=-1;
128+
createrole=TRI_NO;
128129
break;
129130
case'i':
130-
inherit=+1;
131+
inherit=TRI_YES;
131132
break;
132133
case'I':
133-
inherit=-1;
134+
inherit=TRI_NO;
134135
break;
135136
case'l':
136-
login=+1;
137+
login=TRI_YES;
137138
break;
138139
case'L':
139-
login=-1;
140+
login=TRI_NO;
140141
break;
141142
case'c':
142143
conn_limit=optarg;
@@ -145,10 +146,10 @@ main(int argc, char *argv[])
145146
pwprompt= true;
146147
break;
147148
case'E':
148-
encrypted=+1;
149+
encrypted=TRI_YES;
149150
break;
150151
case'N':
151-
encrypted=-1;
152+
encrypted=TRI_NO;
152153
break;
153154
default:
154155
fprintf(stderr,_("Try \"%s --help\" for more information.\n"),progname);
@@ -195,16 +196,16 @@ main(int argc, char *argv[])
195196

196197
reply=simple_prompt("Shall the new role be a superuser? (y/n) ",1, true);
197198
if (check_yesno_response(reply)==1)
198-
superuser=+1;
199+
superuser=TRI_YES;
199200
else
200-
superuser=-1;
201+
superuser=TRI_NO;
201202
}
202203

203-
if (superuser==+1)
204+
if (superuser==TRI_YES)
204205
{
205206
/* Not much point in trying to restrict a superuser */
206-
createdb=+1;
207-
createrole=+1;
207+
createdb=TRI_YES;
208+
createrole=TRI_YES;
208209
}
209210

210211
if (createdb==0)
@@ -213,9 +214,9 @@ main(int argc, char *argv[])
213214

214215
reply=simple_prompt("Shall the new role be allowed to create databases? (y/n) ",1, true);
215216
if (check_yesno_response(reply)==1)
216-
createdb=+1;
217+
createdb=TRI_YES;
217218
else
218-
createdb=-1;
219+
createdb=TRI_NO;
219220
}
220221

221222
if (createrole==0)
@@ -224,54 +225,48 @@ main(int argc, char *argv[])
224225

225226
reply=simple_prompt("Shall the new role be allowed to create more new roles? (y/n) ",1, true);
226227
if (check_yesno_response(reply)==1)
227-
createrole=+1;
228+
createrole=TRI_YES;
228229
else
229-
createrole=-1;
230+
createrole=TRI_NO;
230231
}
231232

232233
if (inherit==0)
233-
{
234-
/* silently default to YES */
235-
inherit=+1;
236-
}
234+
inherit=TRI_YES;
237235

238236
if (login==0)
239-
{
240-
/* silently default to YES */
241-
login=+1;
242-
}
237+
login=TRI_YES;
243238

244239
initPQExpBuffer(&sql);
245240

246241
printfPQExpBuffer(&sql,"CREATE ROLE %s",fmtId(newuser));
247242
if (newpassword)
248243
{
249-
if (encrypted==+1)
244+
if (encrypted==TRI_YES)
250245
appendPQExpBuffer(&sql," ENCRYPTED");
251-
if (encrypted==-1)
246+
if (encrypted==TRI_NO)
252247
appendPQExpBuffer(&sql," UNENCRYPTED");
253248
appendPQExpBuffer(&sql," PASSWORD ");
254249
appendStringLiteral(&sql,newpassword, false);
255250
}
256-
if (superuser==+1)
251+
if (superuser==TRI_YES)
257252
appendPQExpBuffer(&sql," SUPERUSER");
258-
if (superuser==-1)
253+
if (superuser==TRI_NO)
259254
appendPQExpBuffer(&sql," NOSUPERUSER");
260-
if (createdb==+1)
255+
if (createdb==TRI_YES)
261256
appendPQExpBuffer(&sql," CREATEDB");
262-
if (createdb==-1)
257+
if (createdb==TRI_NO)
263258
appendPQExpBuffer(&sql," NOCREATEDB");
264-
if (createrole==+1)
259+
if (createrole==TRI_YES)
265260
appendPQExpBuffer(&sql," CREATEROLE");
266-
if (createrole==-1)
261+
if (createrole==TRI_NO)
267262
appendPQExpBuffer(&sql," NOCREATEROLE");
268-
if (inherit==+1)
263+
if (inherit==TRI_YES)
269264
appendPQExpBuffer(&sql," INHERIT");
270-
if (inherit==-1)
265+
if (inherit==TRI_NO)
271266
appendPQExpBuffer(&sql," NOINHERIT");
272-
if (login==+1)
267+
if (login==TRI_YES)
273268
appendPQExpBuffer(&sql," LOGIN");
274-
if (login==-1)
269+
if (login==TRI_NO)
275270
appendPQExpBuffer(&sql," NOLOGIN");
276271
if (conn_limit!=NULL)
277272
appendPQExpBuffer(&sql," CONNECTION LIMIT %s",conn_limit);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp