defcode("fflush", _fflush, 0, &_fclose){
fflush((FILE*)*(ArgStackPtr));
+ ArgStackPtr--;
}
defcode("fgetc", _fgetc, 0, &_fflush){
- ArgStackPtr++;
- *(ArgStackPtr) = fgetc((FILE*)*(ArgStackPtr-1));
+ *(ArgStackPtr) = fgetc((FILE*)*(ArgStackPtr));
}
defcode("fputc", _fputc, 0, &_fgetc){
- fputc((char)*(ArgStackPtr), (FILE*)*(ArgStackPtr-1));
- ArgStackPtr--;
+ fputc((char)*(ArgStackPtr-1), (FILE*)*(ArgStackPtr));
+ ArgStackPtr -= 2;
}
-defcode("fpeekc", _fpeekc, 0, &_fputc){
- ArgStackPtr++;
- *(ArgStackPtr) = fgetc((FILE*)*(ArgStackPtr-1));
- ungetc((char)*(ArgStackPtr), (FILE*)*(ArgStackPtr-1));
+defcode("fputs", _fputs, 0, &_fputc){
+ fputs((char*)*(ArgStackPtr-1), (FILE*)*(ArgStackPtr));
+ ArgStackPtr -= 2;
+}
+
+defcode("fpeekc", _fpeekc, 0, &_fputs){
+ FILE* p_file = (FILE*)*(ArgStackPtr);
+ *(ArgStackPtr) = fgetc(p_file);
+ ungetc((char)*(ArgStackPtr), p_file);
}
/* Interpreter Words
}
defcode("'", tick, 1, &semicolon){
- //EXEC(get_word);
- //EXEC(find_word);
+ EXEC(_fetch);
+ EXEC(_parse);
+ ArgStackPtr--;
+ EXEC(find);
}
defcode("interp", interp, 0, &_parse){
if((p_str[0] == '"') && (p_str[strlen(p_str)-1] == '"'))
{
/* Cut off the last double quote */
- p_str[strlen(p_str)] = '\0';
+ p_str[strlen(p_str)-1] = '\0';
/* And return the string after the first double quote */
*(p_val) = (val_t)(p_str+1);
res = true;