xref: /netbsd-src/external/ibm-public/postfix/dist/src/util/printable.c (revision a24efa7dea9f1f56c3bdb15a927d3516792ace1c)
1 /*	$NetBSD: printable.c,v 1.1.1.1 2009/06/23 10:09:00 tron Exp $	*/
2 
3 /*++
4 /* NAME
5 /*	printable 3
6 /* SUMMARY
7 /*	mask non-printable characters
8 /* SYNOPSIS
9 /*	#include <stringops.h>
10 /*
11 /*	char	*printable(buffer, replacement)
12 /*	char	*buffer;
13 /*	int	replacement;
14 /* DESCRIPTION
15 /*	printable() replaces non-ASCII or non-printable characters in its input
16 /*	by the given replacement.
17 /*
18 /*	Arguments:
19 /* .IP buffer
20 /*	The null-terminated input string.
21 /* .IP replacement
22 /*	Replacement value for characters in \fIbuffer\fR that do not
23 /*	pass the isprint(3) test.
24 /* LICENSE
25 /* .ad
26 /* .fi
27 /*	The Secure Mailer license must be distributed with this software.
28 /* AUTHOR(S)
29 /*	Wietse Venema
30 /*	IBM T.J. Watson Research
31 /*	P.O. Box 704
32 /*	Yorktown Heights, NY 10598, USA
33 /*--*/
34 
35 /* System library. */
36 
37 #include "sys_defs.h"
38 #include <ctype.h>
39 
40 /* Utility library. */
41 
42 #include "stringops.h"
43 
44 char   *printable(char *string, int replacement)
45 {
46     char   *cp;
47     int     ch;
48 
49     for (cp = string; (ch = *(unsigned char *) cp) != 0; cp++)
50 	if (!ISASCII(ch) || !ISPRINT(ch))
51 	    *cp = replacement;
52     return (string);
53 }
54