#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
main(argc, argv)
|
|
char **argv;
|
|
{
|
|
register c;
|
|
int xp;
|
|
int width;
|
|
|
|
if ( argc != 2 ) {
|
|
fprintf(stderr, "usage: %s width\n", argv[0]);
|
|
exit(1);
|
|
}
|
|
else if ( (width=atoi(argv[1])) < 1 ) {
|
|
fprintf(stderr, "%s: please set width to > 0\n", argv[0]);
|
|
exit(1);
|
|
}
|
|
|
|
|
|
for ( xp = 1; (c = getchar()) != EOF; xp++ ) {
|
|
while ( c & 0xC0 ) {
|
|
/* assume that (1) the output device understands utf-8, and
|
|
* (2) the only c & 0x80 input is utf-8.
|
|
*/
|
|
do {
|
|
if ( xp <= width )
|
|
putchar(c);
|
|
} while ( (c = getchar()) != EOF && (c & 0x80) && !(c & 0x40) );
|
|
++xp;
|
|
}
|
|
if ( c == '\n' )
|
|
xp = 0;
|
|
if ( xp <= width )
|
|
putchar(c);
|
|
}
|
|
exit(0);
|
|
}
|