1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Standalone screenshot utility.

I used this for testing the new windows/utils/screenshot.c, and who
knows, it might come in useful again.
This commit is contained in:
Simon Tatham 2022-04-02 16:20:47 +01:00
parent dec7d7fce7
commit c0fba758e6
2 changed files with 49 additions and 0 deletions

View File

@ -176,3 +176,7 @@ add_executable(test_split_into_argv
utils/split_into_argv.c)
target_compile_definitions(test_split_into_argv PRIVATE TEST)
target_link_libraries(test_split_into_argv utils ${platform_libraries})
add_executable(test_screenshot
test_screenshot.c)
target_link_libraries(test_screenshot utils ${platform_libraries})

45
windows/test_screenshot.c Normal file
View File

@ -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;
}