Home | History | Annotate | Line # | Download | only in util
      1 /*	$NetBSD: alldig.c,v 1.4 2026/05/09 18:49:22 christos Exp $	*/
      2 
      3 /*++
      4 /* NAME
      5 /*	alldig 3
      6 /* SUMMARY
      7 /*	predicate if string is all numerical
      8 /* SYNOPSIS
      9 /*	#include <stringops.h>
     10 /*
     11 /*	int	alldig(string)
     12 /*	const char *string;
     13 /*
     14 /*	int	allalnum(string)
     15 /*	const char *string;
     16 /*
     17 /*	int	allalnumus(string)
     18 /*	const char *string;
     19 /* DESCRIPTION
     20 /*	alldig() determines if its argument is an all-numerical string.
     21 /*
     22 /*	allalnum() determines if its argument is an all-alphanumerical
     23 /*	string.
     24 /*
     25 /*	allalnumus() determines if its argument is an all-(alphanumerical
     26 /*	or underscore) string.
     27 /* SEE ALSO
     28 /*	An alldig() routine appears in Brian W. Kernighan, P.J. Plauger:
     29 /*	"Software Tools", Addison-Wesley 1976.
     30 /* LICENSE
     31 /* .ad
     32 /* .fi
     33 /*	The Secure Mailer license must be distributed with this software.
     34 /* AUTHOR(S)
     35 /*	Wietse Venema
     36 /*	IBM T.J. Watson Research
     37 /*	P.O. Box 704
     38 /*	Yorktown Heights, NY 10598, USA
     39 /*
     40 /*	Wietse Venema
     41 /*	Google, Inc.
     42 /*	111 8th Avenue
     43 /*	New York, NY 10011, USA
     44 /*
     45 /*	Wietse Venema
     46 /*	porcupine.org
     47 /*--*/
     48 
     49 /* System library. */
     50 
     51 #include <sys_defs.h>
     52 #include <ctype.h>
     53 
     54 /* Utility library. */
     55 
     56 #include <stringops.h>
     57 
     58 /* alldig - return true if string is all digits */
     59 
     60 int     alldig(const char *string)
     61 {
     62     const char *cp;
     63 
     64     if (*string == 0)
     65 	return (0);
     66     for (cp = string; *cp != 0; cp++)
     67 	if (!ISDIGIT(*cp))
     68 	    return (0);
     69     return (1);
     70 }
     71 
     72 /* allalnum - return true if string is all alphanum */
     73 
     74 int     allalnum(const char *string)
     75 {
     76     const char *cp;
     77 
     78     if (*string == 0)
     79 	return (0);
     80     for (cp = string; *cp != 0; cp++)
     81 	if (!ISALNUM(*cp))
     82 	    return (0);
     83     return (1);
     84 }
     85 
     86 /* allalnumus - return true if string is all (alphanum or underscore) */
     87 
     88 int     allalnumus(const char *string)
     89 {
     90     const char *cp;
     91     int     ch;
     92 
     93     if (*string == 0)
     94 	return (0);
     95     for (cp = string; (ch = *cp) != 0; cp++)
     96 	if (!ISALNUM(ch) && ch != '_')
     97 	    return (0);
     98     return (1);
     99 }
    100