int main(void) { List *list; list = NULL; if (add_end_dl_list(&list, "Holberton") == 1 || add_end_dl_list(&list, "School") == 1 || add_end_dl_list(&list, "Full") == 1 || add_end_dl_list(&list, "Stack") == 1 || add_end_dl_list(&list, "Engineer") == 1) return (1); printf("FIRST EXAMPLE:\n"); print_dl_list(list); free_dl_list(list); list = NULL; if (add_begin_dl_list(&list, "Holberton") == 1 || add_begin_dl_list(&list, "School") == 1 || add_begin_dl_list(&list, "Full") == 1 || add_begin_dl_list(&list, "Stack") == 1 || add_begin_dl_list(&list, "Engineer") == 1) return (1); printf("SECOND EXAMPLE:\n"); print_dl_list(list); free_dl_list(list); return (0); }
static Errcode tween_sv_undo(void) /* Free old state and clone current state into it. */ { Errcode err; free_dl_list(&twcb->old.links); if ((err = clone_dl_list( &twcb->cur.links, &twcb->old.links, sizeof(Tween_link))) < Success) return(err); if ((err = update_poly(&twcb->cur.p0, &twcb->old.p0)) < Success) return(err); return(update_poly(&twcb->cur.p1, &twcb->old.p1)); }
static Errcode force_other(Poly *p) /* Make sure other poly exists, forcing it to be a clone of this one if necessary . Free up any old links. */ { Poly *other; Errcode err = Success; set_last_made(); other = other_poly(p); if (other->polymagic != POLYMAGIC) { clear_struct(other); err = update_poly(p,other); } free_dl_list(&twcb->cur.links); return(err); }
static void tween_selit(Menuhdr *mh, SHORT hitid) /* Pull-down interpreter for tween system */ { Poly *p; hide_mp(); switch(hitid) { case TWE_UND_PUL: tween_swap_undo(); break; case TWE_ONC_PUL: wireframe_tween(); break; case TWE_LOO_PUL: wireloop_tween(); break; case TWE_REN_PUL: render_tween(); break; case TWE_TRA_PUL: render_trails(); break; case TWE_END_PUL: tween_end_to_start(); break; case TWE_SWA_PUL: tween_swap_ends(); break; case TWE_CLE_PUL: tween_clear(); break; case TWE_FIL_PUL: if (tween_save_undo()>=Success) { if (save_tween_state() >= Success) { tween_undraw(); twe_disable_refresh(); trash_tween_state(&twcb->cur); go_files(FTP_TWEEN); load_tween_state(); twe_enable_refresh(); tween_redraw(); } } break; case TWE_QUI_PUL: mh_gclose_code(mh, Err_abort); break; case SHA_POL_PUL: /* polygon */ vs.tween_tool = TTI_POLY; break; case SHA_SHA_PUL: /* shape */ vs.tween_tool = TTI_SHAPE; break; case SHA_STA_PUL: /* Star */ vs.tween_tool = TTI_STAR; break; case SHA_PET_PUL: /* Petal */ vs.tween_tool = TTI_PETAL; break; case SHA_RPO_PUL: /* Rpoly */ vs.tween_tool = TTI_RPOLY; break; case SHA_OVA_PUL: /* oval */ vs.tween_tool = TTI_OVAL; break; case SHA_REV_PUL: /* reverse */ tween_reverse_poly(); break; case SHA_USE_PUL: /* Use Last */ if (tween_save_undo()>=Success) { if ((load_a_poly(poly_name, p = sel_poly())) >= Success) { softerr(force_other(p),NULL); redraw_both_ends(); } } break; case SHA_LOA_PUL: /* Load */ load_cur_shape(); break; case SHA_SAV_PUL: /* Save */ save_cur_shape(); break; case MOV_MVP_PUL: /* Move Point */ vs.tween_tool = TTI_MPOINT; break; case MOV_MAG_PUL: /* Magnet */ vs.tween_tool = TTI_MAGNET; break; case MOV_BLO_PUL: /* Blow */ vs.tween_tool = TTI_BLOW; break; case MOV_MVS_PUL: /* Move Shape */ vs.tween_tool = TTI_MSHAPE; break; case MOV_MVT_PUL: /* Move tween */ vs.tween_tool = TTI_MTWEEN; break; case MOV_SZS_PUL: /* Size shape */ vs.tween_tool = TTI_SSHAPE; break; case MOV_SZT_PUL: /* Size tween */ vs.tween_tool = TTI_STWEEN; break; case MOV_LIN_PUL: /* Link Points */ vs.tween_tool = TTI_LINK; break; case MOV_CLE_PUL: /* clear links */ if (tween_save_undo()>=Success) { free_dl_list(&twcb->cur.links); redraw_both_ends(); } break; case OPT_CLO_PUL: vs.closed_curve = !vs.closed_curve; redraw_both_ends(); break; case OPT_SPL_PUL: vs.tween_spline = !vs.tween_spline; break; case OPT_TWO_PUL: vs.color2 = !vs.color2; break; case OPT_IN__PUL: /* in slow */ vs.ado_ease = !vs.ado_ease; break; case OPT_OUT_PUL: /* out slow */ vs.ado_ease_out = !vs.ado_ease_out; break; case OPT_STI_PUL: /* still */ vs.ado_tween = !vs.ado_tween; break; case OPT_PIN_PUL: /* ping-pong */ vs.ado_pong = !vs.ado_pong; break; case OPT_REV_PUL: /* reverse */ vs.ado_reverse = !vs.ado_reverse; break; case OPT_COM_PUL: /* complete */ vs.ado_complete = !vs.ado_complete; break; case ACT_STA_PUL: vs.tween_end = TWEEN_START; redraw_both_ends(); break; case ACT_END_PUL: vs.tween_end = TWEEN_END; redraw_both_ends(); break; case ACT_BOT_PUL: vs.tween_end = TWEEN_BOTH; redraw_both_ends(); break; } show_mp(); }