693 Write_ValidateSetting(ptr, sd, (unsigned long)p); break; |
693 Write_ValidateSetting(ptr, sd, (unsigned long)p); break; |
694 |
694 |
695 case SDT_STRING: |
695 case SDT_STRING: |
696 switch (GetVarMemType(sld->conv)) { |
696 switch (GetVarMemType(sld->conv)) { |
697 case SLE_VAR_STRB: |
697 case SLE_VAR_STRB: |
|
698 case SLE_VAR_STRBQ: |
|
699 if (p != NULL) ttd_strlcpy((char*)ptr, p, sld->length); |
|
700 break; |
|
701 case SLE_VAR_STR: |
698 case SLE_VAR_STRQ: |
702 case SLE_VAR_STRQ: |
699 if (p != NULL) ttd_strlcpy((char*)ptr, p, sld->length); |
703 if (p != NULL) { |
|
704 free(*(char**)ptr); |
|
705 *(char**)ptr = strdup((const char*)p); |
|
706 } |
700 break; |
707 break; |
701 case SLE_VAR_CHAR: *(char*)ptr = *(char*)p; break; |
708 case SLE_VAR_CHAR: *(char*)ptr = *(char*)p; break; |
702 default: NOT_REACHED(); break; |
709 default: NOT_REACHED(); break; |
703 } |
710 } |
704 break; |
711 break; |
804 } break; |
811 } break; |
805 |
812 |
806 case SDT_STRING: |
813 case SDT_STRING: |
807 switch (GetVarMemType(sld->conv)) { |
814 switch (GetVarMemType(sld->conv)) { |
808 case SLE_VAR_STRB: strcpy(buf, (char*)ptr); break; |
815 case SLE_VAR_STRB: strcpy(buf, (char*)ptr); break; |
809 case SLE_VAR_STRQ: sprintf(buf, "\"%s\"", (char*)ptr); break; |
816 case SLE_VAR_STRBQ:sprintf(buf, "\"%s\"", (char*)ptr); break; |
|
817 case SLE_VAR_STR: strcpy(buf, *(char**)ptr); break; |
|
818 case SLE_VAR_STRQ: sprintf(buf, "\"%s\"", *(char**)ptr); break; |
810 case SLE_VAR_CHAR: sprintf(buf, "\"%c\"", *(char*)ptr); break; |
819 case SLE_VAR_CHAR: sprintf(buf, "\"%c\"", *(char*)ptr); break; |
811 default: NOT_REACHED(); |
820 default: NOT_REACHED(); |
812 } |
821 } |
813 break; |
822 break; |
814 |
823 |
1429 |
1438 |
1430 static const SettingDesc _currency_settings[] = { |
1439 static const SettingDesc _currency_settings[] = { |
1431 SDT_VAR(CurrencySpec, rate, SLE_UINT16, S, 0, 1, 0, 100, STR_NULL, NULL), |
1440 SDT_VAR(CurrencySpec, rate, SLE_UINT16, S, 0, 1, 0, 100, STR_NULL, NULL), |
1432 SDT_CHR(CurrencySpec, separator, S, 0, ".", STR_NULL, NULL), |
1441 SDT_CHR(CurrencySpec, separator, S, 0, ".", STR_NULL, NULL), |
1433 SDT_VAR(CurrencySpec, to_euro, SLE_UINT16, S, 0, 0, 0,1000, STR_NULL, NULL), |
1442 SDT_VAR(CurrencySpec, to_euro, SLE_UINT16, S, 0, 0, 0,1000, STR_NULL, NULL), |
1434 SDT_STR(CurrencySpec, prefix, SLE_STRQ, S, 0, NULL, STR_NULL, NULL), |
1443 SDT_STR(CurrencySpec, prefix, SLE_STRBQ, S, 0, NULL, STR_NULL, NULL), |
1435 SDT_STR(CurrencySpec, suffix, SLE_STRQ, S, 0, " credits", STR_NULL, NULL), |
1444 SDT_STR(CurrencySpec, suffix, SLE_STRBQ, S, 0, " credits", STR_NULL, NULL), |
1436 SDT_END() |
1445 SDT_END() |
1437 }; |
1446 }; |
1438 |
1447 |
1439 /* Undefine for the shortcut macros above */ |
1448 /* Undefine for the shortcut macros above */ |
1440 #undef S |
1449 #undef S |