Some changes to migrate towards C++ and a multithreaded model

This commit is contained in:
ridiculousfish
2011-12-26 19:18:46 -08:00
parent 3f16ace678
commit 8d2f107d61
90 changed files with 7368 additions and 5981 deletions

View File

@@ -64,10 +64,10 @@ static void read_file( FILE *f, string_buffer_t *b )
wperror(L"fgetwc");
exit(1);
}
break;
}
sb_append_char( b, c );
}
}
@@ -78,12 +78,12 @@ static void read_file( FILE *f, string_buffer_t *b )
static void insert_tabs( string_buffer_t *out, int indent )
{
int i;
for( i=0; i<indent; i++ )
{
sb_append( out, L"\t" );
}
}
/**
@@ -100,12 +100,12 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
int prev_prev_type = 0;
tok_init( &tok, in, TOK_SHOW_COMMENTS );
for( ; tok_has_next( &tok ); tok_next( &tok ) )
{
int type = tok_last_type( &tok );
wchar_t *last = tok_last( &tok );
switch( type )
{
case TOK_STRING:
@@ -116,7 +116,7 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
is_command = 0;
wchar_t *unesc = unescape( last, UNESCAPE_SPECIAL );
if( parser_keywords_is_block( unesc ) )
{
next_indent++;
@@ -135,17 +135,17 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
indent--;
next_indent--;
}
if( do_indent && flags && prev_type != TOK_PIPE )
{
insert_tabs( out, indent );
}
sb_printf( out, L"%ls", last );
indent = next_indent;
}
else
{
@@ -153,13 +153,13 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
sb_append( out, L" " );
sb_append( out, last );
}
break;
}
case TOK_END:
{
if( prev_type != TOK_END || prev_prev_type != TOK_END )
if( prev_type != TOK_END || prev_prev_type != TOK_END )
sb_append( out, L"\n" );
do_indent = 1;
is_command = 1;
@@ -174,11 +174,11 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
} else if ( last[0] != '1' || last[1] ) {
sb_append( out, last, L">" );
}
sb_append( out, L"| " );
sb_append( out, L" | " );
is_command = 1;
break;
}
case TOK_REDIRECT_OUT:
{
sb_append( out, L" " );
@@ -186,13 +186,13 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
sb_append( out, L"^" );
} else {
if ( wcscmp( last, L"1" ) != 0 )
sb_append( out, last );
sb_append( out, L">" );
sb_append( out, last );
sb_append( out, L"> " );
}
break;
break;
}
case TOK_REDIRECT_APPEND:
case TOK_REDIRECT_APPEND:
{
sb_append( out, L" " );
if ( wcscmp( last, L"2" ) == 0 ) {
@@ -200,28 +200,28 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
} else {
if ( wcscmp( last, L"1" ) != 0 )
sb_append( out, last );
sb_append( out, L">>" );
sb_append( out, L">> " );
}
break;
break;
}
case TOK_REDIRECT_IN:
case TOK_REDIRECT_IN:
{
sb_append( out, L" " );
if ( wcscmp( last, L"0" ) != 0 )
sb_append( out, last );
sb_append( out, L"<" );
break;
sb_append( out, L"< " );
break;
}
case TOK_REDIRECT_FD:
case TOK_REDIRECT_FD:
{
sb_append( out, L" " );
if ( wcscmp( last, L"1" ) != 0 )
sb_append( out, last );
sb_append( out, L">&" );
break;
}
sb_append( out, L">& " );
break;
}
case TOK_BACKGROUND:
{
@@ -230,31 +230,31 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
is_command = 1;
break;
}
case TOK_COMMENT:
{
if( do_indent && flags)
{
insert_tabs( out, indent );
}
sb_printf( out, L"%ls", last );
do_indent = 1;
break;
break;
}
default:
{
debug( 0, L"Unknown token '%ls'", last );
exit(1);
}
}
}
prev_prev_type = prev_type;
prev_type = type;
}
tok_destroy( &tok );
return res;
@@ -268,27 +268,27 @@ static int indent( string_buffer_t *out, wchar_t *in, int flags )
static wchar_t *trim( wchar_t *in )
{
wchar_t *end;
while( *in == L'\n' )
{
in++;
}
end = in + wcslen(in);
while( 1 )
{
if( end < in+2 )
break;
end--;
if( (*end == L'\n' ) && ( *(end-1) == L'\n' ) )
*end=0;
else
break;
}
return in;
}
@@ -300,9 +300,9 @@ int main( int argc, char **argv )
{
string_buffer_t sb_in;
string_buffer_t sb_out;
int do_indent=1;
wsetlocale( LC_ALL, L"" );
program_name=L"fish_indent";
@@ -312,55 +312,55 @@ int main( int argc, char **argv )
long_options[] =
{
{
"no-indent", no_argument, 0, 'i'
"no-indent", no_argument, 0, 'i'
}
,
{
"help", no_argument, 0, 'h'
"help", no_argument, 0, 'h'
}
,
{
"version", no_argument, 0, 'v'
"version", no_argument, 0, 'v'
}
,
{
0, 0, 0, 0
{
0, 0, 0, 0
}
}
;
int opt_index = 0;
int opt = getopt_long( argc,
argv,
argv,
GETOPT_STRING,
long_options,
long_options,
&opt_index );
if( opt == -1 )
break;
switch( opt )
{
case 0:
{
break;
}
case 'h':
{
print_help( "fish_indent", 1 );
exit( 0 );
exit( 0 );
break;
}
case 'v':
{
fwprintf( stderr,
_(L"%ls, version %s\n"),
fwprintf( stderr,
_(L"%ls, version %s\n"),
program_name,
PACKAGE_VERSION );
exit( 0 );
exit( 0 );
}
case 'i':
@@ -368,23 +368,23 @@ int main( int argc, char **argv )
do_indent = 0;
break;
}
case '?':
{
exit( 1 );
}
}
}
}
halloc_util_init();
halloc_util_init();
sb_init( &sb_in );
sb_init( &sb_out );
read_file( stdin, &sb_in );
wutil_init();
if( !indent( &sb_out, (wchar_t *)sb_in.buff, do_indent ) )
@@ -398,7 +398,7 @@ int main( int argc, char **argv )
*/
fwprintf( stdout, L"%ls", (wchar_t *)sb_in.buff );
}
wutil_destroy();