summaryrefslogtreecommitdiff
path: root/src/gui/gui-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/gui-common.c')
-rw-r--r--src/gui/gui-common.c487
1 files changed, 260 insertions, 227 deletions
diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c
index ce7d53d94..19fa076e0 100644
--- a/src/gui/gui-common.c
+++ b/src/gui/gui-common.c
@@ -41,10 +41,11 @@
int gui_ready; /* = 1 if GUI is initialized */
t_gui_window *gui_windows = NULL; /* pointer to first window */
+t_gui_window *last_gui_window = NULL; /* pointer to last window */
+t_gui_window *gui_current_window = NULL; /* pointer to current window */
-t_gui_view *gui_views = NULL; /* pointer to first view */
-t_gui_view *last_gui_view = NULL; /* pointer to last view */
-t_gui_view *gui_current_view = NULL; /* pointer to current view */
+t_gui_buffer *gui_buffers = NULL; /* pointer to first buffer */
+t_gui_buffer *last_gui_buffer = NULL; /* pointer to last buffer */
t_gui_infobar *gui_infobar; /* pointer to infobar content */
@@ -55,186 +56,217 @@ t_gui_infobar *gui_infobar; /* pointer to infobar content */
t_gui_window *
gui_window_new (int x, int y, int width, int height)
{
- t_gui_window *window;
+ t_gui_window *new_window;
- if ((window = (t_gui_window *)(malloc (sizeof (t_gui_window)))))
+ #ifdef DEBUG
+ wee_log_printf ("creating new window (x:%d, y:%d, width:%d, height:%d)\n",
+ x, y, width, height);
+ #endif
+ if ((new_window = (t_gui_window *)(malloc (sizeof (t_gui_window)))))
{
- window->win_x = x;
- window->win_y = y;
- window->win_width = width;
- window->win_height = height;
+ new_window->win_x = x;
+ new_window->win_y = y;
+ new_window->win_width = width;
+ new_window->win_height = height;
- window->win_chat_x = 0;
- window->win_chat_y = 0;
- window->win_chat_width = 0;
- window->win_chat_height = 0;
- window->win_chat_cursor_x = 0;
- window->win_chat_cursor_y = 0;
+ new_window->win_chat_x = 0;
+ new_window->win_chat_y = 0;
+ new_window->win_chat_width = 0;
+ new_window->win_chat_height = 0;
+ new_window->win_chat_cursor_x = 0;
+ new_window->win_chat_cursor_y = 0;
- window->win_nick_x = 0;
- window->win_nick_y = 0;
- window->win_nick_width = 0;
- window->win_nick_height = 0;
+ new_window->win_nick_x = 0;
+ new_window->win_nick_y = 0;
+ new_window->win_nick_width = 0;
+ new_window->win_nick_height = 0;
- window->win_title = NULL;
- window->win_chat = NULL;
- window->win_nick = NULL;
- window->win_status = NULL;
- window->win_infobar = NULL;
- window->win_input = NULL;
- window->textview_chat = NULL;
- window->textbuffer_chat = NULL;
- window->texttag_chat = NULL;
- window->textview_nicklist = NULL;
- window->textbuffer_nicklist = NULL;
+ new_window->win_title = NULL;
+ new_window->win_chat = NULL;
+ new_window->win_nick = NULL;
+ new_window->win_status = NULL;
+ new_window->win_infobar = NULL;
+ new_window->win_input = NULL;
+ new_window->win_separator = NULL;
+
+ new_window->textview_chat = NULL;
+ new_window->textbuffer_chat = NULL;
+ new_window->texttag_chat = NULL;
+ new_window->textview_nicklist = NULL;
+ new_window->textbuffer_nicklist = NULL;
+
+ new_window->buffer = NULL;
+
+ new_window->first_line_displayed = 0;
+ new_window->sub_lines = 0;
+
+ /* add window to windows queue */
+ new_window->prev_window = last_gui_window;
+ if (gui_windows)
+ last_gui_window->next_window = new_window;
+ else
+ gui_windows = new_window;
+ last_gui_window = new_window;
+ new_window->next_window = NULL;
}
else
return NULL;
- return window;
+ return new_window;
}
/*
- * gui_view_new: create a new view in current window
+ * gui_buffer_new: create a new buffer in current window
*/
-t_gui_view *
-gui_view_new (t_gui_window *window, void *server, void *channel, int switch_to_view)
+t_gui_buffer *
+gui_buffer_new (t_gui_window *window, void *server, void *channel, int switch_to_buffer)
{
- t_gui_view *new_view;
+ t_gui_buffer *new_buffer;
- if (gui_views)
+ #ifdef DEBUG
+ wee_log_printf ("creating new buffer\n");
+ #endif
+ if (gui_buffers)
{
- /* use first view if no server was assigned to this view */
- if (!SERVER(gui_views))
+ /* use first buffer if no server was assigned to this buffer */
+ if (!SERVER(gui_buffers))
{
if (server)
- ((t_irc_server *)(server))->view = gui_views;
+ ((t_irc_server *)(server))->buffer = gui_buffers;
if (channel)
- ((t_irc_channel *)(channel))->view = gui_views;
- SERVER(gui_views) = server;
- CHANNEL(gui_views) = channel;
- return gui_views;
+ ((t_irc_channel *)(channel))->buffer = gui_buffers;
+ SERVER(gui_buffers) = server;
+ CHANNEL(gui_buffers) = channel;
+ return gui_buffers;
}
}
- if ((new_view = (t_gui_view *)(malloc (sizeof (t_gui_view)))))
+ if ((new_buffer = (t_gui_buffer *)(malloc (sizeof (t_gui_buffer)))))
{
- new_view->is_displayed = 0;
+ new_buffer->num_displayed = 0;
- /* assign server and channel to view */
- SERVER(new_view) = server;
- CHANNEL(new_view) = channel;
- /* assign view to server and channel */
+ /* assign server and channel to buffer */
+ SERVER(new_buffer) = server;
+ CHANNEL(new_buffer) = channel;
+ /* assign buffer to server and channel */
if (server && !channel)
- SERVER(new_view)->view = new_view;
+ SERVER(new_buffer)->buffer = new_buffer;
if (channel)
- CHANNEL(new_view)->view = new_view;
+ CHANNEL(new_buffer)->buffer = new_buffer;
- new_view->window = window;
+ if (!window->buffer)
+ window->buffer = new_buffer;
+ window->first_line_displayed = 1;
+ window->sub_lines = 0;
- gui_calculate_pos_size (new_view);
+ gui_calculate_pos_size (window);
- /* init views */
- gui_view_init_subviews(new_view);
+ /* init buffers */
+ gui_window_init_subwindows (window);
/* init lines */
- new_view->lines = NULL;
- new_view->last_line = NULL;
- new_view->num_lines = 0;
- new_view->first_line_displayed = 1;
- new_view->sub_lines = 0;
- new_view->line_complete = 1;
- new_view->unread_data = 0;
+ new_buffer->lines = NULL;
+ new_buffer->last_line = NULL;
+ new_buffer->num_lines = 0;
+ new_buffer->line_complete = 1;
+ new_buffer->unread_data = 0;
/* init input buffer */
- new_view->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
- new_view->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
- new_view->input_buffer[0] = '\0';
- new_view->input_buffer_size = 0;
- new_view->input_buffer_pos = 0;
- new_view->input_buffer_1st_display = 0;
+ new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
+ new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
+ new_buffer->input_buffer[0] = '\0';
+ new_buffer->input_buffer_size = 0;
+ new_buffer->input_buffer_pos = 0;
+ new_buffer->input_buffer_1st_display = 0;
/* init completion */
- completion_init (&(new_view->completion));
+ completion_init (&(new_buffer->completion));
/* init history */
- new_view->history = NULL;
- new_view->last_history = NULL;
- new_view->ptr_history = NULL;
- new_view->num_history = 0;
-
- /* switch to new view */
- if (switch_to_view)
- gui_switch_to_view (new_view);
+ new_buffer->history = NULL;
+ new_buffer->last_history = NULL;
+ new_buffer->ptr_history = NULL;
+ new_buffer->num_history = 0;
- /* add view to views queue */
- new_view->prev_view = last_gui_view;
- if (gui_views)
- last_gui_view->next_view = new_view;
+ /* add buffer to buffers queue */
+ new_buffer->prev_buffer = last_gui_buffer;
+ if (gui_buffers)
+ last_gui_buffer->next_buffer = new_buffer;
else
- gui_views = new_view;
- last_gui_view = new_view;
- new_view->next_view = NULL;
+ gui_buffers = new_buffer;
+ last_gui_buffer = new_buffer;
+ new_buffer->next_buffer = NULL;
+
+ /* switch to new buffer */
+ if (switch_to_buffer)
+ gui_switch_to_buffer (window, new_buffer);
- /* redraw whole screen */
- /* TODO: manage splited windows */
- gui_redraw_view (gui_current_view);
+ /* redraw buffer */
+ gui_redraw_buffer (new_buffer);
}
else
return NULL;
- return new_view;
+ return new_buffer;
}
/*
- * gui_view_clear: clear view content
+ * gui_buffer_clear: clear buffer content
*/
void
-gui_view_clear (t_gui_view *view)
+gui_buffer_clear (t_gui_buffer *buffer)
{
+ t_gui_window *ptr_win;
t_gui_line *ptr_line;
t_gui_message *ptr_message;
- while (view->lines)
+ while (buffer->lines)
{
- ptr_line = view->lines->next_line;
- while (view->lines->messages)
+ ptr_line = buffer->lines->next_line;
+ while (buffer->lines->messages)
{
- ptr_message = view->lines->messages->next_message;
- if (view->lines->messages->message)
- free (view->lines->messages->message);
- free (view->lines->messages);
- view->lines->messages = ptr_message;
+ ptr_message = buffer->lines->messages->next_message;
+ if (buffer->lines->messages->message)
+ free (buffer->lines->messages->message);
+ free (buffer->lines->messages);
+ buffer->lines->messages = ptr_message;
}
- free (view->lines);
- view->lines = ptr_line;
+ free (buffer->lines);
+ buffer->lines = ptr_line;
}
- view->lines = NULL;
- view->last_line = NULL;
- view->num_lines = 0;
- view->first_line_displayed = 1;
- view->sub_lines = 0;
- view->line_complete = 1;
- view->unread_data = 0;
+ buffer->lines = NULL;
+ buffer->last_line = NULL;
+ buffer->num_lines = 0;
+ buffer->line_complete = 1;
+ buffer->unread_data = 0;
- if (view == gui_current_view)
- gui_redraw_view_chat (view);
+ for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
+ {
+ if (ptr_win->buffer == buffer)
+ {
+ ptr_win->first_line_displayed = 1;
+ ptr_win->sub_lines = 0;
+ }
+ }
+
+ if (buffer == gui_current_window->buffer)
+ gui_draw_buffer_chat (buffer, 1);
}
/*
- * gui_view_clear_all: clear all views content
+ * gui_buffer_clear_all: clear all buffers content
*/
void
-gui_view_clear_all ()
+gui_buffer_clear_all ()
{
- t_gui_view *ptr_view;
+ t_gui_buffer *ptr_buffer;
- for (ptr_view = gui_views; ptr_view; ptr_view = ptr_view->next_view)
- gui_view_clear (ptr_view);
+ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer)
+ gui_buffer_clear (ptr_buffer);
}
/*
@@ -264,8 +296,7 @@ gui_infobar_printf (int time_displayed, int color, char *message, ...)
ptr_infobar->remaining_time = (time_displayed <= 0) ? -1 : time_displayed;
ptr_infobar->next_infobar = gui_infobar;
gui_infobar = ptr_infobar;
- /* TODO: manage splited windows! */
- gui_redraw_view_infobar (gui_current_view);
+ gui_draw_buffer_infobar (gui_current_window->buffer, 1);
}
else
wee_log_printf (_("%s not enough memory for infobar message\n"),
@@ -288,13 +319,12 @@ gui_infobar_remove ()
free (gui_infobar->text);
free (gui_infobar);
gui_infobar = new_infobar;
- /* TODO: manage splited windows! */
- gui_redraw_view_infobar (gui_current_view);
+ gui_draw_buffer_infobar (gui_current_window->buffer, 1);
}
}
/*
- * gui_line_free: delete a line from a view
+ * gui_line_free: delete a line from a buffer
*/
void
@@ -314,57 +344,60 @@ gui_line_free (t_gui_line *line)
}
/*
- * gui_view_free: delete a view
+ * gui_buffer_free: delete a buffer
*/
void
-gui_view_free (t_gui_view *view)
+gui_buffer_free (t_gui_buffer *buffer)
{
+ t_gui_window *ptr_win;
t_gui_line *ptr_line;
int create_new;
- create_new = (view->server || view->channel);
+ create_new = (buffer->server || buffer->channel);
- /* TODO: manage splited windows! */
- if ((view == gui_current_view) &&
- ((view->next_view) || (view->prev_view)))
- gui_switch_to_previous_view ();
+ for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
+ {
+ if ((buffer == ptr_win->buffer) &&
+ ((buffer->next_buffer) || (buffer->prev_buffer)))
+ gui_switch_to_previous_buffer (ptr_win);
+ }
/* free lines and messages */
- while (view->lines)
+ while (buffer->lines)
{
- ptr_line = view->lines->next_line;
- gui_line_free (view->lines);
- view->lines = ptr_line;
+ ptr_line = buffer->lines->next_line;
+ gui_line_free (buffer->lines);
+ buffer->lines = ptr_line;
}
- if (view->input_buffer)
- free (view->input_buffer);
-
- completion_free (&(view->completion));
-
- /* remove view from views list */
- if (view->prev_view)
- view->prev_view->next_view = view->next_view;
- if (view->next_view)
- view->next_view->prev_view = view->prev_view;
- if (gui_views == view)
- gui_views = view->next_view;
- if (last_gui_view == view)
- last_gui_view = view->prev_view;
-
- free (view);
-
- /* always at least one view */
- if (!gui_views && create_new)
- (void) gui_view_new (gui_windows, NULL, NULL, 1);
+ if (buffer->input_buffer)
+ free (buffer->input_buffer);
+
+ completion_free (&(buffer->completion));
+
+ /* remove buffer from buffers list */
+ if (buffer->prev_buffer)
+ buffer->prev_buffer->next_buffer = buffer->next_buffer;
+ if (buffer->next_buffer)
+ buffer->next_buffer->prev_buffer = buffer->prev_buffer;
+ if (gui_buffers == buffer)
+ gui_buffers = buffer->next_buffer;
+ if (last_gui_buffer == buffer)
+ last_gui_buffer = buffer->prev_buffer;
+
+ free (buffer);
+
+ /* always at least one buffer */
+ if (!gui_buffers && create_new)
+ (void) gui_buffer_new (gui_windows, NULL, NULL, 1);
}
/*
- * gui_new_line: create new line for a view
+ * gui_new_line: create new line for a buffer
*/
t_gui_line *
-gui_new_line (t_gui_view *view)
+gui_new_line (t_gui_buffer *buffer)
{
t_gui_line *new_line, *ptr_line;
@@ -375,14 +408,14 @@ gui_new_line (t_gui_view *view)
new_line->line_with_message = 0;
new_line->messages = NULL;
new_line->last_message = NULL;
- if (!view->lines)
- view->lines = new_line;
+ if (!buffer->lines)
+ buffer->lines = new_line;
else
- view->last_line->next_line = new_line;
- new_line->prev_line = view->last_line;
+ buffer->last_line->next_line = new_line;
+ new_line->prev_line = buffer->last_line;
new_line->next_line = NULL;
- view->last_line = new_line;
- view->num_lines++;
+ buffer->last_line = new_line;
+ buffer->num_lines++;
}
else
{
@@ -392,40 +425,40 @@ gui_new_line (t_gui_view *view)
/* remove one line if necessary */
if ((cfg_history_max_lines > 0)
- && (view->num_lines > cfg_history_max_lines))
+ && (buffer->num_lines > cfg_history_max_lines))
{
- if (view->last_line == view->lines)
- view->last_line = NULL;
- ptr_line = view->lines->next_line;
- gui_line_free (view->lines);
- view->lines = ptr_line;
+ if (buffer->last_line == buffer->lines)
+ buffer->last_line = NULL;
+ ptr_line = buffer->lines->next_line;
+ gui_line_free (buffer->lines);
+ buffer->lines = ptr_line;
ptr_line->prev_line = NULL;
- view->num_lines--;
- if (view->first_line_displayed)
- gui_redraw_view_chat (view);
+ buffer->num_lines--;
+ //if (buffer->first_line_displayed)
+ gui_draw_buffer_chat (buffer, 1);
}
return new_line;
}
/*
- * gui_new_message: create a new message for last line of a view
+ * gui_new_message: create a new message for last line of a buffer
*/
t_gui_message *
-gui_new_message (t_gui_view *view)
+gui_new_message (t_gui_buffer *buffer)
{
t_gui_message *new_message;
if ((new_message = (t_gui_message *) malloc (sizeof (struct t_gui_message))))
{
- if (!view->last_line->messages)
- view->last_line->messages = new_message;
+ if (!buffer->last_line->messages)
+ buffer->last_line->messages = new_message;
else
- view->last_line->last_message->next_message = new_message;
- new_message->prev_message = view->last_line->last_message;
+ buffer->last_line->last_message->next_message = new_message;
+ new_message->prev_message = buffer->last_line->last_message;
new_message->next_message = NULL;
- view->last_line->last_message = new_message;
+ buffer->last_line->last_message = new_message;
}
else
{
@@ -441,16 +474,16 @@ gui_new_message (t_gui_view *view)
*/
void
-gui_optimize_input_buffer_size (t_gui_view *view)
+gui_optimize_input_buffer_size (t_gui_buffer *buffer)
{
int optimal_size;
- optimal_size = ((view->input_buffer_size / INPUT_BUFFER_BLOCK_SIZE) *
+ optimal_size = ((buffer->input_buffer_size / INPUT_BUFFER_BLOCK_SIZE) *
INPUT_BUFFER_BLOCK_SIZE) + INPUT_BUFFER_BLOCK_SIZE;
- if (view->input_buffer_alloc != optimal_size)
+ if (buffer->input_buffer_alloc != optimal_size)
{
- view->input_buffer_alloc = optimal_size;
- view->input_buffer = realloc (view->input_buffer, optimal_size);
+ buffer->input_buffer_alloc = optimal_size;
+ buffer->input_buffer = realloc (buffer->input_buffer, optimal_size);
}
}
@@ -459,25 +492,25 @@ gui_optimize_input_buffer_size (t_gui_view *view)
*/
void
-gui_delete_previous_word ()
+gui_delete_previous_word (t_gui_buffer *buffer)
{
int i, j, num_char_deleted, num_char_end;
- if (gui_current_view->input_buffer_pos > 0)
+ if (buffer->input_buffer_pos > 0)
{
- i = gui_current_view->input_buffer_pos - 1;
+ i = buffer->input_buffer_pos - 1;
while ((i >= 0) &&
- (gui_current_view->input_buffer[i] == ' '))
+ (buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
- (gui_current_view->input_buffer[i] != ' '))
+ (buffer->input_buffer[i] != ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
- (gui_current_view->input_buffer[i] == ' '))
+ (buffer->input_buffer[i] == ' '))
i--;
}
}
@@ -485,20 +518,20 @@ gui_delete_previous_word ()
if (i >= 0)
i++;
i++;
- num_char_deleted = gui_current_view->input_buffer_pos - i;
- num_char_end = gui_current_view->input_buffer_size -
- gui_current_view->input_buffer_pos;
+ num_char_deleted = buffer->input_buffer_pos - i;
+ num_char_end = buffer->input_buffer_size -
+ buffer->input_buffer_pos;
for (j = 0; j < num_char_end; j++)
- gui_current_view->input_buffer[i + j] =
- gui_current_view->input_buffer[gui_current_view->input_buffer_pos + j];
+ buffer->input_buffer[i + j] =
+ buffer->input_buffer[buffer->input_buffer_pos + j];
- gui_current_view->input_buffer_size -= num_char_deleted;
- gui_current_view->input_buffer[gui_current_view->input_buffer_size] = '\0';
- gui_current_view->input_buffer_pos = i;
- gui_draw_view_input (gui_current_view);
- gui_optimize_input_buffer_size (gui_current_view);
- gui_current_view->completion.position = -1;
+ buffer->input_buffer_size -= num_char_deleted;
+ buffer->input_buffer[buffer->input_buffer_size] = '\0';
+ buffer->input_buffer_pos = i;
+ gui_draw_buffer_input (buffer, 0);
+ gui_optimize_input_buffer_size (buffer);
+ buffer->completion.position = -1;
}
}
@@ -507,26 +540,26 @@ gui_delete_previous_word ()
*/
void
-gui_move_previous_word ()
+gui_move_previous_word (t_gui_buffer *buffer)
{
int i;
- if (gui_current_view->input_buffer_pos > 0)
+ if (buffer->input_buffer_pos > 0)
{
- i = gui_current_view->input_buffer_pos - 1;
+ i = buffer->input_buffer_pos - 1;
while ((i >= 0) &&
- (gui_current_view->input_buffer[i] == ' '))
+ (buffer->input_buffer[i] == ' '))
i--;
if (i < 0)
- gui_current_view->input_buffer_pos = 0;
+ buffer->input_buffer_pos = 0;
else
{
while ((i >= 0) &&
- (gui_current_view->input_buffer[i] != ' '))
+ (buffer->input_buffer[i] != ' '))
i--;
- gui_current_view->input_buffer_pos = i + 1;
+ buffer->input_buffer_pos = i + 1;
}
- gui_draw_view_input (gui_current_view);
+ gui_draw_buffer_input (buffer, 0);
}
}
@@ -535,32 +568,32 @@ gui_move_previous_word ()
*/
void
-gui_move_next_word ()
+gui_move_next_word (t_gui_buffer *buffer)
{
int i;
- if (gui_current_view->input_buffer_pos <
- gui_current_view->input_buffer_size + 1)
+ if (buffer->input_buffer_pos <
+ buffer->input_buffer_size + 1)
{
- i = gui_current_view->input_buffer_pos;
- while ((i <= gui_current_view->input_buffer_size) &&
- (gui_current_view->input_buffer[i] == ' '))
+ i = buffer->input_buffer_pos;
+ while ((i <= buffer->input_buffer_size) &&
+ (buffer->input_buffer[i] == ' '))
i++;
- if (i > gui_current_view->input_buffer_size)
- gui_current_view->input_buffer_pos = i - 1;
+ if (i > buffer->input_buffer_size)
+ buffer->input_buffer_pos = i - 1;
else
{
- while ((i <= gui_current_view->input_buffer_size) &&
- (gui_current_view->input_buffer[i] != ' '))
+ while ((i <= buffer->input_buffer_size) &&
+ (buffer->input_buffer[i] != ' '))
i++;
- if (i > gui_current_view->input_buffer_size)
- gui_current_view->input_buffer_pos =
- gui_current_view->input_buffer_size;
+ if (i > buffer->input_buffer_size)
+ buffer->input_buffer_pos =
+ buffer->input_buffer_size;
else
- gui_current_view->input_buffer_pos = i;
+ buffer->input_buffer_pos = i;
}
- gui_draw_view_input (gui_current_view);
+ gui_draw_buffer_input (buffer, 0);
}
}
@@ -569,24 +602,24 @@ gui_move_next_word ()
*/
void
-gui_buffer_insert_string (char *string, int pos)
+gui_buffer_insert_string (t_gui_buffer *buffer, char *string, int pos)
{
int i, start, end, length;
length = strlen (string);
/* increase buffer size */
- gui_current_view->input_buffer_size += length;
- gui_optimize_input_buffer_size (gui_current_view);
- gui_current_view->input_buffer[gui_current_view->input_buffer_size] = '\0';
+ buffer->input_buffer_size += length;
+ gui_optimize_input_buffer_size (buffer);
+ buffer->input_buffer[buffer->input_buffer_size] = '\0';
/* move end of string to the right */
start = pos + length;
- end = gui_current_view->input_buffer_size - 1;
+ end = buffer->input_buffer_size - 1;
for (i = end; i >= start; i--)
- gui_current_view->input_buffer[i] =
- gui_current_view->input_buffer[i - length];
+ buffer->input_buffer[i] =
+ buffer->input_buffer[i - length];
/* insert new string */
- strncpy (gui_current_view->input_buffer + pos, string, length);
+ strncpy (buffer->input_buffer + pos, string, length);
}