NODE *set_text_color(NODE *args) { int fore, back; fore = getint(pos_int_arg(args)); if (NOT_THROWING) { back = getint(pos_int_arg(cdr(args))); if (NOT_THROWING) { ztc_textcolor = hw_color(fore); ztc_text_bgcolor = hw_color(back); disp_setattr((back&07)<<4 | (fore&07)); } } return UNBOUND; }
NODE *lreadchars(NODE *args) { unsigned int c, i; char *strhead, *strptr; NODETYPES type = STRING; c = (unsigned int)getint(pos_int_arg(args)); if (stopping_flag == THROWING) return UNBOUND; charmode_on(); input_blocking++; #ifndef TIOCSTI if (!setjmp(iblk_buf)) #endif { strhead = malloc((size_t)(c + 2)); strptr = strhead + 1; fread(strptr, 1, (int)c, readstream); setstrrefcnt(strhead, 0); } input_blocking = 0; #ifndef TIOCSTI if (stopping_flag == THROWING) return(UNBOUND); #endif if (feof(readstream)) { free(strhead); return(NIL); } for (i = 0; i < c; i++) if (getparity(strptr[i])) type = BACKSLASH_STRING; return(make_strnode(strptr, strhead, (int)c, type, strnzcpy)); }
NODE *lsetwritepos(NODE *arg) { NODE *val = pos_int_arg(arg); if (NOT_THROWING) { fseek(writestream,getint(val),0); } return(UNBOUND); }
/* The logo word ? <question-mark>. */ NODE *lqm(NODE *args) { FIXNUM argnum = 1, i; NODE *np = qm_list; if (args != NIL) argnum = getint(pos_int_arg(args)); if (stopping_flag == THROWING) return(UNBOUND); i = argnum; while (--i > 0 && np != NIL) np = cdr(np); if (np == NIL) return(err_logo(BAD_DATA_UNREC,make_intnode(argnum))); return(car(np)); }
NODE *lchar(NODE *args) { NODE *val = UNBOUND, *arg; char c; arg = pos_int_arg(args); if (NOT_THROWING) { c = (char)getint(arg); val = make_strnode(&c, (struct string_block *)NULL, 1, STRING, strnzcpy); } return(val); }
NODE *lshowturtle(NODE *args) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); if (!turtle_shown) { turtle_shown = TRUE; draw_turtle(); @@ -545,7 +545,7 @@ NODE *lshowturtle(NODE *args) { } NODE *lhideturtle(NODE *args) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); if (turtle_shown) { draw_turtle(); turtle_shown = FALSE; @@ -874,7 +874,7 @@ NODE *llabel(NODE *arg) { *print_stringptr = '\0'; if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); draw_turtle(); theLength = strlen(textbuf); #ifdef mac @@ -983,7 +983,7 @@ NODE *lsetpencolor(NODE *arg) { NODE *val = pos_int_arg(arg); if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); set_pen_color(getint(val)); save_color(); done_drawing; @@ -995,7 +995,7 @@ NODE *lsetbackground(NODE *arg) { NODE *val = pos_int_arg(arg); if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); set_back_ground(getint(val)); done_drawing; } @@ -1008,7 +1008,7 @@ NODE *lsetpalette(NODE *args) { int slotnum = (int)getint(slot); if (NOT_THROWING && (slotnum > 7)) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); set_palette(slotnum, (unsigned int)getint(car(arg)), (unsigned int)getint(cadr(arg)), @@ -1057,7 +1057,7 @@ NODE *lsetpensize(NODE *args) { NODE *arg = pos_int_vector_arg(args); if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); set_pen_width((int)getint(car(arg))); set_pen_height((int)getint(cadr(arg))); save_size(); @@ -1074,7 +1074,7 @@ NODE *lsetpenpattern(NODE *args) { arg = err_logo(BAD_DATA, arg); if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); set_list_pen_pattern(arg); save_pattern(); done_drawing; @@ -1090,7 +1090,7 @@ NODE *lsetscrunch(NODE *args) { ynode = numeric_arg(cdr(args)); if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); draw_turtle(); x_scale = (nodetype(xnode) == FLOATT) ? getfloat(xnode) : (FLONUM)getint(xnode); @@ -1227,7 +1227,7 @@ NODE *larc(NODE *arg) { else radius = getfloat(val2); - prepare_to_draw; + prepare_to_draw2(UNBOUND); draw_turtle(); /* save and force turtle state */ @@ -1582,7 +1582,7 @@ NODE *lloadpict(NODE *args) { lopenread(args); #endif if (NOT_THROWING) { - prepare_to_draw; + prepare_to_draw2(UNBOUND); fp = (FILE *)file_list->n_obj; restore_palette(fp); fread(&record_index, sizeof(FIXNUM), 1, fp);