mirror of
https://github.com/pbatard/rufus.git
synced 2025-05-21 02:15:11 -04:00
[iso] Syslinux support improvements
* Allow the use of vanilla Syslinux by creating a /syslinux.cfg that references isolinux.cfg * Fix #40 and #42 * Workaround for #44 by search and replace of ISO label in .cfg * ISO9660 Joliet fixes
This commit is contained in:
parent
3e51ed7160
commit
f5939d18ab
6 changed files with 259 additions and 208 deletions
|
@ -303,24 +303,26 @@ bool cdio_charset_to_utf8(char *src, size_t src_len, cdio_utf8_t **dst,
|
|||
if (src == NULL || dst == NULL || src_charset == NULL || strcmp(src_charset, "UCS-2BE") != 0)
|
||||
return false;
|
||||
|
||||
/* Compute UCS-2 src length */
|
||||
if (src_len == (size_t)-1) {
|
||||
for (src_len = 0; ((uint16_t*)src)[src_len] !=0; src_len++);
|
||||
src_len <<=2;
|
||||
} else {
|
||||
src_len >>=1;
|
||||
}
|
||||
|
||||
/* Eliminate empty strings */
|
||||
if ((src_len < 2) || ((src[0] == 0) && (src[1] == 0))) {
|
||||
if ((src_len < 1) || ((src[0] == 0) && (src[1] == 0))) {
|
||||
*dst = NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Perform byte reversal */
|
||||
le_src = (wchar_t*)malloc(src_len+2);
|
||||
for (i=0; i<src_len; i+=2) {
|
||||
((char*)le_src)[i] = src[i+1];
|
||||
((char*)le_src)[i+1] = src[i];
|
||||
le_src = (wchar_t*)malloc(2*src_len+2);
|
||||
for (i=0; i<src_len; i++) {
|
||||
((char*)le_src)[2*i] = src[2*i+1];
|
||||
((char*)le_src)[2*i+1] = src[2*i];
|
||||
}
|
||||
le_src[src_len/2] = 0;
|
||||
le_src[src_len] = 0;
|
||||
*dst = wchar_to_utf8(le_src);
|
||||
free(le_src);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue