/[LeafOK_CVS]/lbbs/src/editor.c
ViewVC logotype

Diff of /lbbs/src/editor.c

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

Revision 1.14 by sysadm, Thu Jun 12 03:16:35 2025 UTC Revision 1.15 by sysadm, Thu Jun 12 04:45:57 2025 UTC
# Line 162  int editor_data_insert(EDITOR_DATA *p_ed Line 162  int editor_data_insert(EDITOR_DATA *p_ed
162          long line_offsets[MAX_EDITOR_DATA_LINE_LENGTH + 1];          long line_offsets[MAX_EDITOR_DATA_LINE_LENGTH + 1];
163          long split_line_total;          long split_line_total;
164          long i, j;          long i, j;
165            int len;
166            int eol;
167            int display_len;
168    
169          if (p_editor_data == NULL || p_last_updated_line == NULL)          if (p_editor_data == NULL || p_last_updated_line == NULL)
170          {          {
# Line 215  int editor_data_insert(EDITOR_DATA *p_ed Line 218  int editor_data_insert(EDITOR_DATA *p_ed
218          {          {
219                  if (p_editor_data->display_line_total >= MAX_EDITOR_DATA_LINES)                  if (p_editor_data->display_line_total >= MAX_EDITOR_DATA_LINES)
220                  {                  {
221                          log_error("Split line error, display_line_total(%ld) reach limit(%d)\n",                          // log_error("Split line error, display_line_total(%ld) reach limit(%d)\n",
222                                            p_editor_data->display_line_total, MAX_EDITOR_DATA_LINES);                          //                p_editor_data->display_line_total, MAX_EDITOR_DATA_LINES);
223                          return -2;                          return -2;
224                  }                  }
225    
# Line 305  int editor_data_insert(EDITOR_DATA *p_ed Line 308  int editor_data_insert(EDITOR_DATA *p_ed
308                          // Insert blank display line after last_display_line                          // Insert blank display line after last_display_line
309                          if (p_editor_data->display_line_total >= MAX_EDITOR_DATA_LINES)                          if (p_editor_data->display_line_total >= MAX_EDITOR_DATA_LINES)
310                          {                          {
311                                  log_error("display_line_total over limit %d >= %d\n", p_editor_data->display_line_total, MAX_EDITOR_DATA_LINES);                                  // log_error("display_line_total over limit %d >= %d\n", p_editor_data->display_line_total, MAX_EDITOR_DATA_LINES);
312                                  return -3;                                  // Terminate prior display line with \n, to avoid error on cleanup
313                                    if (display_line + i - 1 >= 0 && p_editor_data->display_line_lengths[display_line + i - 1] > 0)
314                                    {
315                                            len = split_line(p_editor_data->p_display_lines[display_line + i - 1], SCREEN_COLS - 1, &eol, &display_len);
316                                            p_editor_data->p_display_lines[display_line + i - 1][len] = '\n';
317                                            p_editor_data->p_display_lines[display_line + i - 1][len + 1] = '\0';
318                                            p_editor_data->display_line_lengths[display_line + i - 1] = len + 1;
319                                    }
320                                    if (*p_offset >= p_editor_data->display_line_lengths[*p_display_line])
321                                    {
322                                            *p_offset = p_editor_data->display_line_lengths[*p_display_line] - 1;
323                                    }
324                                    break;
325                          }                          }
326                          for (j = p_editor_data->display_line_total; j > last_display_line + 1; j--)                          for (j = p_editor_data->display_line_total; j > last_display_line + 1; j--)
327                          {                          {
# Line 335  int editor_data_insert(EDITOR_DATA *p_ed Line 350  int editor_data_insert(EDITOR_DATA *p_ed
350          if (*p_offset >= p_editor_data->display_line_lengths[*p_display_line])          if (*p_offset >= p_editor_data->display_line_lengths[*p_display_line])
351          {          {
352                  *p_offset -= p_editor_data->display_line_lengths[*p_display_line];                  *p_offset -= p_editor_data->display_line_lengths[*p_display_line];
                 (*p_display_line)++;  
353    
354                  if (*p_display_line >= p_editor_data->display_line_total)                  if (*p_display_line + 1 >= p_editor_data->display_line_total)
355                  {                  {
356                          log_error("*p_display_line(%d) >= display_line_total(%d)\n", *p_display_line, p_editor_data->display_line_total);                          log_error("*p_display_line(%d) >= display_line_total(%d)\n", *p_display_line, p_editor_data->display_line_total);
357                  }                  }
358                    else
359                    {
360                            (*p_display_line)++;
361                    }
362          }          }
363    
364          return 0;          return 0;


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1