VLC_EXPORT( bool, vlc_ureduce, ( unsigned *, unsigned *, uint64_t, uint64_t, uint64_t ) );
-/* vlc_wraptext (defined in src/extras/libc.c) */
-#define wraptext vlc_wraptext
-VLC_EXPORT( char *, vlc_wraptext, ( const char *, int ) LIBVLC_USED );
-
/* iconv wrappers (defined in src/extras/libc.c) */
typedef void *vlc_iconv_t;
VLC_EXPORT( vlc_iconv_t, vlc_iconv_open, ( const char *, const char * ) LIBVLC_USED );
#endif
}
-/*****************************************************************************
- * count_utf8_string: returns the number of characters in the string.
- *****************************************************************************/
-static int count_utf8_string( const char *psz_string )
-{
- int i = 0, i_count = 0;
- while( psz_string[ i ] != 0 )
- {
- if( ((unsigned char *)psz_string)[ i ] < 0x80UL ) i_count++;
- i++;
- }
- return i_count;
-}
-
-/*****************************************************************************
- * wraptext: inserts \n at convenient places to wrap the text.
- * Returns the modified string in a new buffer.
- *****************************************************************************/
-char *vlc_wraptext( const char *psz_text, int i_line )
-{
- int i_len;
- char *psz_line, *psz_new_text;
-
- psz_line = psz_new_text = strdup( psz_text );
-
- i_len = count_utf8_string( psz_text );
-
- while( i_len > i_line )
- {
- /* Look if there is a newline somewhere. */
- char *psz_parser = psz_line;
- int i_count = 0;
- while( i_count <= i_line && *psz_parser != '\n' )
- {
- while( *((unsigned char *)psz_parser) >= 0x80UL ) psz_parser++;
- psz_parser++;
- i_count++;
- }
- if( *psz_parser == '\n' )
- {
- i_len -= (i_count + 1);
- psz_line = psz_parser + 1;
- continue;
- }
-
- /* Find the furthest space. */
- while( psz_parser > psz_line && *psz_parser != ' ' )
- {
- while( *((unsigned char *)psz_parser) >= 0x80UL ) psz_parser--;
- psz_parser--;
- i_count--;
- }
- if( *psz_parser == ' ' )
- {
- *psz_parser = '\n';
- i_len -= (i_count + 1);
- psz_line = psz_parser + 1;
- continue;
- }
-
- /* Wrapping has failed. Find the first space or newline */
- while( i_count < i_len && *psz_parser != ' ' && *psz_parser != '\n' )
- {
- while( *((unsigned char *)psz_parser) >= 0x80UL ) psz_parser++;
- psz_parser++;
- i_count++;
- }
- if( i_count < i_len ) *psz_parser = '\n';
- i_len -= (i_count + 1);
- psz_line = psz_parser + 1;
- }
-
- return psz_new_text;
-}
-
/*****************************************************************************
* iconv wrapper
*****************************************************************************/