/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/*
Copyright 2013-2021 The Libfossil Authors, see LICENSES/BSD-2-Clause.txt
SPDX-License-Identifier: BSD-2-Clause-FreeBSD
SPDX-FileCopyrightText: 2021 The Libfossil Authors
SPDX-ArtifactOfProjectName: Libfossil
SPDX-FileType: Code
*/
/**
This is a template application for libfossil fcli client apps, with
commentary explaining how to do various common things with the
API. Copy/paste this and modify it to suit.
*/
#include "fossil-scm/fossil-cli.h"
#include "fossil-scm/fossil-internal.h"
// Only for testing/debugging..
#define MARKER(pfexp) \
do{ printf("MARKER: %s:%d:%s():\t",__FILE__,__LINE__,__func__); \
printf pfexp; \
} while(0)
int main(int argc, const char * const * argv ){
fsl_cx * f = 0;
bool fromCwd = false;
const fcli_cliflag FCliFlags[] = {
FCLI_FLAG_BOOL(0,"cwd",&fromCwd,
"Treat filenames as relative to cwd "
"instead of checkout root. This is implicit if "
"no checkout is opened."),
fcli_cliflag_empty_m // list MUST end with this (or equivalent)
};
const fcli_help_info FCliHelp = {
"Test app for fsl_reserved_fn_check() and friends.",
"filename1 [...filenameN]",
NULL // optional callback which outputs app-specific help
};
fcli.cliFlags = FCliFlags;
fcli.appHelp = &FCliHelp;
//fcli.checkoutDir = NULL; // same effect as global -C flag.
int rc = fcli_setup(argc, argv);
if(rc) goto end;;
if((rc=fcli_has_unused_flags(false))) goto end;
if(!fcli_next_arg(false)){
rc = fcli_err_set(FSL_RC_MISUSE,"Missing filename.");
goto end;
}
f = fcli_cx();
char const * fn;
f_out("fromCwd = %d\n", fromCwd);
while( (fn = fcli_next_arg(true)) ){
f_out("Testing: %s\n", fn);
rc = fsl_reserved_fn_check(f, fn, -1, fromCwd);
f_out("\t%s\t", fsl_rc_cstr(rc));
if(rc){
char const * zErr = 0;
fsl_cx_err_get(f, &zErr, NULL);
f_out("%s", zErr);
}
f_out("\n");
fsl_cx_err_reset(f);
rc = 0;
}
end:
return fcli_end_of_main(rc);
}