Definition at line 69 of file prompt.c.
70{
71#define MAX_PROMPT_SIZE 256
75 const char *p;
78
79 switch (status)
80 {
83 break;
84
92 break;
93
96 break;
97 }
98
100
103 p++)
104 {
107 {
108 switch (*p)
109 {
110
111 case '/':
114 break;
115 case '~':
117 {
118 const char *var;
119
123 else
125 }
126 break;
127
128
129 case 'w':
133 break;
134
135
136 case 'M':
137 case 'm':
139 {
141
142
144 {
146 if (*p == 'm')
148 }
149
150 else
151 {
152 if (!host
154 || *p == 'm')
156 else
158 }
159 }
160 break;
161
162 case '>':
165 break;
166
167 case 'n':
170 break;
171
172 case 'S':
174 {
176
177
179 }
180 break;
181
182 case 's':
183 {
185
188 }
189 break;
190
191 case 'p':
193 {
195
196 if (pid)
198 }
199 break;
200
201 case 'P':
203 {
205
210 else
212 }
213 break;
214 case '0':
215 case '1':
216 case '2':
217 case '3':
218 case '4':
219 case '5':
220 case '6':
221 case '7':
223 --p;
224 break;
225 case 'R':
226 switch (status)
227 {
235 else
237 break;
240 break;
243 break;
246 break;
249 break;
252 break;
255 break;
256 default:
258 break;
259 }
260 break;
261
262 case 'x':
265 else
267 {
270 break;
274 break;
277 break;
278 default:
280 break;
281 }
282 break;
283
284 case 'l':
286 break;
287
288 case '?':
289
290 break;
291
292 case '#':
295 else
297 break;
298
299
300 case '`':
301 {
305
309 {
313 }
314
315
317
320 break;
321 }
322
323
324 case ':':
325 {
329
335 break;
336 }
337
338 case '[':
339 case ']':
340#if defined(USE_READLINE) && defined(RL_PROMPT_START_IGNORE)
341
342
343
344
345
346
349#endif
350 break;
351
352 default:
355 break;
356 }
358 }
359 else if (*p == '%')
361 else
362 {
366 }
367
370 }
371
372
374 {
376 char *end = p +
strlen(p);
377 bool visible = true;
378
380 while (*p)
381 {
382#if defined(USE_READLINE) && defined(RL_PROMPT_START_IGNORE)
384 {
385 visible = false;
386 ++p;
387 }
389 {
390 visible = true;
391 ++p;
392 }
393 else
394#endif
395 {
398
401 break;
402
403 if (visible)
404 {
406
407 if (*p == '\n')
411 }
412
414 }
415 }
416 }
417
419}
const char * session_username(void)
#define unconstify(underlying_type, expr)
bool conditional_active(ConditionalStack cstack)
char * PQdb(const PGconn *conn)
char * PQport(const PGconn *conn)
PGTransactionStatusType PQtransactionStatus(const PGconn *conn)
char * PQhost(const PGconn *conn)
const char * PQparameterStatus(const PGconn *conn, const char *paramName)
int PQbackendPID(const PGconn *conn)
char * PQuser(const PGconn *conn)
PGpipelineStatus PQpipelineStatus(const PGconn *conn)
int PQmblen(const char *s, int encoding)
int PQdsplen(const char *s, int encoding)
char * pnstrdup(const char *in, Size len)
#define DEFAULT_PGSOCKET_DIR
static char buf[DEFAULT_XLOG_SEG_SIZE]
size_t strlcat(char *dst, const char *src, size_t siz)
size_t strlcpy(char *dst, const char *src, size_t siz)
static bool is_unixsock_path(const char *path)
static int fd(const char *x, int i)
int pg_strip_crlf(char *str)
const char * GetVariable(VariableSpace space, const char *name)
References buf, conditional_active(), _psqlSettings::db, DEFAULT_PGSOCKET_DIR, _psqlSettings::encoding, fb(), fd(), free, GetVariable(), is_superuser(), is_unixsock_path(), MAX_PROMPT_SIZE, Min, name, pg_strip_crlf(), pnstrdup(), PQ_PIPELINE_ABORTED, PQ_PIPELINE_ON, PQbackendPID(), PQdb(), PQdsplen(), PQhost(), PQmblen(), PQparameterStatus(), PQpipelineStatus(), PQport(), PQTRANS_ACTIVE, PQTRANS_IDLE, PQTRANS_INERROR, PQTRANS_INTRANS, PQtransactionStatus(), PQuser(), _psqlSettings::prompt1, _psqlSettings::prompt2, _psqlSettings::prompt3, PROMPT_COMMENT, PROMPT_CONTINUE, PROMPT_COPY, PROMPT_DOLLARQUOTE, PROMPT_DOUBLEQUOTE, PROMPT_PAREN, PROMPT_READY, PROMPT_SINGLEQUOTE, pset, session_username(), _psqlSettings::singleline, snprintf, _psqlSettings::stmt_lineno, strlcat(), strlcpy(), UINT64_FORMAT, unconstify, val, and _psqlSettings::vars.
Referenced by handleCopyIn(), and MainLoop().