diff options
Diffstat (limited to 'plugins/utils.c')
-rw-r--r-- | plugins/utils.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index bb4ffbc2..f2593a16 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
@@ -5,6 +5,7 @@ | |||
5 | * Library of useful functions for plugins | 5 | * Library of useful functions for plugins |
6 | * | 6 | * |
7 | * Copyright (c) 2000 Karl DeBisschop (karl@debisschop.net) | 7 | * Copyright (c) 2000 Karl DeBisschop (karl@debisschop.net) |
8 | * Copyright (c) 2006 Nagios Plugin Development Team | ||
8 | * License: GPL | 9 | * License: GPL |
9 | * | 10 | * |
10 | * $Revision$ | 11 | * $Revision$ |
@@ -639,6 +640,32 @@ strpcat (char *dest, const char *src, const char *str) | |||
639 | return dest; | 640 | return dest; |
640 | } | 641 | } |
641 | 642 | ||
643 | #ifndef HAVE_BASENAME | ||
644 | /* function modified from coreutils base_name function - see ACKNOWLEDGEMENTS */ | ||
645 | char *basename(const char *path) { | ||
646 | char const *base = path; | ||
647 | char const *p; | ||
648 | for (p = base; *p; p++) { | ||
649 | if (*p == '/') { | ||
650 | /* Treat multiple adjacent slashes like single slash */ | ||
651 | do p++; | ||
652 | while (*p == '/'); | ||
653 | |||
654 | /* If filename ends in slash, use trailing slash | ||
655 | as basename if no non-slashes found */ | ||
656 | if (! *p) { | ||
657 | if (*base == '/') | ||
658 | base = p - 1; | ||
659 | break; | ||
660 | } | ||
661 | |||
662 | /* *p is non-slash preceded by slash */ | ||
663 | base = p; | ||
664 | } | ||
665 | } | ||
666 | return (char *) base; | ||
667 | } | ||
668 | #endif | ||
642 | 669 | ||
643 | /****************************************************************************** | 670 | /****************************************************************************** |
644 | * | 671 | * |