mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-22 15:37:59 +08:00
Removed buffer_t
This commit is contained in:
parent
191221eec5
commit
2c5001a5b3
|
@ -1113,16 +1113,13 @@ static void destroy()
|
|||
*/
|
||||
static void read_array( FILE* file, wcstring_list_t &comp )
|
||||
{
|
||||
buffer_t buffer;
|
||||
std::vector<char> buffer;
|
||||
int c;
|
||||
char cc;
|
||||
wchar_t *wcs;
|
||||
|
||||
b_init( &buffer );
|
||||
|
||||
while( !feof( file ) )
|
||||
{
|
||||
buffer.used=0;
|
||||
buffer.clear();
|
||||
|
||||
while( 1 )
|
||||
{
|
||||
|
@ -1137,17 +1134,14 @@ static void read_array( FILE* file, wcstring_list_t &comp )
|
|||
break;
|
||||
}
|
||||
|
||||
cc=c;
|
||||
|
||||
b_append( &buffer, &cc, 1 );
|
||||
buffer.push_back(static_cast<char>(c));
|
||||
}
|
||||
|
||||
if( buffer.used )
|
||||
if( ! buffer.empty() )
|
||||
{
|
||||
cc=0;
|
||||
b_append( &buffer, &cc, 1 );
|
||||
buffer.push_back(0);
|
||||
|
||||
wcs = str2wcs( buffer.buff );
|
||||
wcs = str2wcs( &buffer.at(0) );
|
||||
if( wcs )
|
||||
{
|
||||
wcstring tmp = wcs;
|
||||
|
@ -1160,8 +1154,6 @@ static void read_array( FILE* file, wcstring_list_t &comp )
|
|||
}
|
||||
}
|
||||
|
||||
b_destroy( &buffer );
|
||||
|
||||
}
|
||||
|
||||
static int get_fd( const char *str )
|
||||
|
|
32
screen.cpp
32
screen.cpp
|
@ -42,6 +42,7 @@ efficient way for transforming that to the desired screen content.
|
|||
#include <time.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <vector>
|
||||
|
||||
|
||||
#include "fallback.h"
|
||||
|
@ -63,7 +64,8 @@ efficient way for transforming that to the desired screen content.
|
|||
tputs. Since tputs external function can only take an integer and
|
||||
not a pointer as parameter we need a static storage buffer.
|
||||
*/
|
||||
static buffer_t *s_writeb_buffer=0;
|
||||
typedef std::vector<char> data_buffer_t;
|
||||
static data_buffer_t *s_writeb_buffer=0;
|
||||
|
||||
/**
|
||||
Tests if the specified narrow character sequence is present at the
|
||||
|
@ -428,7 +430,7 @@ static void s_desired_append_char( screen_t *s,
|
|||
*/
|
||||
static int s_writeb( char c )
|
||||
{
|
||||
b_append( s_writeb_buffer, &c, 1 );
|
||||
s_writeb_buffer->push_back(c);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -442,7 +444,7 @@ static int s_writeb( char c )
|
|||
\param new_x the new x position
|
||||
\param new_y the new y position
|
||||
*/
|
||||
static void s_move( screen_t *s, buffer_t *b, int new_x, int new_y )
|
||||
static void s_move( screen_t *s, data_buffer_t *b, int new_x, int new_y )
|
||||
{
|
||||
int i;
|
||||
int x_steps, y_steps;
|
||||
|
@ -492,8 +494,7 @@ static void s_move( screen_t *s, buffer_t *b, int new_x, int new_y )
|
|||
|
||||
if( x_steps && new_x == 0 )
|
||||
{
|
||||
char c = '\r';
|
||||
b_append( b, &c, 1 );
|
||||
b->push_back('\r');
|
||||
x_steps = 0;
|
||||
}
|
||||
|
||||
|
@ -521,7 +522,7 @@ static void s_move( screen_t *s, buffer_t *b, int new_x, int new_y )
|
|||
/**
|
||||
Set the pen color for the terminal
|
||||
*/
|
||||
static void s_set_color( screen_t *s, buffer_t *b, int c )
|
||||
static void s_set_color( screen_t *s, data_buffer_t *b, int c )
|
||||
{
|
||||
|
||||
int (*writer_old)(char) = output_get_writer();
|
||||
|
@ -541,7 +542,7 @@ static void s_set_color( screen_t *s, buffer_t *b, int c )
|
|||
Convert a wide character to a multibyte string and append it to the
|
||||
buffer.
|
||||
*/
|
||||
static void s_write_char( screen_t *s, buffer_t *b, wchar_t c )
|
||||
static void s_write_char( screen_t *s, data_buffer_t *b, wchar_t c )
|
||||
{
|
||||
int (*writer_old)(char) = output_get_writer();
|
||||
|
||||
|
@ -558,7 +559,7 @@ static void s_write_char( screen_t *s, buffer_t *b, wchar_t c )
|
|||
Send the specified string through tputs and append the output to
|
||||
the specified buffer.
|
||||
*/
|
||||
static void s_write_mbs( buffer_t *b, char *s )
|
||||
static void s_write_mbs( data_buffer_t *b, char *s )
|
||||
{
|
||||
int (*writer_old)(char) = output_get_writer();
|
||||
|
||||
|
@ -574,7 +575,7 @@ static void s_write_mbs( buffer_t *b, char *s )
|
|||
Convert a wide string to a multibyte string and append it to the
|
||||
buffer.
|
||||
*/
|
||||
static void s_write_str( buffer_t *b, const wchar_t *s )
|
||||
static void s_write_str( data_buffer_t *b, const wchar_t *s )
|
||||
{
|
||||
int (*writer_old)(char) = output_get_writer();
|
||||
|
||||
|
@ -596,13 +597,10 @@ static void s_update( screen_t *scr, const wchar_t *prompt )
|
|||
int current_width=0;
|
||||
int screen_width = common_get_width();
|
||||
int need_clear = scr->need_clear;
|
||||
buffer_t output;
|
||||
data_buffer_t output;
|
||||
|
||||
scr->need_clear = 0;
|
||||
|
||||
b_init( &output );
|
||||
|
||||
|
||||
|
||||
if( scr->actual_width != screen_width )
|
||||
{
|
||||
need_clear = 1;
|
||||
|
@ -691,13 +689,11 @@ static void s_update( screen_t *scr, const wchar_t *prompt )
|
|||
|
||||
s_set_color( scr, &output, 0xffffffff);
|
||||
|
||||
if( output.used )
|
||||
if( ! output.empty() )
|
||||
{
|
||||
write_loop( 1, output.buff, output.used );
|
||||
write_loop( 1, &output.at(0), output.size() );
|
||||
}
|
||||
|
||||
b_destroy( &output );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
56
util.cpp
56
util.cpp
|
@ -166,62 +166,6 @@ int wcsfilecmp( const wchar_t *a, const wchar_t *b )
|
|||
return res;
|
||||
}
|
||||
|
||||
void b_init( buffer_t *b)
|
||||
{
|
||||
CHECK( b, );
|
||||
memset( b,0,sizeof(buffer_t));
|
||||
}
|
||||
|
||||
|
||||
|
||||
void b_destroy( buffer_t *b )
|
||||
{
|
||||
CHECK( b, );
|
||||
free( b->buff );
|
||||
}
|
||||
|
||||
|
||||
int b_append( buffer_t *b, const void *d, ssize_t len )
|
||||
{
|
||||
if( len<=0 )
|
||||
return 0;
|
||||
|
||||
CHECK( b, -1 );
|
||||
|
||||
if( !b )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if( !d )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if( b->length <= (b->used + len) )
|
||||
{
|
||||
size_t l = maxi( b->length*2,
|
||||
b->used+len+MIN_SIZE );
|
||||
|
||||
void *d = realloc( b->buff, l );
|
||||
if( !d )
|
||||
{
|
||||
oom_handler( b );
|
||||
return -1;
|
||||
}
|
||||
b->buff=(char *)d;
|
||||
b->length = l;
|
||||
}
|
||||
memcpy( ((char*)b->buff)+b->used,
|
||||
d,
|
||||
len );
|
||||
|
||||
// fwprintf( stderr, L"Copy %s, new value %s\n", d, b->buff );
|
||||
b->used+=len;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
long long get_time()
|
||||
{
|
||||
struct timeval time_struct;
|
||||
|
|
23
util.h
23
util.h
|
@ -87,29 +87,6 @@ int mini( int a, int b );
|
|||
*/
|
||||
int wcsfilecmp( const wchar_t *a, const wchar_t *b );
|
||||
|
||||
|
||||
/*
|
||||
Buffer functions
|
||||
*/
|
||||
|
||||
/**
|
||||
Initialize the specified buffer_t
|
||||
*/
|
||||
void b_init( buffer_t *b);
|
||||
|
||||
/**
|
||||
Destroy the specified buffer_t
|
||||
*/
|
||||
|
||||
void b_destroy( buffer_t *b );
|
||||
|
||||
/**
|
||||
Add data of the specified length to the specified buffer_t
|
||||
|
||||
\return 0 on error, non-zero otherwise
|
||||
*/
|
||||
int b_append( buffer_t *b, const void *d, ssize_t len );
|
||||
|
||||
/**
|
||||
Get the current time in microseconds since Jan 1, 1970
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user