aboutsummaryrefslogtreecommitdiffhomepage
path: root/kill.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-03-03 19:37:55 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-03-03 19:37:55 -0800
commita0bb2cdc6e697c58ec3ebcd455b56347228092e5 (patch)
tree25e49dfa40c28a29ff227f063dcadc8aac9af021 /kill.cpp
parent0a5680c3e8c41e5f19b3beb4e6ac31a8560f99dd (diff)
removed some string_buffer
Diffstat (limited to 'kill.cpp')
-rw-r--r--kill.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/kill.cpp b/kill.cpp
index cb79386d..7a076e9f 100644
--- a/kill.cpp
+++ b/kill.cpp
@@ -36,8 +36,15 @@
*/
#define KILL_MAX 8192
+ /** Last kill string */
+static ll_node_t *kill_last=0;
+
+/** Current kill string */
+static ll_node_t *kill_current=0;
+
+/** Kill ring */
+//static std::vector<wcstring> kill_list;
-static ll_node_t /** Last kill string */*kill_last=0, /** Current kill string */*kill_current =0;
/**
Contents of the X clipboard, at last time we checked it
*/
@@ -65,22 +72,22 @@ static int has_xsel()
/**
Add the string to the internal killring
*/
-static void kill_add_internal( wchar_t *str )
+static void kill_add_internal( const wcstring &str )
{
- if( wcslen( str ) == 0 )
+ if (str.empty())
return;
- if( kill_last == 0 )
+ if (kill_last == 0)
{
kill_current = kill_last=(ll_node_t *)malloc( sizeof( ll_node_t ) );
- kill_current->data = wcsdup(str);
+ kill_current->data = wcsdup(str.c_str());
kill_current->prev = kill_current;
}
else
{
kill_current = (ll_node_t *)malloc( sizeof( ll_node_t ) );
kill_current->data = kill_last->data;
- kill_last->data = wcsdup(str);
+ kill_last->data = wcsdup(str.c_str());
kill_current->prev = kill_last->prev;
kill_last->prev = kill_current;
kill_current = kill_last;
@@ -88,7 +95,7 @@ static void kill_add_internal( wchar_t *str )
}
-void kill_add( wchar_t *str )
+void kill_add( const wcstring &str )
{
wchar_t *cmd = NULL;
wchar_t *escaped_str;
@@ -106,7 +113,7 @@ void kill_add( wchar_t *str )
const env_var_t clipboard_wstr = env_get_string(L"FISH_CLIPBOARD_CMD");
if( !clipboard_wstr.missing() )
{
- escaped_str = escape( str, 1 );
+ escaped_str = escape( str.c_str(), 1 );
cmd = wcsdupcat(L"echo -n ", escaped_str, clipboard_wstr.c_str());
}
else
@@ -119,7 +126,7 @@ void kill_add( wchar_t *str )
const env_var_t disp_wstr = env_get_string( L"DISPLAY" );
if( !disp_wstr.missing() )
{
- escaped_str = escape( str, 1 );
+ escaped_str = escape( str.c_str(), 1 );
cmd = wcsdupcat(L"echo ", escaped_str, L"|xsel -b" );
}
}
@@ -170,7 +177,7 @@ static void kill_remove_node( ll_node_t *n )
/**
Remove first match for specified string from circular list
*/
-static void kill_remove( wchar_t *s )
+static void kill_remove( const wcstring &s )
{
ll_node_t *n, *next=0;
@@ -183,7 +190,7 @@ static void kill_remove( wchar_t *s )
n!=kill_last || next == 0 ;
n=n->prev )
{
- if( wcscmp( (wchar_t *)n->data, s ) == 0 )
+ if( wcscmp( (wchar_t *)n->data, s.c_str() ) == 0 )
{
kill_remove_node( n );
break;
@@ -194,7 +201,7 @@ static void kill_remove( wchar_t *s )
-void kill_replace( wchar_t *old, wchar_t *newv )
+void kill_replace( const wcstring &old, const wcstring &newv )
{
kill_remove( old );
kill_add( newv );