Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'windows/test_screenshot.c')
-rw-r--r--windows/test_screenshot.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/windows/test_screenshot.c b/windows/test_screenshot.c
new file mode 100644
index 00000000..1e3a20d7
--- /dev/null
+++ b/windows/test_screenshot.c
@@ -0,0 +1,45 @@
+#include "putty.h"
+
+static NORETURN PRINTF_LIKE(1, 2) void fatal_error(const char *p, ...)
+{
+ va_list ap;
+ fprintf(stderr, "screenshot: ");
+ va_start(ap, p);
+ vfprintf(stderr, p, ap);
+ va_end(ap);
+ fputc('\n', stderr);
+ exit(1);
+}
+
+void out_of_memory(void) { fatal_error("out of memory"); }
+
+int main(int argc, char **argv)
+{
+ const char *outfile = NULL;
+
+ AuxMatchOpt amo = aux_match_opt_init(argc-1, argv+1, 0, fatal_error);
+ while (!aux_match_done(&amo)) {
+ char *val;
+ #define match_opt(...) aux_match_opt( \
+ &amo, NULL, __VA_ARGS__, (const char *)NULL)
+ #define match_optval(...) aux_match_opt( \
+ &amo, &val, __VA_ARGS__, (const char *)NULL)
+
+ if (aux_match_arg(&amo, &val)) {
+ fatal_error("unexpected argument '%s'", val);
+ } else if (match_optval("-o", "--output")) {
+ outfile = val;
+ } else {
+ fatal_error("unrecognised option '%s'\n", amo.argv[amo.index]);
+ }
+ }
+
+ if (!outfile)
+ fatal_error("expected an output file name");
+
+ char *err = save_screenshot(NULL, outfile);
+ if (err)
+ fatal_error("%s", err);
+
+ return 0;
+}