void Editor::moveCurser() { assert(curser); //place/choose/ delete if (hold_place && !Fl::event_key(' ')) { hold_place = false; } else if (hold_place) { handleSpace(); } else if (hold_del && !Fl::event_key(FL_Shift_L) && !Fl::event_key(FL_Shift_R)) { hold_del = false; } else if (hold_del) removeThing(); // skip some frames if (frame < 0) frame = FRAME_SKIP; else { frame--; return; } bool up, down, left, right; up = down = left = right = false; // move in x-dir if (hold_left && !Fl::event_key(FL_Left)) { hold_left = false; } else if (hold_left){ left = true; } else if (hold_right && !Fl::event_key(FL_Right)) { hold_right = false; } else if (hold_right) { right = true; } // move in y-dir if (hold_up && !Fl::event_key(FL_Up)) { hold_up = false; } else if (hold_up) { up = true; } else if (hold_down && !Fl::event_key(FL_Down)) hold_down = false; else if (hold_down) down = true; // set positions advancePosition(up, down, left, right); }
/** * Parse function parses the user input and stores the results in the PARAM struct. * @param param pointer to the PARAM struct * @param input char array that contains the user input */ void parse(ParamP param, char userIn[]) { //check if user only hit enter with no tokens handleBlank(param, userIn); char *parser = strtok(userIn, " \t\n"); while (parser != NULL) { if (!strncmp(parser, "<", 1) || !strncmp(parser, ">", 1)) //check for redirects { handleSpace(param, parser, userIn); handleInRedir(param, parser); parser = strtok(NULL, " \t\n"); } else //add tokens to argumentVector array { param->argumentVector[param->argumentCount] = parser; param->argumentCount++; parser = strtok(NULL, " \t\n"); } } handleAmpersand(param, userIn); }