Skip to content

Commit 62bd43f

Browse files
Large set of changes to migrate sb_out and sb_err to wcstring
1 parent 917b4ff commit 62bd43f

16 files changed

+535
-540
lines changed

builtin.cpp

+216-231
Large diffs are not rendered by default.

builtin.h

+6-2
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,16 @@ enum
9292
/**
9393
Stringbuffer used to represent standard output
9494
*/
95-
extern string_buffer_t *sb_out;
95+
//extern string_buffer_t *sb_out;
9696

9797
/**
9898
Stringbuffer used to represent standard error
9999
*/
100-
extern string_buffer_t *sb_err;
100+
//extern string_buffer_t *sb_err;
101+
102+
/** Get the string used to represent stdout and stderr */
103+
const wcstring &get_stdout_buffer();
104+
const wcstring &get_stderr_buffer();
101105

102106
/**
103107
Kludge. Tells builtins if output is to screen

builtin_commandline.cpp

+27-30
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,7 @@ static void write_part( const wchar_t *begin,
179179
}
180180
}
181181

182-
sb_append( sb_out,
183-
(wchar_t *)out.buff );
182+
stdout_buffer.append((const wchar_t *)out.buff);
184183

185184
free( buff );
186185
tok_destroy( &tok );
@@ -200,8 +199,8 @@ static void write_part( const wchar_t *begin,
200199

201200
// debug( 0, L"woot2 %ls -> %ls", buff, esc );
202201

203-
sb_append( sb_out, esc );
204-
sb_append( sb_out, L"\n" );
202+
stdout_buffer.append(esc);
203+
stdout_buffer.append(L"\n");
205204

206205
free( esc );
207206
free( buff );
@@ -255,11 +254,9 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
255254
return 1;
256255
}
257256

258-
sb_append( sb_err,
259-
argv[0],
260-
L": Can not set commandline in non-interactive mode\n",
261-
NULL );
262-
builtin_print_help( parser, argv[0], sb_err );
257+
stderr_buffer.append(argv[0]);
258+
stderr_buffer.append(L": Can not set commandline in non-interactive mode\n");
259+
builtin_print_help( parser, argv[0], stderr_buffer );
263260
return 1;
264261
}
265262

@@ -351,11 +348,11 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
351348
case 0:
352349
if(long_options[opt_index].flag != 0)
353350
break;
354-
sb_printf( sb_err,
351+
append_format( stderr_buffer,
355352
BUILTIN_ERR_UNKNOWN,
356353
argv[0],
357354
long_options[opt_index].name );
358-
builtin_print_help( parser, argv[0], sb_err );
355+
builtin_print_help( parser, argv[0], stderr_buffer );
359356

360357
return 1;
361358

@@ -418,7 +415,7 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
418415
break;
419416

420417
case 'h':
421-
builtin_print_help( parser, argv[0], sb_out );
418+
builtin_print_help( parser, argv[0], stdout_buffer );
422419
return 0;
423420

424421
case L'?':
@@ -436,22 +433,22 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
436433
*/
437434
if( buffer_part || cut_at_cursor || append_mode || tokenize || cursor_mode || line_mode || search_mode )
438435
{
439-
sb_printf(sb_err,
436+
append_format(stderr_buffer,
440437
BUILTIN_ERR_COMBO,
441438
argv[0] );
442439

443-
builtin_print_help( parser, argv[0], sb_err );
440+
builtin_print_help( parser, argv[0], stderr_buffer );
444441
return 1;
445442
}
446443

447444

448445
if( argc == woptind )
449446
{
450-
sb_printf( sb_err,
447+
append_format(stderr_buffer,
451448
BUILTIN_ERR_MISSING,
452449
argv[0] );
453450

454-
builtin_print_help( parser, argv[0], sb_err );
451+
builtin_print_help( parser, argv[0], stderr_buffer );
455452
return 1;
456453
}
457454
for( i=woptind; i<argc; i++ )
@@ -468,11 +465,11 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
468465
}
469466
else
470467
{
471-
sb_printf( sb_err,
468+
append_format(stderr_buffer,
472469
_(L"%ls: Unknown input function '%ls'\n"),
473470
argv[0],
474471
argv[i] );
475-
builtin_print_help( parser, argv[0], sb_err );
472+
builtin_print_help( parser, argv[0], stderr_buffer );
476473
return 1;
477474
}
478475
}
@@ -486,45 +483,45 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
486483
if( (search_mode || line_mode || cursor_mode) && (argc-woptind > 1) )
487484
{
488485

489-
sb_append( sb_err,
486+
append_format(stderr_buffer,
490487
argv[0],
491488
L": Too many arguments\n",
492489
NULL );
493-
builtin_print_help( parser, argv[0], sb_err );
490+
builtin_print_help( parser, argv[0], stderr_buffer );
494491
return 1;
495492
}
496493

497494
if( (buffer_part || tokenize || cut_at_cursor) && (cursor_mode || line_mode || search_mode) )
498495
{
499-
sb_printf( sb_err,
496+
append_format(stderr_buffer,
500497
BUILTIN_ERR_COMBO,
501498
argv[0] );
502499

503-
builtin_print_help( parser, argv[0], sb_err );
500+
builtin_print_help( parser, argv[0], stderr_buffer );
504501
return 1;
505502
}
506503

507504

508505
if( (tokenize || cut_at_cursor) && (argc-woptind) )
509506
{
510-
sb_printf( sb_err,
507+
append_format(stderr_buffer,
511508
BUILTIN_ERR_COMBO2,
512509
argv[0],
513510
L"--cut-at-cursor and --tokenize can not be used when setting the commandline" );
514511

515512

516-
builtin_print_help( parser, argv[0], sb_err );
513+
builtin_print_help( parser, argv[0], stderr_buffer );
517514
return 1;
518515
}
519516

520517
if( append_mode && !(argc-woptind) )
521518
{
522-
sb_printf( sb_err,
519+
append_format(stderr_buffer,
523520
BUILTIN_ERR_COMBO2,
524521
argv[0],
525522
L"insertion mode switches can not be used when not in insertion mode" );
526523

527-
builtin_print_help( parser, argv[0], sb_err );
524+
builtin_print_help( parser, argv[0], stderr_buffer );
528525
return 1;
529526
}
530527

@@ -552,11 +549,11 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
552549
new_pos = wcstol( argv[woptind], &endptr, 10 );
553550
if( *endptr || errno )
554551
{
555-
sb_printf( sb_err,
552+
append_format(stderr_buffer,
556553
BUILTIN_ERR_NOT_NUMBER,
557554
argv[0],
558555
argv[woptind] );
559-
builtin_print_help( parser, argv[0], sb_err );
556+
builtin_print_help( parser, argv[0], stderr_buffer );
560557
}
561558

562559
current_buffer = reader_get_buffer();
@@ -566,7 +563,7 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
566563
}
567564
else
568565
{
569-
sb_printf( sb_out, L"%d\n", reader_get_cursor_pos() );
566+
append_format(stdout_buffer, L"%d\n", reader_get_cursor_pos() );
570567
return 0;
571568
}
572569

@@ -576,7 +573,7 @@ static int builtin_commandline( parser_t &parser, wchar_t **argv )
576573
{
577574
int pos = reader_get_cursor_pos();
578575
const wchar_t *buff = reader_get_buffer();
579-
sb_printf( sb_out, L"%d\n", parse_util_lineno( buff, pos ) );
576+
append_format(stdout_buffer, L"%d\n", parse_util_lineno( buff, pos ) );
580577
return 0;
581578

582579
}

builtin_complete.cpp

+13-13
Original file line numberDiff line numberDiff line change
@@ -397,11 +397,11 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
397397
case 0:
398398
if(long_options[opt_index].flag != 0)
399399
break;
400-
sb_printf( sb_err,
400+
append_format(stderr_buffer,
401401
BUILTIN_ERR_UNKNOWN,
402402
argv[0],
403403
long_options[opt_index].name );
404-
builtin_print_help( parser, argv[0], sb_err );
404+
builtin_print_help( parser, argv[0], stderr_buffer );
405405

406406

407407
res = 1;
@@ -434,7 +434,7 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
434434
}
435435
else
436436
{
437-
sb_printf( sb_err, L"%ls: Invalid token '%ls'\n", argv[0], woptarg );
437+
append_format(stderr_buffer, L"%ls: Invalid token '%ls'\n", argv[0], woptarg );
438438
res = 1;
439439
}
440440
break;
@@ -481,7 +481,7 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
481481
break;
482482

483483
case 'h':
484-
builtin_print_help( parser, argv[0], sb_out );
484+
builtin_print_help( parser, argv[0], stdout_buffer );
485485
return 0;
486486

487487
case '?':
@@ -499,12 +499,12 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
499499
{
500500
if( parser.test( condition, 0, 0, 0 ) )
501501
{
502-
sb_printf( sb_err,
502+
append_format(stderr_buffer,
503503
L"%ls: Condition '%ls' contained a syntax error\n",
504504
argv[0],
505505
condition );
506506

507-
parser.test( condition, 0, sb_err, argv[0] );
507+
parser.test( condition, 0, &stderr_buffer, argv[0] );
508508

509509
res = 1;
510510
}
@@ -517,12 +517,12 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
517517
{
518518
if( parser.test_args( comp, 0, 0 ) )
519519
{
520-
sb_printf( sb_err,
520+
append_format(stderr_buffer,
521521
L"%ls: Completion '%ls' contained a syntax error\n",
522522
argv[0],
523523
comp );
524524

525-
parser.test_args( comp, sb_err, argv[0] );
525+
parser.test_args( comp, &stderr_buffer, argv[0] );
526526

527527
res = 1;
528528
}
@@ -567,11 +567,11 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
567567

568568
if( !(next.description).empty() )
569569
{
570-
sb_printf( sb_out, L"%ls%ls\t%ls\n", prepend, next.completion.c_str(), next.description.c_str() );
570+
append_format(stdout_buffer, L"%ls%ls\t%ls\n", prepend, next.completion.c_str(), next.description.c_str() );
571571
}
572572
else
573573
{
574-
sb_printf( sb_out, L"%ls%ls\n", prepend, next.completion.c_str() );
574+
append_format(stdout_buffer, L"%ls%ls\n", prepend, next.completion.c_str() );
575575
}
576576
}
577577

@@ -583,18 +583,18 @@ static int builtin_complete( parser_t &parser, wchar_t **argv )
583583
}
584584
else if( woptind != argc )
585585
{
586-
sb_printf( sb_err,
586+
append_format(stderr_buffer,
587587
_( L"%ls: Too many arguments\n" ),
588588
argv[0] );
589-
builtin_print_help( parser, argv[0], sb_err );
589+
builtin_print_help( parser, argv[0], stderr_buffer );
590590

591591
res = 1;
592592
}
593593
else if( cmd.empty() && path.empty() )
594594
{
595595
/* No arguments specified, meaning we print the definitions of
596596
* all specified completions to stdout.*/
597-
complete_print( sb_out );
597+
complete_print( stdout_buffer );
598598
}
599599
else
600600
{

0 commit comments

Comments
 (0)