/[weechat]/weechat/src/gui/gui-common.c
ViewVC logotype

Diff of /weechat/src/gui/gui-common.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.40 by flashcode, Sat Jul 9 15:30:51 2005 UTC revision 1.41 by kolter, Tue Jul 12 10:06:10 2005 UTC
# Line 56  t_gui_buffer *last_gui_buffer = NULL; Line 56  t_gui_buffer *last_gui_buffer = NULL;
56  t_gui_buffer *buffer_before_dcc = NULL;     /* buffer before dcc switch     */  t_gui_buffer *buffer_before_dcc = NULL;     /* buffer before dcc switch     */
57  t_gui_infobar *gui_infobar;                 /* pointer to infobar content   */  t_gui_infobar *gui_infobar;                 /* pointer to infobar content   */
58    
59    char *gui_input_clipboard = NULL;           /* buffer to store clipboard content */
60    
61  /*  /*
62   * gui_window_new: create a new window   * gui_window_new: create a new window
# Line 921  gui_input_delete_previous_word () Line 922  gui_input_delete_previous_word ()
922          num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;          num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
923          num_char_end = gui_current_window->buffer->input_buffer_size -          num_char_end = gui_current_window->buffer->input_buffer_size -
924              gui_current_window->buffer->input_buffer_pos;              gui_current_window->buffer->input_buffer_pos;
925    
926            gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
927                                     gui_current_window->buffer->input_buffer_pos - num_char_deleted,
928                                     num_char_deleted);
929                    
930          for (j = 0; j < num_char_end; j++)          for (j = 0; j < num_char_end; j++)
931              gui_current_window->buffer->input_buffer[i + j] =              gui_current_window->buffer->input_buffer[i + j] =
# Line 953  gui_input_delete_next_word () Line 958  gui_input_delete_next_word ()
958          i++;          i++;
959      }      }
960      num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;      num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
961    
962        gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
963                                 gui_current_window->buffer->input_buffer_pos, num_char_deleted);
964            
965      for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)      for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
966          gui_current_window->buffer->input_buffer[j - num_char_deleted] =          gui_current_window->buffer->input_buffer[j - num_char_deleted] =
# Line 974  gui_input_delete_begin_of_line () Line 982  gui_input_delete_begin_of_line ()
982  {  {
983      int i;      int i;
984            
985        gui_input_clipboard_copy(gui_current_window->buffer->input_buffer,
986                                 gui_current_window->buffer->input_buffer_pos);
987        
988      for (i = gui_current_window->buffer->input_buffer_pos;      for (i = gui_current_window->buffer->input_buffer_pos;
989           i < gui_current_window->buffer->input_buffer_size; i++)           i < gui_current_window->buffer->input_buffer_size; i++)
990          gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =          gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
# Line 995  gui_input_delete_begin_of_line () Line 1006  gui_input_delete_begin_of_line ()
1006  void  void
1007  gui_input_delete_end_of_line ()  gui_input_delete_end_of_line ()
1008  {  {
1009        gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
1010                                 gui_current_window->buffer->input_buffer_pos,
1011                                 gui_current_window->buffer->input_buffer_size-1);
1012    
1013      gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';      gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
1014      gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;      gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
1015      gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';      gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
# Line 1019  gui_input_delete_line () Line 1034  gui_input_delete_line ()
1034  }  }
1035    
1036  /*  /*
1037     * gui_input_transpose_chars: transpose chars (on lth left) at cursor pos
1038     */
1039    
1040    void
1041    gui_input_transpose_chars ()
1042    {
1043        char buf;
1044        int curpos;
1045        
1046        if (gui_current_window->buffer->input_buffer_pos > 0)
1047          {
1048            curpos = gui_current_window->buffer->input_buffer_pos;
1049            if (curpos == gui_current_window->buffer->input_buffer_size)
1050              curpos--;
1051            else
1052              gui_current_window->buffer->input_buffer_pos++;
1053            
1054            buf = gui_current_window->buffer->input_buffer[curpos];
1055            gui_current_window->buffer->input_buffer[curpos] =
1056              gui_current_window->buffer->input_buffer[curpos-1];
1057            gui_current_window->buffer->input_buffer[curpos-1] = buf;
1058            
1059            gui_draw_buffer_input (gui_current_window->buffer, 0);  
1060            gui_current_window->buffer->completion.position = -1;
1061          }
1062    }
1063    
1064    /*
1065     * gui_input_clipboard_paste: paste clipboard at cursor pos in input line
1066     */
1067    
1068    void
1069    gui_input_clipboard_paste ()
1070    {
1071      if (gui_input_clipboard)
1072        {
1073          gui_input_insert_string(gui_input_clipboard, gui_current_window->buffer->input_buffer_pos);
1074          gui_current_window->buffer->input_buffer_pos += strlen(gui_input_clipboard);
1075          gui_draw_buffer_input (gui_current_window->buffer, 0);
1076          gui_current_window->buffer->completion.position = -1;
1077        }
1078    }
1079    
1080    /*
1081     * gui_input_clipboard_copy: copy string into clipboard
1082     */
1083    
1084    void
1085    gui_input_clipboard_copy (char *buffer, int size)
1086    {
1087      
1088      if (gui_input_clipboard != NULL)
1089        free(gui_input_clipboard);
1090    
1091      gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard));
1092    
1093      if (gui_input_clipboard)
1094        {
1095          memcpy(gui_input_clipboard, buffer, size);
1096          gui_input_clipboard[size] = '\0';
1097        }
1098    }
1099    
1100    /*
1101   * gui_input_home: home key   * gui_input_home: home key
1102   */   */
1103    

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.41

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26