diff options
| -rw-r--r-- | TODO.org | 7 | ||||
| -rw-r--r-- | main.c | 6 | 
2 files changed, 8 insertions, 5 deletions
| @@ -34,8 +34,8 @@  * IN-PROGRESS Addresses [11/14] -** TODO Probably rethink (and rewrite) addressing -** TODO Test "," extensively +** TODO Probably rethink (and/or rewrite) addressing -- see below  +** TODO Reimplement "," (assign addr2=addr1 in there!!!!)  ** DONE Reimplement offsets [3/3]  *** DONE "," does not work as expected in "1,+10n"  *** DONE addresses like "+1,+2" do not work properly @@ -51,6 +51,7 @@  ** DONE $  ** DONE .  ** DONE ; -** IN-PROGRESS Offsets (+-) [0/2] +** IN-PROGRESS Offsets (+-) [0/3] +*** TODO Test offsets like 1++++n  *** TODO Test offsets like 1+10+10  *** TODO test offsets like 10+-++--10 @@ -61,7 +61,7 @@ int get_addr(const char **cmd){            addr2 = addr1;          addr1 = num;          break; -      case ',': /* range 1 */ +      case ',': /* range 1 */ /* refactor to set addr2 = addr1 */          fprintf(stderr, "    >>>> comma: addr1: %d addr2: %d pos: %d\n", addr1, addr2, pos);          comma = 1;          if (addr1 ==-1) @@ -112,7 +112,9 @@ int get_addr(const char **cmd){        case '+':          fprintf(stderr, "    >>>> +/-: addr1: %d addr2: %d pos: %d\n", addr1, addr2, pos);          addr2 = addr1; -        addr1 = pos; +        /* the assignment below breaks stuff like 1++++ */ +        if (addr1 < 0) +          addr1 = pos;          c ++;          c = skip_blank(&c);          if (! isdigit(*c)){ | 
