Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/dist/src/c/demos/edit/sheet.c

    r70b570c r9d58539  
    5757
    5858#include "sheet.h"
    59 #include "sheet_impl.h"
    6059
    6160enum {
     
    6766
    6867/** Initialize an empty sheet. */
    69 int sheet_create(sheet_t **rsh)
    70 {
    71         sheet_t *sh;
    72 
    73         sh = calloc(1, sizeof(sheet_t));
    74         if (sh == NULL)
    75                 return ENOMEM;
    76 
     68int sheet_init(sheet_t *sh)
     69{
    7770        sh->dbuf_size = INITIAL_SIZE;
    7871        sh->text_size = 0;
     
    8477        list_initialize(&sh->tags);
    8578
    86         *rsh = sh;
    8779        return EOK;
    8880}
     
    10597        char *ipp;
    10698        size_t sz;
     99        tag_t *tag;
    107100        char *newp;
    108101
     
    127120        /* Adjust tags. */
    128121
    129         list_foreach(sh->tags, link, tag_t, tag) {
     122        list_foreach(sh->tags, link) {
     123                tag = list_get_instance(link, tag_t, link);
     124
    130125                if (tag->b_off > pos->b_off)
    131126                        tag->b_off += sz;
     
    151146        char *spp;
    152147        size_t sz;
     148        tag_t *tag;
    153149        char *newp;
    154150        size_t shrink_size;
     
    161157
    162158        /* Adjust tags. */
    163         list_foreach(sh->tags, link, tag_t, tag) {
     159        list_foreach(sh->tags, link) {
     160                tag = list_get_instance(link, tag_t, link);
     161
    164162                if (tag->b_off >= epos->b_off)
    165163                        tag->b_off -= sz;
     
    266264        sheet_get_cell_pt(sh, &coord, dir_before, &pt);
    267265        spt_get_coord(&pt, &coord);
    268         *length = coord.column;
     266        *length = coord.column - 1;
    269267}
    270268
     
    317315}
    318316
    319 /** Get a character at spt and return next spt */
    320 wchar_t spt_next_char(spt_t spt, spt_t *next)
    321 {
    322         wchar_t ch = str_decode(spt.sh->data, &spt.b_off, spt.sh->text_size);
    323         if (next)
    324                 *next = spt;
    325         return ch;
    326 }
    327 
    328 wchar_t spt_prev_char(spt_t spt, spt_t *prev)
    329 {
    330         wchar_t ch = str_decode_reverse(spt.sh->data, &spt.b_off, spt.sh->text_size);
    331         if (prev)
    332                 *prev = spt;
    333         return ch;
    334 }
    335 
    336317/** Place a tag on the specified s-point. */
    337318void sheet_place_tag(sheet_t *sh, spt_t const *pt, tag_t *tag)
Note: See TracChangeset for help on using the changeset viewer.