basename.c - sbase - suckless unix tools
 (HTM) git clone git://git.suckless.org/sbase
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       basename.c (607B)
       ---
            1 /* See LICENSE file for copyright and license details. */
            2 #include <libgen.h>
            3 #include <stdio.h>
            4 #include <string.h>
            5 
            6 #include "util.h"
            7 
            8 static void
            9 usage(void)
           10 {
           11         eprintf("usage: %s path [suffix]\n", argv0);
           12 }
           13 
           14 int
           15 main(int argc, char *argv[])
           16 {
           17         ssize_t off;
           18         size_t slen;
           19         char *p = "";
           20 
           21         ARGBEGIN {
           22         default:
           23                 usage();
           24         } ARGEND
           25 
           26         if (argc != 1 && argc != 2)
           27                 usage();
           28 
           29         if (argv[0][0])
           30                 p = basename(argv[0]);
           31         if (argc == 2 && (slen = strlen(argv[1])) > 0) {
           32                 off = strlen(p) - slen;
           33                 if (off > 0 && !strcmp(p + off, argv[1]))
           34                         p[off] = '\0';
           35         }
           36         puts(p);
           37 
           38         return fshut(stdout, "<stdout>");
           39 }