Minor edits, remove unneeded code, add a few commants, correct spelling, tweak the todo list, etc.

darcs-hash:20061026102253-ac50b-eb42fdab9a9211d68386a563134856a96b870d90.gz
This commit is contained in:
axel 2006-10-26 20:22:53 +10:00
parent 3341fc888c
commit e98a604a21
10 changed files with 30 additions and 15 deletions

View file

@ -318,20 +318,20 @@ static int al_contains_long( array_list_t *list,
*/ */
static void erase_values(array_list_t *list, array_list_t *indexes) static void erase_values(array_list_t *list, array_list_t *indexes)
{ {
int i; long i;
array_list_t result; array_list_t result;
al_init(&result); al_init(&result);
for (i = 0; i < al_get_count(list); i++) for (i = 0; i < al_get_count(list); i++)
{ {
if (!al_contains_long(indexes, (long)i + 1)) if (!al_contains_long(indexes, i + 1))
{ {
al_push(&result, al_get(list, i)); al_push(&result, al_get(list, i));
} }
else else
{ {
free((void *) al_get(list, i)); free( (void *)al_get(list, i));
} }
} }
@ -375,16 +375,22 @@ static void print_variables(int include_values, int esc, int scope)
shorten = 1; shorten = 1;
value = wcsndup( value, 60 ); value = wcsndup( value, 60 );
if( !value ) if( !value )
{
DIE_MEM(); DIE_MEM();
}
} }
e_value = esc ? expand_escape_variable(value) : wcsdup(value); e_value = esc ? expand_escape_variable(value) : wcsdup(value);
sb_append2(sb_out, L" ", e_value, (void *)0); sb_append2(sb_out, L" ", e_value, (void *)0);
free(e_value); free(e_value);
if( shorten ) if( shorten )
{ {
sb_append(sb_out, L"\u2026"); sb_append(sb_out, L"\u2026");
free( value ); free( value );
} }
} }
} }

View file

@ -52,7 +52,8 @@ extern struct termios shell_modes;
extern wchar_t ellipsis_char; extern wchar_t ellipsis_char;
/** /**
The verbosity of fish The verbosity level of fish. If a call to debug has a severity
level higher than \c debug_level, it will not be printed.
*/ */
extern int debug_level; extern int debug_level;

View file

@ -1314,14 +1314,14 @@ g++, javac, java, gcj, lpr, doxygen, whois, find)
- Autoreload inputrc-file on updates - Autoreload inputrc-file on updates
- Right-side prompt - Right-side prompt
- Selectable completions in the pager - Selectable completions in the pager
- Access to the whole history in $history
- Saving of the history in intervals to not loose to much on crashes
- Per process output redirection - Per process output redirection
- Reduce the space of the pager by one line to allow the commandline to remain visible. - Reduce the space of the pager by one line to allow the commandline to remain visible.
- down-arrow could be used to save the current command to the history. Or give the next command in-sequnce. Or both. - down-arrow could be used to save the current command to the history. Or give the next command in-sequnce. Or both.
- A pretty-printer. - A pretty-printer.
- Help messages for builtin should not be compiled into fish, they should be kept in a separate directory - Help messages for builtin should not be compiled into fish, they should be kept in a separate directory
- Shellscript functions should be able to show help on the commandline instead of launching a browser - Shellscript functions should be able to show help on the commandline instead of launching a browser
- Drop support for inputrc-files. Use shellscripts and the bind builtin. Also, redo the syntax for the bind builtin to something more sane.
- History could reload itself when the file is updated. This would need to be done in a clever way to avoid chain reactions
\subsection bugs Known bugs \subsection bugs Known bugs
@ -1329,6 +1329,7 @@ g++, javac, java, gcj, lpr, doxygen, whois, find)
- Suspending and then resuming pipelines containing a builtin is broken. How should this be handled? - Suspending and then resuming pipelines containing a builtin is broken. How should this be handled?
- screen handling code can't handle tabs in input - screen handling code can't handle tabs in input
If you think you have found a bug not described here, please send a If you think you have found a bug not described here, please send a
report to <a href="mailto:axel@liljencrantz.se"> axel@liljencrantz.se report to <a href="mailto:axel@liljencrantz.se"> axel@liljencrantz.se
</a>. </a>.

View file

