mirror of
https://github.com/postgres/postgres.git
synced 2025-12-12 02:37:31 +03:00
Allow psql multi-line column values to align in the proper columns
If the second output column value is 'a\nb', the 'b' should appear in the second display column, rather than the first column as it does now. Change libpq's PQdsplen() to return more useful values. > Note: this changes the PQdsplen function, it can now return zero or > minus one which was not possible before. It doesn't appear anyone is > actually using the functions other than psql but it is a change. The > functions are not actually documentated anywhere so it's not like we're > breaking a defined interface. The new semantics follow the Unicode > standard. BACKWARD COMPATIBLE CHANGE. The only user-visible change I saw in the regression tests is that a SELECT * on a table where all the columns have been dropped doesn't return a blank line like before. This seems like a step forward. Martijn van Oosterhout
This commit is contained in:
@@ -1,11 +1,18 @@
|
||||
/* $PostgreSQL: pgsql/src/bin/psql/mbprint.h,v 1.8 2005/09/24 17:53:27 tgl Exp $ */
|
||||
/* $PostgreSQL: pgsql/src/bin/psql/mbprint.h,v 1.9 2006/02/10 00:39:04 momjian Exp $ */
|
||||
#ifndef MBPRINT_H
|
||||
#define MBPRINT_H
|
||||
|
||||
#include "mb/pg_wchar.h"
|
||||
|
||||
extern char *mbvalidate(char *pwcs, int encoding);
|
||||
struct lineptr {
|
||||
unsigned char *ptr;
|
||||
int width;
|
||||
};
|
||||
|
||||
extern int pg_wcswidth(const char *pwcs, size_t len, int encoding);
|
||||
extern unsigned char *mbvalidate(unsigned char *pwcs, int encoding);
|
||||
|
||||
extern int pg_wcswidth(const unsigned char *pwcs, size_t len, int encoding);
|
||||
extern void pg_wcsformat(unsigned char *pwcs, size_t len, int encoding, struct lineptr *lines, int count);
|
||||
extern int pg_wcssize(unsigned char *pwcs, size_t len, int encoding, int *width, int *height, int *format_size);
|
||||
|
||||
#endif /* MBPRINT_H */
|
||||
|
||||
Reference in New Issue
Block a user