Changes in lib/misc.c [d444c09:36e9f62]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/misc.c
rd444c09 r36e9f62 545 545 return reply; 546 546 } 547 548 /* Word wrapping. Yes, I know this isn't UTF-8 clean. I'm willing to take the risk. */549 char *word_wrap( char *msg, int line_len )550 {551 GString *ret = g_string_sized_new( strlen( msg ) + 16 );552 553 while( strlen( msg ) > line_len )554 {555 int i;556 557 /* First try to find out if there's a newline already. Don't558 want to add more splits than necessary. */559 for( i = line_len; i > 0 && msg[i] != '\n'; i -- );560 if( msg[i] == '\n' )561 {562 g_string_append_len( ret, msg, i + 1 );563 msg += i + 1;564 continue;565 }566 567 for( i = line_len; i > 0; i -- )568 {569 if( msg[i] == '-' )570 {571 g_string_append_len( ret, msg, i + 1 );572 g_string_append_c( ret, '\n' );573 msg += i + 1;574 break;575 }576 else if( msg[i] == ' ' )577 {578 g_string_append_len( ret, msg, i );579 g_string_append_c( ret, '\n' );580 msg += i + 1;581 break;582 }583 }584 if( i == 0 )585 {586 g_string_append_len( ret, msg, line_len );587 g_string_append_c( ret, '\n' );588 msg += line_len;589 }590 }591 g_string_append( ret, msg );592 593 return g_string_free( ret, FALSE );594 }
Note: See TracChangeset
for help on using the changeset viewer.