Added "returnOptions" parameter that limits which keys will continue execution
once the src text is revealed. modified: src/main.c modified: src/nms.c modified: src/nms.h modified: src/sneakers.c
This commit is contained in:
parent
1782f6d248
commit
f91d5601c4
@ -15,7 +15,7 @@ int main(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Display characters
|
// Display characters
|
||||||
nmsexec(input);
|
nmsexec(input, NULL);
|
||||||
|
|
||||||
// Don't forget to free the allocated memory!
|
// Don't forget to free the allocated memory!
|
||||||
free(input);
|
free(input);
|
||||||
|
19
src/nms.c
19
src/nms.c
@ -44,10 +44,17 @@ char getMaskChar(void);
|
|||||||
* void nmsexec(char *)
|
* void nmsexec(char *)
|
||||||
*
|
*
|
||||||
* DESCR:
|
* DESCR:
|
||||||
* Displays the characters stored in the / char * / parameter
|
* Displays the characters stored in the / char * / parameter.
|
||||||
|
*
|
||||||
|
* ARGS:
|
||||||
|
* char *src - characters to display
|
||||||
|
* char *returnOptions - user must press key in one of the characters contained in this array
|
||||||
|
* before execution will continue after /char *src/ is revealed. All
|
||||||
|
* other keyboard selections will be ignored. Most commonly used when
|
||||||
|
* displaying a menu.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
char nmsexec(char *src) {
|
char nmsexec(char *src, char *returnOptions) {
|
||||||
struct winpos *list_pointer = NULL;
|
struct winpos *list_pointer = NULL;
|
||||||
struct winpos *start; // Always points to start of list
|
struct winpos *start; // Always points to start of list
|
||||||
struct winpos *temp; // Used for free()ing the list
|
struct winpos *temp; // Used for free()ing the list
|
||||||
@ -222,11 +229,15 @@ char nmsexec(char *src) {
|
|||||||
flushinp();
|
flushinp();
|
||||||
|
|
||||||
// If stdin is set to the keyboard, user must press a key to continue
|
// If stdin is set to the keyboard, user must press a key to continue
|
||||||
if (isatty(STDIN_FILENO))
|
if (isatty(STDIN_FILENO)) {
|
||||||
ret = getch();
|
ret = getch();
|
||||||
else
|
if (returnOptions != NULL && strlen(returnOptions) > 0)
|
||||||
|
while (index(returnOptions, ret) == NULL)
|
||||||
|
ret = getch();
|
||||||
|
} else
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
|
|
||||||
// End curses mode
|
// End curses mode
|
||||||
endwin();
|
endwin();
|
||||||
|
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
// Function prototypes
|
// Function prototypes
|
||||||
|
|
||||||
// Display the characters stored in the display queue
|
// Display the characters stored in the display queue
|
||||||
char nmsexec(char *);
|
char nmsexec(char *, char *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -154,7 +154,7 @@ int main(void) {
|
|||||||
strcat(display, foot2Center);
|
strcat(display, foot2Center);
|
||||||
|
|
||||||
// Display characters
|
// Display characters
|
||||||
input = nmsexec(display);
|
input = nmsexec(display, "123456");
|
||||||
|
|
||||||
switch (input) {
|
switch (input) {
|
||||||
case '1':
|
case '1':
|
||||||
|
Loading…
Reference in New Issue
Block a user