diff options
author | 2010-11-12 02:07:14 +1100 | |
---|---|---|
committer | 2010-11-12 02:07:14 +1100 | |
commit | 1b0ce336693243054580e07b4514c598257d4422 (patch) | |
tree | 71af04f124f2853c0018e3c7d85e942591658910 /fish.c | |
parent | 0cf2a1eb3382a6384b61a6edd577d387b9b62766 (diff) | |
parent | b9b6e867df9718ec17d36f8cd6771cd9a337c46b (diff) |
Merged changes from codemonkey and grissiom branches
Conflicts:
kill.c
seq.in
Diffstat (limited to 'fish.c')
-rw-r--r-- | fish.c | 136 |
1 files changed, 68 insertions, 68 deletions
@@ -80,7 +80,7 @@ static int read_init() eval( L"builtin . " DATADIR "/fish/config.fish 2>/dev/null", 0, TOP ); eval( L"builtin . " SYSCONFDIR L"/fish/config.fish 2>/dev/null", 0, TOP ); - + /* We need to get the configuration directory before we can source the user configuration file */ @@ -99,9 +99,9 @@ static int read_init() eval( (wchar_t *)eval_buff->buff, 0, TOP ); free( config_dir_escaped ); } - + halloc_free( context ); - + return 1; } @@ -114,83 +114,83 @@ static int fish_parse_opt( int argc, char **argv, char **cmd_ptr ) { int my_optind; int force_interactive=0; - + while( 1 ) { static struct option long_options[] = { { - "command", required_argument, 0, 'c' + "command", required_argument, 0, 'c' } , { - "debug-level", required_argument, 0, 'd' + "debug-level", required_argument, 0, 'd' } , { - "interactive", no_argument, 0, 'i' + "interactive", no_argument, 0, 'i' } , { - "login", no_argument, 0, 'l' + "login", no_argument, 0, 'l' } , { - "no-execute", no_argument, 0, 'n' + "no-execute", no_argument, 0, 'n' } , { - "profile", required_argument, 0, 'p' + "profile", required_argument, 0, 'p' } , { - "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 'c': + + case 'c': { - *cmd_ptr = optarg; + *cmd_ptr = optarg; is_interactive_session = 0; break; } - - case 'd': + + case 'd': { char *end; int tmp; errno = 0; tmp = strtol(optarg, &end, 10); - + if( tmp >= 0 && tmp <=10 && !*end && !errno ) { debug_level=tmp; @@ -202,65 +202,65 @@ static int fish_parse_opt( int argc, char **argv, char **cmd_ptr ) } break; } - + case 'h': { *cmd_ptr = "__fish_print_help fish"; break; } - + case 'i': { force_interactive = 1; - break; + break; } - + case 'l': { is_login=1; - break; + break; } - + case 'n': { no_exec=1; - break; + break; } - + case 'p': { profile = optarg; - break; + break; } - + case 'v': { - fwprintf( stderr, - _(L"%s, version %s\n"), + fwprintf( stderr, + _(L"%s, version %s\n"), PACKAGE_NAME, PACKAGE_VERSION ); - exit( 0 ); + exit( 0 ); } - + case '?': { exit( 1 ); } - - } + + } } my_optind = optind; - + is_login |= (strcmp( argv[0], "-fish") == 0); - + /* We are an interactive session if we have not been given an explicit command to execute, _and_ stdin is a tty. */ is_interactive_session &= (*cmd_ptr == 0); is_interactive_session &= (my_optind == argc); - is_interactive_session &= isatty(STDIN_FILENO); + is_interactive_session &= isatty(STDIN_FILENO); /* We are also an interactive session if we have are forced- @@ -282,7 +282,7 @@ int main( int argc, char **argv ) char *cmd=0; int my_optind=0; - halloc_util_init(); + halloc_util_init(); wsetlocale( LC_ALL, L"" ); is_interactive_session=1; @@ -299,9 +299,9 @@ int main( int argc, char **argv ) debug( 1, _(L"Can not use the no-execute mode when running an interactive session") ); no_exec = 0; } - - proc_init(); - event_init(); + + proc_init(); + event_init(); wutil_init(); parser_init(); builtin_init(); @@ -323,28 +323,28 @@ int main( int argc, char **argv ) { if( my_optind == argc ) { - res = reader_read( 0, 0 ); + res = reader_read( STDIN_FILENO, 0 ); } else { - char **ptr; - char *file = *(argv+1); - int i; + char **ptr; + char *file = *(argv+(my_optind++)); + int i; string_buffer_t sb; int fd; wchar_t *rel_filename, *abs_filename; - + if( ( fd = open(file, O_RDONLY) ) == -1 ) { wperror( L"open" ); return 1; } - if( *(argv+2)) + if( *(argv+my_optind)) { sb_init( &sb ); - - for( i=1,ptr = argv+2; *ptr; i++, ptr++ ) + + for( i=1,ptr = argv+my_optind; *ptr; i++, ptr++ ) { if( i != 1 ) sb_append( &sb, ARRAY_SEP_STR ); @@ -352,7 +352,7 @@ int main( int argc, char **argv ) sb_append( &sb, val ); free( val ); } - + env_set( L"argv", (wchar_t *)sb.buff, 0 ); sb_destroy( &sb ); } @@ -373,17 +373,17 @@ int main( int argc, char **argv ) if( res ) { - debug( 1, - _(L"Error while reading file %ls\n"), + debug( 1, + _(L"Error while reading file %ls\n"), reader_current_filename()?reader_current_filename(): _(L"Standard input") ); - } + } reader_pop_current_filename(); } } } - + proc_fire_event( L"PROCESS_EXIT", EVENT_EXIT, getpid(), res ); - + history_destroy(); proc_destroy(); builtin_destroy(); @@ -392,12 +392,12 @@ int main( int argc, char **argv ) parser_destroy(); wutil_destroy(); event_destroy(); - + halloc_util_destroy(); - + env_destroy(); - + intern_free_all(); - - return res?STATUS_UNKNOWN_COMMAND:proc_get_last_status(); + + return res?STATUS_UNKNOWN_COMMAND:proc_get_last_status(); } |