??? 09/28/05 18:56 Read: times |
#101693 - Recognisable string Responding to: ???'s previous message |
Guy Lavoie said:
That is the "standard" way that I thought I had to use, but I'm trying to avoid the long list of "jc crt" after each character fetch, especially since the destination address will often be more then a short jump can handle, creating even messier code. My main (calling) routine checks each character as they come in to look for a recognizable string and if an unexpected carriage return happens midway through the string, I just want to abort the whole thing. IMHO you should look in more detail at the 'look for a recognisable string' code in order to avoid the 'long list of jc crt after each character fetch'. I would suggest you look at using a loop. e.g. #define CR 0x0D #define MAXSTRLEN 10 // Max string length expected char tempstr[MAXSTRLEN]; char ch; tempstr[0] = '/0'; i = 0; while( (ch = getch()) != CR) { tempstr[i++] = ch; tempstr[i] = '/0' // add new char to string if (valid_command(tempstr) break; } Basically, if the next char is not CR it gets added to the string and valid_command is called. This routine checks the passed string for valid commands and does not have to worry about embedded CRs. Obviously this is very rough but I hope you get the idea. Ian |
Topic | Author | Date |
RET to a different address | 01/01/70 00:00 | |
here is how pseudocode | 01/01/70 00:00 | |
RET to a different address | 01/01/70 00:00 | |
no flaw, but 1.000.000 gotchas | 01/01/70 00:00 | |
That's what I wanted to know | 01/01/70 00:00 | |
Yes | 01/01/70 00:00 | |
"clever" | 01/01/70 00:00 | |
OT: my wife | 01/01/70 00:00 | |
no flaw, but seriously not recommended | 01/01/70 00:00 | |
experience | 01/01/70 00:00 | |
reload SP | 01/01/70 00:00 | |
restoring stack | 01/01/70 00:00 | |
Recognisable string![]() | 01/01/70 00:00 | |
named return value | 01/01/70 00:00 | |
Bad Practice | 01/01/70 00:00 | |
Well phrased | 01/01/70 00:00 | |
What I am doing with it | 01/01/70 00:00 | |
try...catch | 01/01/70 00:00 | |
setjmp / longjmp | 01/01/70 00:00 | |
when to try ... catch | 01/01/70 00:00 | |
the borderline | 01/01/70 00:00 | |
Promises | 01/01/70 00:00 | |
who cares if an exceptiom is "acceptable | 01/01/70 00:00 | |
Parsing input data | 01/01/70 00:00 |