@ -5,7 +5,6 @@
\subsection function-description Description \subsection function-description Description
- \c -b or \c --key-binding specifies that the function is a key biding. Key binding functions work exactly like regular functions except that they can not be tab-completed.
- <code>-d DESCRIPTION</code> or \c --description=DESCRIPTION is a description of what the function does, suitable as a completion description - <code>-d DESCRIPTION</code> or \c --description=DESCRIPTION is a description of what the function does, suitable as a completion description
- <code>-j PID</code> or <code> --on-job-exit PID</code> tells fish to run this function when the job with group id PID exits. Instead of PID, the string 'caller' can be specified. This is only legal when in a command substitution, and will result in the handler being triggered by the exit of the job which created this command substitution. - <code>-j PID</code> or <code> --on-job-exit PID</code> tells fish to run this function when the job with group id PID exits. Instead of PID, the string 'caller' can be specified. This is only legal when in a command substitution, and will result in the handler being triggered by the exit of the job which created this command substitution.
- <code>-p PID</code> or <code> --on-process-exit PID</code> tells fish to run this function when the fish child process with process id PID exits - <code>-p PID</code> or <code> --on-process-exit PID</code> tells fish to run this function when the fish child process with process id PID exits

View file

@ -6,7 +6,7 @@
where FILE DESCRIPTOR may be either the number of a file descriptor, or one where FILE DESCRIPTOR may be either the number of a file descriptor, or one
of the strings stdin, stdout and stderr. of the strings stdin, stdout and stderr.
If he specified file descriptor is a tty, the exit status of the If the specified file descriptor is a tty, the exit status of the
command is zero, otherwise, it is non-zero. command is zero, otherwise, it is non-zero.

2
env.h
View file

@ -94,7 +94,7 @@ int env_set( const wchar_t *key,
wchar_t *env_get( const wchar_t *key ); wchar_t *env_get( const wchar_t *key );
/** /**
Returns 1 if the specified key exists. This can't be reliable done Returns 1 if the specified key exists. This can't be reliably done
using env_get, since env_get returns null for 0-element arrays using env_get, since env_get returns null for 0-element arrays
\param key The name of the variable to remove \param key The name of the variable to remove

View file

@ -309,8 +309,6 @@ static void get_names_internal( void *key,
void *aux ) void *aux )
{ {
wchar_t *name = (wchar_t *)key; wchar_t *name = (wchar_t *)key;
function_data_t *f = (function_data_t *)val;
if( name[0] != L'_' && !al_contains_str( (array_list_t *)aux, name ) ) if( name[0] != L'_' && !al_contains_str( (array_list_t *)aux, name ) )
{ {
al_push( (array_list_t *)aux, name ); al_push( (array_list_t *)aux, name );

View file

@ -11,7 +11,8 @@
/** /**
Allocate new memory using specified parent memory context. Context Allocate new memory using specified parent memory context. Context
_must_ be either 0 or the result of a previous call to halloc. _must_ be either 0 or the result of a previous call to halloc. The
resulting memory is set to zero.
If \c context is null, the resulting block is a root block, and If \c context is null, the resulting block is a root block, and
must be freed with a call to halloc_free(). must be freed with a call to halloc_free().

View file

@ -1642,8 +1642,16 @@ static void parse_job_main_loop( process_t *p,
return; return;
} }
/*
static void print_block_stack( block_t *b )
{
if( !b )
return;
print_block_stack( b->outer );
debug( 0, L"Block type %ls, skip: %d", parser_get_block_desc( b->type ), b->skip );
}
*/
/** /**
Fully parse a single job. Does not call exec on it, but any command substitutions in the job will be executed. Fully parse a single job. Does not call exec on it, but any command substitutions in the job will be executed.

View file

@ -285,9 +285,10 @@ static void s_check_status( screen_t *s)
to repaint. However, we do not know where the cursor is. It to repaint. However, we do not know where the cursor is. It
is our best bet that we are still on the same line, so we is our best bet that we are still on the same line, so we
move to the beginning of the line, reset the modelled screen move to the beginning of the line, reset the modelled screen
contents, and then set the modeled curor y-pos to its contents, and then set the modeled cursor y-pos to its
earlier value. earlier value.
*/ */
int prev_line = s->actual_cursor[1]; int prev_line = s->actual_cursor[1];
write( 1, "\r", 1 ); write( 1, "\r", 1 );
s_reset( s ); s_reset( s );