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

Commit4a8bbbd

Browse files
committed
Add numeric separator support for latex and troff output methods.
1 parent75c76e9 commit4a8bbbd

File tree

1 file changed

+67
-19
lines changed

1 file changed

+67
-19
lines changed

‎src/bin/psql/print.c

Lines changed: 67 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Copyright (c) 2000-2005, PostgreSQL Global Development Group
55
*
6-
* $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.65 2005/07/1406:49:58 momjian Exp $
6+
* $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.66 2005/07/1407:32:01 momjian Exp $
77
*/
88
#include"postgres_fe.h"
99
#include"common.h"
@@ -37,7 +37,7 @@ pg_local_malloc(size_t size)
3737
tmp=malloc(size);
3838
if (!tmp)
3939
{
40-
psql_error("out of memory\n");
40+
fprintf(stderr,_("out of memory\n"));
4141
exit(EXIT_FAILURE);
4242
}
4343
returntmp;
@@ -999,7 +999,8 @@ static void
999999
print_latex_text(constchar*title,constchar*const*headers,
10001000
constchar*const*cells,constchar*const*footers,
10011001
constchar*opt_align,boolopt_tuples_only,
1002-
unsigned shortintopt_border,FILE*fout)
1002+
char*opt_numericsep,unsigned shortintopt_border,
1003+
FILE*fout)
10031004
{
10041005
unsignedintcol_count=0;
10051006
unsignedinti;
@@ -1059,7 +1060,18 @@ print_latex_text(const char *title, const char *const *headers,
10591060
/* print cells */
10601061
for (i=0,ptr=cells;*ptr;i++,ptr++)
10611062
{
1062-
latex_escaped_print(*ptr,fout);
1063+
if (strlen(*ptr)!=0&&
1064+
opt_numericsep!=NULL&&strlen(opt_numericsep)>0)
1065+
{
1066+
char*my_cell=pg_local_malloc(len_with_numericsep(*ptr)+1);
1067+
1068+
strcpy(my_cell,*ptr);
1069+
format_numericsep(my_cell,opt_numericsep);
1070+
latex_escaped_print(my_cell,fout);
1071+
free(my_cell);
1072+
}
1073+
else
1074+
latex_escaped_print(*ptr,fout);
10631075

10641076
if ((i+1) %col_count==0)
10651077
fputs(" \\\\\n",fout);
@@ -1091,7 +1103,8 @@ static void
10911103
print_latex_vertical(constchar*title,constchar*const*headers,
10921104
constchar*const*cells,constchar*const*footers,
10931105
constchar*opt_align,boolopt_tuples_only,
1094-
unsigned shortintopt_border,FILE*fout)
1106+
char*opt_numericsep,unsigned shortintopt_border,
1107+
FILE*fout)
10951108
{
10961109
unsignedintcol_count=0;
10971110
unsignedinti;
@@ -1161,7 +1174,18 @@ print_latex_vertical(const char *title, const char *const *headers,
11611174
if (footers&& !opt_tuples_only)
11621175
for (ptr=footers;*ptr;ptr++)
11631176
{
1164-
latex_escaped_print(*ptr,fout);
1177+
if (strlen(*ptr)!=0&&
1178+
opt_numericsep!=NULL&&strlen(opt_numericsep)>0)
1179+
{
1180+
char*my_cell=pg_local_malloc(len_with_numericsep(*ptr)+1);
1181+
1182+
strcpy(my_cell,*ptr);
1183+
format_numericsep(my_cell,opt_numericsep);
1184+
latex_escaped_print(my_cell,fout);
1185+
free(my_cell);
1186+
}
1187+
else
1188+
latex_escaped_print(*ptr,fout);
11651189
fputs(" \\\\\n",fout);
11661190
}
11671191

@@ -1197,7 +1221,8 @@ static void
11971221
print_troff_ms_text(constchar*title,constchar*const*headers,
11981222
constchar*const*cells,constchar*const*footers,
11991223
constchar*opt_align,boolopt_tuples_only,
1200-
unsigned shortintopt_border,FILE*fout)
1224+
char*opt_numericsep,unsigned shortintopt_border,
1225+
FILE*fout)
12011226
{
12021227
unsignedintcol_count=0;
12031228
unsignedinti;
@@ -1245,14 +1270,23 @@ print_troff_ms_text(const char *title, const char *const *headers,
12451270
}
12461271

12471272
if (!opt_tuples_only)
1248-
{
12491273
fputs("\n_\n",fout);
1250-
}
12511274

12521275
/* print cells */
12531276
for (i=0,ptr=cells;*ptr;i++,ptr++)
12541277
{
1255-
troff_ms_escaped_print(*ptr,fout);
1278+
if (strlen(*ptr)!=0&&
1279+
opt_numericsep!=NULL&&strlen(opt_numericsep)>0)
1280+
{
1281+
char*my_cell=pg_local_malloc(len_with_numericsep(*ptr)+1);
1282+
1283+
strcpy(my_cell,*ptr);
1284+
format_numericsep(my_cell,opt_numericsep);
1285+
troff_ms_escaped_print(my_cell,fout);
1286+
free(my_cell);
1287+
}
1288+
else
1289+
troff_ms_escaped_print(*ptr,fout);
12561290

12571291
if ((i+1) %col_count==0)
12581292
fputc('\n',fout);
@@ -1281,7 +1315,8 @@ static void
12811315
print_troff_ms_vertical(constchar*title,constchar*const*headers,
12821316
constchar*const*cells,constchar*const*footers,
12831317
constchar*opt_align,boolopt_tuples_only,
1284-
unsigned shortintopt_border,FILE*fout)
1318+
char*opt_numericsep,unsigned shortintopt_border,
1319+
FILE*fout)
12851320
{
12861321
unsignedintcol_count=0;
12871322
unsignedinti;
@@ -1324,7 +1359,6 @@ print_troff_ms_vertical(const char *title, const char *const *headers,
13241359
{
13251360
if (!opt_tuples_only)
13261361
{
1327-
13281362
if (current_format!=1)
13291363
{
13301364
if (opt_border==2&&i>0)
@@ -1356,7 +1390,19 @@ print_troff_ms_vertical(const char *title, const char *const *headers,
13561390

13571391
troff_ms_escaped_print(headers[i %col_count],fout);
13581392
fputc('\t',fout);
1359-
troff_ms_escaped_print(*ptr,fout);
1393+
if (strlen(*ptr)!=0&&
1394+
opt_numericsep!=NULL&&strlen(opt_numericsep)>0)
1395+
{
1396+
char*my_cell=pg_local_malloc(len_with_numericsep(*ptr)+1);
1397+
1398+
strcpy(my_cell,*ptr);
1399+
format_numericsep(my_cell,opt_numericsep);
1400+
troff_ms_escaped_print(my_cell,fout);
1401+
free(my_cell);
1402+
}
1403+
else
1404+
troff_ms_escaped_print(*ptr,fout);
1405+
13601406
fputc('\n',fout);
13611407
}
13621408

@@ -1529,19 +1575,21 @@ printTable(const char *title,
15291575
casePRINT_LATEX:
15301576
if (use_expanded)
15311577
print_latex_vertical(title,headers,cells,footers,align,
1532-
opt->tuples_only,border,output);
1578+
opt->tuples_only,opt->numericSep,
1579+
border,output);
15331580
else
15341581
print_latex_text(title,headers,cells,footers,align,
1535-
opt->tuples_only,border,output);
1582+
opt->tuples_only,opt->numericSep,
1583+
border,output);
15361584
break;
15371585
casePRINT_TROFF_MS:
15381586
if (use_expanded)
1539-
print_troff_ms_vertical(title,headers,cells,footers,
1540-
align,opt->tuples_only,
1587+
print_troff_ms_vertical(title,headers,cells,footers,align,
1588+
opt->tuples_only,opt->numericSep,
15411589
border,output);
15421590
else
1543-
print_troff_ms_text(title,headers,cells,footers,
1544-
align,opt->tuples_only,
1591+
print_troff_ms_text(title,headers,cells,footers,align,
1592+
opt->tuples_only,opt->numericSep,
15451593
border,output);
15461594
break;
15471595
default:

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp