| 1558 n += 4; |
1558 n += 4; |
| 1559 else if((c&0xFC) == 0xFC) |
1559 else if((c&0xFC) == 0xFC) |
| 1560 n += 5; |
1560 n += 5; |
| 1561 } |
1561 } |
| 1562 n++; |
1562 n++; |
| 1563 } |
1563 } |
| 1564 result[i] = '\0'; |
1564 result[i] = '\0'; |
| 1565 |
1565 |
| 1566 return result; |
1566 return result; |
| |
1567 } |
| |
1568 |
| |
1569 char *str_to_utf8(unsigned char *in) |
| |
1570 { |
| |
1571 int n = 0,i = 0; |
| |
1572 int inlen; |
| |
1573 char *result = NULL; |
| |
1574 |
| |
1575 if (!in) |
| |
1576 return NULL; |
| |
1577 |
| |
1578 inlen = strlen(in); |
| |
1579 |
| |
1580 result = g_malloc(inlen * 2 + 1); |
| |
1581 |
| |
1582 while (n < inlen) { |
| |
1583 long c = (long)in[n]; |
| |
1584 if (c == 27) { |
| |
1585 n += 2; |
| |
1586 if (in[n] == 'x') |
| |
1587 n++; |
| |
1588 if (in[n] == '3') |
| |
1589 n++; |
| |
1590 n += 2; |
| |
1591 continue; |
| |
1592 } |
| |
1593 if ((c == 0x0D) || (c == 0x0A)) { |
| |
1594 n++; continue; |
| |
1595 } |
| |
1596 if (c < 128) |
| |
1597 result[i++] = (char)c; |
| |
1598 else { |
| |
1599 result[i++] = (char)((c>>6)|192); |
| |
1600 result[i++] = (char)((c&63)|128); |
| |
1601 } |
| |
1602 n++; |
| |
1603 } |
| |
1604 result[i] = '\0'; |
| |
1605 |
| |
1606 return result; |
| 1567 } |
1607 } |
| 1568 |
1608 |
| 1569 time_t get_time(int year, int month, int day, int hour, int min, int sec) |
1609 time_t get_time(int year, int month, int day, int hour, int min, int sec) |
| 1570 { |
1610 { |
| 1571 struct tm tm; |
1611 struct tm tm; |