/* ** OSSP path - Filesystem Path Manipulation ** Copyright (c) 2002 Ralf S. Engelschall ** Copyright (c) 2002 The OSSP Project ** Copyright (c) 2002 Cable & Wireless Deutschland ** ** This file is part of OSSP path, a filesystem path manipulation library ** which can be found at http://www.ossp.org/pkg/lib/path/. ** ** Permission to use, copy, modify, and distribute this software for ** any purpose with or without fee is hereby granted, provided that ** the above copyright notice and this permission notice appear in all ** copies. ** ** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ** SUCH DAMAGE. ** ** path_test.c: test suite */ #include #include #include #include #include #include #include "path.h" int main(int argc, char *argv[]) { char result[MAXPATHLEN]; char cwd[MAXPATHLEN]; char *rv; if (argc < 3) { fprintf(stderr, "usage: test abs2rel|rel2abs path [base]\n"); exit(1); } if (argc == 3) { if (getcwd(cwd, MAXPATHLEN) == NULL) { fprintf(stderr, "cannot get current directory.\n"); exit(1); } } else strcpy(cwd, argv[3]); if (strcmp(argv[1], "abs2rel") == 0) rv = path_abs2rel(result, MAXPATHLEN, argv[2], cwd); else rv = path_rel2abs(result, MAXPATHLEN, argv[2], cwd); if (rv != NULL) printf("%s\n", result); else printf("ERROR\n"); exit(0); }