aboutsummaryrefslogtreecommitdiffhomepage
path: root/builtin_set.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-02-22 10:51:06 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-02-22 10:51:06 -0800
commit62bd43f17fa279b67fbd4482580a91fc2db9c899 (patch)
tree4a060823ccb92ea5e885a4221c85fd10b9bf580d /builtin_set.cpp
parent917b4ff8bc542d161006cea8254885a193f5b8c3 (diff)
Large set of changes to migrate sb_out and sb_err to wcstring
Diffstat (limited to 'builtin_set.cpp')
-rw-r--r--builtin_set.cpp87
1 files changed, 40 insertions, 47 deletions
diff --git a/builtin_set.cpp b/builtin_set.cpp
index f316ce4a..87f95dbe 100644
--- a/builtin_set.cpp
+++ b/builtin_set.cpp
@@ -26,6 +26,8 @@ Functions used for implementing the set builtin.
#include "proc.h"
#include "parser.h"
+/* We know about these buffers */
+extern wcstring stdout_buffer, stderr_buffer;
/**
Error message for invalid path operations
@@ -91,12 +93,7 @@ static int my_env_set( const wchar_t *key, wcstring_list_t &val, int scope )
{
const wchar_t *colon;
- sb_printf( sb_err,
- _(BUILTIN_SET_PATH_ERROR),
- L"set",
- dir,
- key );
-
+ append_format(stderr_buffer, _(BUILTIN_SET_PATH_ERROR), L"set", dir, key);
colon = wcschr( dir, L':' );
if( colon && *(colon+1) )
@@ -113,12 +110,7 @@ static int my_env_set( const wchar_t *key, wcstring_list_t &val, int scope )
if( show_hint )
{
- sb_printf( sb_err,
- _(BUILTIN_SET_PATH_HINT),
- L"set",
- key,
- key,
- wcschr( dir, L':' )+1);
+ append_format(stderr_buffer, _(BUILTIN_SET_PATH_HINT), L"set", key, key, wcschr( dir, L':' )+1);
}
if( error )
@@ -156,14 +148,14 @@ static int my_env_set( const wchar_t *key, wcstring_list_t &val, int scope )
{
case ENV_PERM:
{
- sb_printf( sb_err, _(L"%ls: Tried to change the read-only variable '%ls'\n"), L"set", key );
+ append_format(stderr_buffer, _(L"%ls: Tried to change the read-only variable '%ls'\n"), L"set", key);
retcode=1;
break;
}
case ENV_INVALID:
{
- sb_printf( sb_err, _(L"%ls: Unknown error"), L"set" );
+ append_format(stderr_buffer, _(L"%ls: Unknown error"), L"set" );
retcode=1;
break;
}
@@ -208,7 +200,7 @@ static int parse_index( std::vector<long> &indexes,
if (*src != L'[')
{
- sb_printf( sb_err, _(BUILTIN_SET_ARG_COUNT), L"set" );
+ append_format(stderr_buffer, _(BUILTIN_SET_ARG_COUNT), L"set" );
return 0;
}
@@ -216,7 +208,7 @@ static int parse_index( std::vector<long> &indexes,
if( (wcsncmp( src_orig, name, len )!=0) || (wcslen(name) != (len)) )
{
- sb_printf( sb_err,
+ append_format(stderr_buffer,
_(L"%ls: Multiple variable names specified in single call (%ls and %.*ls)\n"),
L"set",
name,
@@ -244,7 +236,7 @@ static int parse_index( std::vector<long> &indexes,
if( end==src || errno )
{
- sb_printf(sb_err, _(L"%ls: Invalid index starting at '%ls'\n"), L"set", src);
+ append_format(stderr_buffer, _(L"%ls: Invalid index starting at '%ls'\n"), L"set", src);
return 0;
}
@@ -326,7 +318,7 @@ static void print_variables(int include_values, int esc, int scope)
const wcstring key = names.at(i);
const wcstring e_key = escape_string(key, 0);
- sb_append(sb_out, e_key.c_str());
+ stdout_buffer.append(e_key);
if( include_values )
{
@@ -343,17 +335,18 @@ static void print_variables(int include_values, int esc, int scope)
wcstring e_value = esc ? expand_escape_variable(value) : value;
- sb_append(sb_out, L" ", e_value.c_str(), NULL);
+ stdout_buffer.append(L" ");
+ stdout_buffer.append(e_value);
if( shorten )
{
- sb_append(sb_out, L"\u2026");
+ stdout_buffer.append(L"\u2026");
}
}
}
- sb_append(sb_out, L"\n");
+ stdout_buffer.append(L"\n");
}
}
@@ -487,7 +480,7 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
break;
case 'h':
- builtin_print_help( parser, argv[0], sb_out );
+ builtin_print_help( parser, argv[0], stdout_buffer );
return 0;
case '?':
@@ -510,11 +503,11 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
if( query && (erase || list || global || local || universal || exportv || unexport ) )
{
- sb_printf(sb_err,
+ append_format(stderr_buffer,
BUILTIN_ERR_COMBO,
argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
return 1;
}
@@ -522,11 +515,11 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
/* We can't both list and erase varaibles */
if( erase && list )
{
- sb_printf(sb_err,
+ append_format(stderr_buffer,
BUILTIN_ERR_COMBO,
argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
return 1;
}
@@ -535,10 +528,10 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
*/
if( local + global + universal > 1 )
{
- sb_printf( sb_err,
+ append_format(stderr_buffer,
BUILTIN_ERR_GLOCAL,
argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
return 1;
}
@@ -547,10 +540,10 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
*/
if( exportv && unexport )
{
- sb_printf( sb_err,
+ append_format(stderr_buffer,
BUILTIN_ERR_EXPUNEXP,
argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
return 1;
}
@@ -596,7 +589,7 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
if( !parse_index( indexes, arg, dest, result.size() ) )
{
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
retcode = 1;
break;
}
@@ -638,11 +631,11 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
if( erase )
{
- sb_printf( sb_err,
+ append_format(stderr_buffer,
_(L"%ls: Erase needs a variable name\n%ls\n"),
argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
retcode = 1;
}
else
@@ -667,15 +660,15 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
if( !wcslen( dest ) )
{
free( dest );
- sb_printf( sb_err, BUILTIN_ERR_VARNAME_ZERO, argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ append_format(stderr_buffer, BUILTIN_ERR_VARNAME_ZERO, argv[0] );
+ builtin_print_help( parser, argv[0], stderr_buffer );
return 1;
}
if( (bad_char = wcsvarname( dest ) ) )
{
- sb_printf( sb_err, BUILTIN_ERR_VARCHAR, argv[0], *bad_char );
- builtin_print_help( parser, argv[0], sb_err );
+ append_format(stderr_buffer, BUILTIN_ERR_VARCHAR, argv[0], *bad_char );
+ builtin_print_help( parser, argv[0], stderr_buffer );
free( dest );
return 1;
}
@@ -683,8 +676,8 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
if( slice && erase && (scope != ENV_USER) )
{
free( dest );
- sb_printf( sb_err, _(L"%ls: Can not specify scope when erasing array slice\n"), argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ append_format(stderr_buffer, _(L"%ls: Can not specify scope when erasing array slice\n"), argv[0] );
+ builtin_print_help( parser, argv[0], stderr_buffer );
return 1;
}
@@ -712,7 +705,7 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
{
if( !parse_index( indexes, argv[woptind], dest, result.size() ) )
{
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
retcode = 1;
break;
}
@@ -724,8 +717,8 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
{
if( val_count < idx_count )
{
- sb_printf( sb_err, _(BUILTIN_SET_ARG_COUNT), argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ append_format(stderr_buffer, _(BUILTIN_SET_ARG_COUNT), argv[0] );
+ builtin_print_help( parser, argv[0], stderr_buffer );
retcode=1;
break;
}
@@ -762,9 +755,9 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
indexes,
value ) )
{
- sb_printf( sb_err, L"%ls: ", argv[0] );
- sb_printf( sb_err, ARRAY_BOUNDS_ERR );
- sb_append( sb_err, L"\n" );
+ append_format(stderr_buffer, L"%ls: ", argv[0] );
+ append_format(stderr_buffer, ARRAY_BOUNDS_ERR );
+ stderr_buffer.push_back(L'\n');
}
my_env_set(dest, result, scope);
@@ -792,10 +785,10 @@ static int builtin_set( parser_t &parser, wchar_t **argv )
{
if( woptind != argc )
{
- sb_printf( sb_err,
+ append_format(stderr_buffer,
_(L"%ls: Values cannot be specfied with erase\n"),
argv[0] );
- builtin_print_help( parser, argv[0], sb_err );
+ builtin_print_help( parser, argv[0], stderr_buffer );
retcode=1;
}
else