int main () { /* Test case n = 0. */ ulc_width_linebreaks (NULL, 0, 80, 0, 0, NULL, "GB18030", NULL); #if HAVE_ICONV { static const char input[36] = /* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */ "Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n"; char *p = (char *) malloc (SIZEOF (input)); size_t i; ulc_width_linebreaks (input, SIZEOF (input), 12, 0, 0, NULL, "ISO-8859-1", p); for (i = 0; i < 36; i++) { ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY : i == 11 || i == 16 || i == 31 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED)); } free (p); } #endif return 0; }
int main (int argc, char * argv[]) { setlocale (LC_CTYPE, ""); if (argc == 2) { /* Insert line breaks for a given width. */ int width = atoi (argv[1]); char *input = read_file (stdin); int length = strlen (input); char *breaks = malloc (length); int i; ulc_width_linebreaks (input, length, width, 0, 0, NULL, locale_charset (), breaks); for (i = 0; i < length; i++) { switch (breaks[i]) { case UC_BREAK_POSSIBLE: putc ('\n', stdout); break; case UC_BREAK_MANDATORY: break; case UC_BREAK_PROHIBITED: break; default: abort (); } putc (input[i], stdout); } free (breaks); return 0; } else return 1; }