Changes in uspace/app/edit/edit.c [69cf3a4:c8444d8] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/edit/edit.c
r69cf3a4 rc8444d8 91 91 typedef struct { 92 92 char *file_name; 93 sheet_t *sh;93 sheet_t sh; 94 94 } doc_t; 95 95 … … 175 175 coord_t coord; 176 176 bool new_file; 177 int rc;178 177 179 178 spt_t pt; … … 190 189 191 190 /* Start with an empty sheet. */ 192 rc = sheet_create(&doc.sh); 193 if (rc != EOK) { 194 printf("Out of memory.\n"); 195 return -1; 196 } 191 sheet_init(&doc.sh); 197 192 198 193 /* Place caret at the beginning of file. */ 199 194 coord.row = coord.column = 1; 200 sheet_get_cell_pt( doc.sh, &coord, dir_before, &pt);201 sheet_place_tag( doc.sh, &pt, &pane.caret_pos);195 sheet_get_cell_pt(&doc.sh, &coord, dir_before, &pt); 196 sheet_place_tag(&doc.sh, &pt, &pane.caret_pos); 202 197 pane.ideal_column = coord.column; 203 198 … … 221 216 /* Place selection start tag. */ 222 217 tag_get_pt(&pane.caret_pos, &pt); 223 sheet_place_tag( doc.sh, &pt, &pane.sel_start);218 sheet_place_tag(&doc.sh, &pt, &pane.sel_start); 224 219 225 220 /* Initial display */ … … 452 447 if (select == false) { 453 448 /* Move sel_start to the same point as caret. */ 454 sheet_remove_tag( doc.sh, &pane.sel_start);449 sheet_remove_tag(&doc.sh, &pane.sel_start); 455 450 tag_get_pt(&pane.caret_pos, &pt); 456 sheet_place_tag( doc.sh, &pt, &pane.sel_start);451 sheet_place_tag(&doc.sh, &pt, &pane.sel_start); 457 452 } 458 453 … … 675 670 676 671 do { 677 sheet_copy_out( doc.sh, &sp, epos, buf, BUF_SIZE, &bep);672 sheet_copy_out(&doc.sh, &sp, epos, buf, BUF_SIZE, &bep); 678 673 bytes = str_size(buf); 679 674 … … 710 705 711 706 while (true) { 712 sheet_copy_out( doc.sh, &sp, epos, &buf[bpos], buf_size - bpos,707 sheet_copy_out(&doc.sh, &sp, epos, &buf[bpos], buf_size - bpos, 713 708 &bep); 714 709 bytes = str_size(&buf[bpos]); … … 732 727 int sh_rows, rows; 733 728 734 sheet_get_num_rows( doc.sh, &sh_rows);729 sheet_get_num_rows(&doc.sh, &sh_rows); 735 730 rows = min(sh_rows - pane.sh_row + 1, pane.rows); 736 731 … … 802 797 rbc.row = pane.sh_row + i; 803 798 rbc.column = pane.sh_column; 804 sheet_get_cell_pt( doc.sh, &rbc, dir_before, &rb);799 sheet_get_cell_pt(&doc.sh, &rbc, dir_before, &rb); 805 800 806 801 /* Ending point for row display */ 807 802 rec.row = pane.sh_row + i; 808 803 rec.column = pane.sh_column + pane.columns; 809 sheet_get_cell_pt( doc.sh, &rec, dir_before, &re);804 sheet_get_cell_pt(&doc.sh, &rec, dir_before, &re); 810 805 811 806 /* Copy the text of the row to the buffer. */ 812 sheet_copy_out( doc.sh, &rb, &re, row_buf, ROW_BUF_SIZE, &dep);807 sheet_copy_out(&doc.sh, &rb, &re, row_buf, ROW_BUF_SIZE, &dep); 813 808 814 809 /* Display text from the buffer. */ … … 879 874 spt_t caret_pt; 880 875 coord_t coord; 881 int last_row;882 876 883 877 tag_get_pt(&pane.caret_pos, &caret_pt); 884 878 spt_get_coord(&caret_pt, &coord); 885 879 886 sheet_get_num_rows(doc.sh, &last_row);887 888 880 const char *fname = (doc.file_name != NULL) ? doc.file_name : "<unnamed>"; 889 881 890 882 console_set_pos(con, 0, scr_rows - 1); 891 883 console_set_style(con, STYLE_INVERTED); 892 int n = printf(" %d, %d (%d): File '%s'. Ctrl-Q Quit Ctrl-S Save "893 "Ctrl-E Save As", coord.row, coord.column, last_row,fname);884 int n = printf(" %d, %d: File '%s'. Ctrl-Q Quit Ctrl-S Save " 885 "Ctrl-E Save As", coord.row, coord.column, fname); 894 886 895 887 int pos = scr_columns - 1 - n; … … 927 919 cbuf[offs] = '\0'; 928 920 929 (void) sheet_insert( doc.sh, &pt, dir_before, cbuf);921 (void) sheet_insert(&doc.sh, &pt, dir_before, cbuf); 930 922 931 923 pane.rflags |= REDRAW_ROW; … … 944 936 945 937 coord.column -= 1; 946 sheet_get_cell_pt( doc.sh, &coord, dir_before, &sp);947 948 (void) sheet_delete( doc.sh, &sp, &ep);938 sheet_get_cell_pt(&doc.sh, &coord, dir_before, &sp); 939 940 (void) sheet_delete(&doc.sh, &sp, &ep); 949 941 950 942 pane.rflags |= REDRAW_ROW; … … 962 954 spt_get_coord(&sp, &sc); 963 955 964 sheet_get_cell_pt( doc.sh, &sc, dir_after, &ep);956 sheet_get_cell_pt(&doc.sh, &sc, dir_after, &ep); 965 957 spt_get_coord(&ep, &ec); 966 958 967 (void) sheet_delete( doc.sh, &sp, &ep);959 (void) sheet_delete(&doc.sh, &sp, &ep); 968 960 969 961 pane.rflags |= REDRAW_ROW; … … 1037 1029 else { 1038 1030 coord.row--; 1039 sheet_get_row_width( doc.sh, coord.row, &coord.column);1031 sheet_get_row_width(&doc.sh, coord.row, &coord.column); 1040 1032 } 1041 1033 } 1042 1034 if (drow > 0) { 1043 sheet_get_num_rows( doc.sh, &num_rows);1035 sheet_get_num_rows(&doc.sh, &num_rows); 1044 1036 if (coord.row > num_rows) coord.row = num_rows; 1045 1037 } … … 1054 1046 * coordinates. The character can be wider than one cell (e.g. tab). 1055 1047 */ 1056 sheet_get_cell_pt( doc.sh, &coord, align_dir, &pt);1057 sheet_remove_tag( doc.sh, &pane.caret_pos);1058 sheet_place_tag( doc.sh, &pt, &pane.caret_pos);1048 sheet_get_cell_pt(&doc.sh, &coord, align_dir, &pt); 1049 sheet_remove_tag(&doc.sh, &pane.caret_pos); 1050 sheet_place_tag(&doc.sh, &pt, &pane.caret_pos); 1059 1051 1060 1052 /* For non-vertical movement set the new value for @c ideal_column. */ … … 1076 1068 tag_get_pt(&pane.caret_pos, &pt); 1077 1069 1078 sheet_remove_tag( doc.sh, &pane.sel_start);1079 sheet_place_tag( doc.sh, &pt, &pane.sel_start);1070 sheet_remove_tag(&doc.sh, &pane.sel_start); 1071 sheet_place_tag(&doc.sh, &pt, &pane.sel_start); 1080 1072 } while (!pt_is_word_beginning(&pt)); 1081 1073 … … 1092 1084 tag_get_pt(&pane.caret_pos, &pt); 1093 1085 1094 sheet_remove_tag( doc.sh, &pane.sel_start);1095 sheet_place_tag( doc.sh, &pt, &pane.sel_start);1086 sheet_remove_tag(&doc.sh, &pane.sel_start); 1087 sheet_place_tag(&doc.sh, &pt, &pane.sel_start); 1096 1088 } while (!pt_is_word_beginning(&pt)); 1097 1089 … … 1171 1163 1172 1164 if (rel < 0) 1173 sheet_delete( doc.sh, &pa, &pb);1165 sheet_delete(&doc.sh, &pa, &pb); 1174 1166 else 1175 sheet_delete( doc.sh, &pb, &pa);1167 sheet_delete(&doc.sh, &pb, &pa); 1176 1168 1177 1169 if (ca.row == cb.row) … … 1195 1187 static void selection_sel_range(spt_t pa, spt_t pb) 1196 1188 { 1197 sheet_remove_tag( doc.sh, &pane.sel_start);1198 sheet_place_tag( doc.sh, &pa, &pane.sel_start);1199 sheet_remove_tag( doc.sh, &pane.caret_pos);1200 sheet_place_tag( doc.sh, &pb, &pane.caret_pos);1189 sheet_remove_tag(&doc.sh, &pane.sel_start); 1190 sheet_place_tag(&doc.sh, &pa, &pane.sel_start); 1191 sheet_remove_tag(&doc.sh, &pane.caret_pos); 1192 sheet_place_tag(&doc.sh, &pb, &pane.caret_pos); 1201 1193 1202 1194 pane.rflags |= REDRAW_TEXT; … … 1281 1273 1282 1274 coord.row = coord.column = 1; 1283 sheet_get_cell_pt( doc.sh, &coord, dir_before, pt);1275 sheet_get_cell_pt(&doc.sh, &coord, dir_before, pt); 1284 1276 } 1285 1277 … … 1290 1282 int num_rows; 1291 1283 1292 sheet_get_num_rows( doc.sh, &num_rows);1284 sheet_get_num_rows(&doc.sh, &num_rows); 1293 1285 coord.row = num_rows + 1; 1294 1286 coord.column = 1; 1295 1287 1296 sheet_get_cell_pt( doc.sh, &coord, dir_after, pt);1288 sheet_get_cell_pt(&doc.sh, &coord, dir_after, pt); 1297 1289 } 1298 1290 … … 1305 1297 coord.column = 1; 1306 1298 1307 sheet_get_cell_pt( doc.sh, &coord, dir_before, spt);1299 sheet_get_cell_pt(&doc.sh, &coord, dir_before, spt); 1308 1300 } 1309 1301 … … 1315 1307 1316 1308 spt_get_coord(cpt, &coord); 1317 sheet_get_row_width( doc.sh, coord.row, &row_width);1309 sheet_get_row_width(&doc.sh, coord.row, &row_width); 1318 1310 coord.column = row_width - 1; 1319 1311 1320 sheet_get_cell_pt( doc.sh, &coord, dir_after, ept);1312 sheet_get_cell_pt(&doc.sh, &coord, dir_after, ept); 1321 1313 } 1322 1314 … … 1344 1336 1345 1337 coord.column -= 1; 1346 sheet_get_cell_pt( doc.sh, &coord, dir_before, &lp);1338 sheet_get_cell_pt(&doc.sh, &coord, dir_before, &lp); 1347 1339 1348 1340 return pt_is_delimiter(&lp) … … 1366 1358 1367 1359 coord.column += 1; 1368 sheet_get_cell_pt( doc.sh, &coord, dir_after, &rp);1360 sheet_get_cell_pt(&doc.sh, &coord, dir_after, &rp); 1369 1361 1370 1362 ch = range_get_str(pt, &rp); … … 1392 1384 1393 1385 coord.column += 1; 1394 sheet_get_cell_pt( doc.sh, &coord, dir_after, &rp);1386 sheet_get_cell_pt(&doc.sh, &coord, dir_after, &rp); 1395 1387 1396 1388 ch = range_get_str(pt, &rp);
Note:
See TracChangeset
for help on using the changeset viewer.