X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Fsavescreen.c;h=fe8d4e32cbb3e7ef8170c3070c53e2971042defa;hp=09f328baf273d340eda9ede1e0e51fe30a8bc26b;hb=c04d54322f7835ed42e597967d8fa5471025fcac;hpb=e70a86c3d48b8cbad0f6d1c33ba5b027a243834e;ds=inline diff --git a/test/savescreen.c b/test/savescreen.c index 09f328ba..fe8d4e32 100644 --- a/test/savescreen.c +++ b/test/savescreen.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2007 Free Software Foundation, Inc. * + * Copyright (c) 2007,2009 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: savescreen.c,v 1.10 2007/07/21 17:57:37 tom Exp $ + * $Id: savescreen.c,v 1.11 2009/10/10 19:38:21 tom Exp $ * * Demonstrate save/restore functions from the curses library. * Thomas Dickey - 2007/7/14 @@ -34,6 +34,9 @@ #include +#include +#include + #if TIME_WITH_SYS_TIME # include # include @@ -47,6 +50,13 @@ static bool use_init = FALSE; +static int +fexists(const char *name) +{ + struct stat sb; + return (stat(name, &sb) == 0 && (sb.st_mode & S_IFMT) == S_IFREG); +} + static void setup_next(void) { @@ -163,6 +173,14 @@ main(int argc, char *argv[]) } } + files = argv + optind; + last = argc - optind - 1; + + if (replaying) { + while (last >= 0 && !fexists(files[last])) + --last; + } + initscr(); cbreak(); noecho(); @@ -176,8 +194,6 @@ main(int argc, char *argv[]) } } - files = argv + optind; - last = argc - optind - 1; if (replaying) { /*