New API call iso_conv_name_chars(), provisory implementation

This commit is contained in:
2013-12-19 15:41:55 +01:00
parent 88555bd059
commit 3e3c15812b
6 changed files with 181 additions and 2 deletions

View File

@@ -7109,6 +7109,51 @@ int iso_image_hfsplus_get_blessed(IsoImage *img, IsoNode ***blessed_nodes,
int *bless_max, int flag);
/* ----------------------------- Character sets ---------------------------- */
/**
* >>> *** NOT COMPLETELY IMPLEMENTED YET ***
* >>> Convert the characters in name from local charset to another charset or
* >>> to the representation of a particular ISO image name space.
* >>> In the latter case it is assumed that the conversion result does not
* >>> collide with any other converted name in the same directory.
* >>> I.e. this function does not take into respect possible name changes
* >>> due to collision handling.
*
* @param opts
* Defines output charset, UCS-2 versus UTF-16 for Joliet,
* and naming restrictions.
* @param name
* The input text which shall be converted.
* @param result
* Will return the conversion result. Terminated by a trailing zero byte.
* Use free() to dispose it when no longer needed.
* @param result_len
* Will return the number of bytes in result (excluding trailing zero)
* @param flag
* Bitfield for control purposes.
* bit0-bit7= Name space
* 0= generic (to_charset is valid,
* no reserved characters, no length limits)
* 1= Rock Ridge (to_charset is valid)
* 2= Joliet (to_charset gets overridden by UCS-2 or UTF-16)
* 3= ECMA-119 (to_charset gets overridden by
* dull ISO 9660 subset of ASCII)
* 4= HFS+ (to_charset gets overridden by UTF-16BE)
* bit8= Input text is a directory name
* (matters for Joliet and ECMA-119)
* bit15= Reverse operation (best to be done only with results of
* previous conversions)
* @return
* 1 means success, <0 means error
*
* @since 1.3.6
*/
int iso_conv_name_chars(IsoWriteOpts *opts, char *name, size_t name_len,
char **result, size_t *result_len, int flag);
/************ Error codes and return values for libisofs ********************/
/** successfully execution */