From b70c3613fa030a0ac798d5ea70345e86711d7209 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 19 Mar 2007 22:08:18 +0000 Subject: [PATCH] (svn r9355) [0.5] -Backport from trunk (r8906): - Feature: translation dependant formatting of dates (r8906) --- lang/american.txt | 3 ++ lang/brazilian_portuguese.txt | 3 ++ lang/bulgarian.txt | 3 ++ lang/catalan.txt | 3 ++ lang/czech.txt | 3 ++ lang/danish.txt | 3 ++ lang/dutch.txt | 3 ++ lang/english.txt | 5 ++++ lang/esperanto.txt | 3 ++ lang/finnish.txt | 3 ++ lang/french.txt | 3 ++ lang/german.txt | 3 ++ lang/hungarian.txt | 3 ++ lang/italian.txt | 3 ++ lang/japanese.txt | 3 ++ lang/korean.txt | 3 ++ lang/norwegian_bokmal.txt | 3 ++ lang/norwegian_nynorsk.txt | 3 ++ lang/polish.txt | 3 ++ lang/portuguese.txt | 3 ++ lang/romanian.txt | 3 ++ lang/russian.txt | 3 ++ lang/simplified_chinese.txt | 3 ++ lang/slovak.txt | 3 ++ lang/slovenian.txt | 3 ++ lang/spanish.txt | 3 ++ lang/swedish.txt | 3 ++ lang/traditional_chinese.txt | 3 ++ lang/turkish.txt | 3 ++ lang/ukrainian.txt | 3 ++ lang/unfinished/croatian.txt | 3 ++ strings.c | 52 +++++++++++++++++++++-------------- 32 files changed, 126 insertions(+), 21 deletions(-) diff --git a/lang/american.txt b/lang/american.txt index 133759b04b..9de5b600a2 100644 --- a/lang/american.txt +++ b/lang/american.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Length: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Area: {NUM} x {NUM}{}Height difference: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/brazilian_portuguese.txt b/lang/brazilian_portuguese.txt index 35f255a6c0..7856ded15d 100644 --- a/lang/brazilian_portuguese.txt +++ b/lang/brazilian_portuguese.txt @@ -3138,6 +3138,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Comprime STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Area: {NUM} x {NUM}{}Diferença de altura: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/bulgarian.txt b/lang/bulgarian.txt index abf5284aa8..589d892c10 100644 --- a/lang/bulgarian.txt +++ b/lang/bulgarian.txt @@ -3137,6 +3137,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Дълж STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Площ: {NUM} x {NUM}{}Разлика във височината: {NUM} м ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/catalan.txt b/lang/catalan.txt index 1ce7ccc114..cb5e55d804 100644 --- a/lang/catalan.txt +++ b/lang/catalan.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Llargada STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Àrea: {NUM} x {NUM}{}Diferència d'alçada: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/czech.txt b/lang/czech.txt index 9912106d1f..dd9e67bd71 100644 --- a/lang/czech.txt +++ b/lang/czech.txt @@ -3199,6 +3199,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Délka: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Oblast: {NUM} x {NUM}{}Výškový rozdíl: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/danish.txt b/lang/danish.txt index bbebe44cdc..9f00b27501 100644 --- a/lang/danish.txt +++ b/lang/danish.txt @@ -3132,6 +3132,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Længde: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Areal: {NUM} x {NUM}{}Højdeforskel: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/dutch.txt b/lang/dutch.txt index 571b80ee87..5806314da5 100644 --- a/lang/dutch.txt +++ b/lang/dutch.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Lengte: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Gebied: {NUM} x {NUM}{}Hoogte verschil: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/english.txt b/lang/english.txt index db765c6ef9..9c8594503f 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -3133,4 +3133,9 @@ STR_MEASURE_AREA :{BLACK}Area: {N STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Length: {NUM}{}Height difference: {NUM} m STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Area: {NUM} x {NUM}{}Height difference: {NUM} m +############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} + ######## diff --git a/lang/esperanto.txt b/lang/esperanto.txt index f7404aeac7..5e2ed01609 100644 --- a/lang/esperanto.txt +++ b/lang/esperanto.txt @@ -3134,6 +3134,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Longo: { STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Regiono: {NUM} x {NUM}{}Altecdiferenco: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/finnish.txt b/lang/finnish.txt index 4922bff846..f0e6a4938c 100644 --- a/lang/finnish.txt +++ b/lang/finnish.txt @@ -3129,6 +3129,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Pituus: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Pinta-ala: {NUM} x {NUM}{}Korkeusero: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/french.txt b/lang/french.txt index 9778398bd5..bc22a94792 100644 --- a/lang/french.txt +++ b/lang/french.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Longueur STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Région: {NUM} x {NUM}{}Ecart d'altitude: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}/{STRING}/{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/german.txt b/lang/german.txt index 54de212d9c..7f31fff20d 100644 --- a/lang/german.txt +++ b/lang/german.txt @@ -3134,6 +3134,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Länge: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Gebiet: {NUM} x {NUM}{}Höhenunterschied: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/hungarian.txt b/lang/hungarian.txt index 8c184c070f..9ca618e208 100644 --- a/lang/hungarian.txt +++ b/lang/hungarian.txt @@ -3237,6 +3237,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Távols STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Terület: {NUM} x {NUM}{}Magasságkülönbség: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/italian.txt b/lang/italian.txt index 4f83c5a5cf..edee23d887 100644 --- a/lang/italian.txt +++ b/lang/italian.txt @@ -3134,6 +3134,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Lunghezz STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Area: {NUM} x {NUM}{}Differenza in altezza: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/japanese.txt b/lang/japanese.txt index 2d208f0a11..b881cf66d3 100644 --- a/lang/japanese.txt +++ b/lang/japanese.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}長さ STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}地域:{NUM} x {NUM}{}高さの違い:{NUM} m ############ Date formatting +STR_DATE_TINY :{2:NUM}-{1:STRING}-{0:STRING} +STR_DATE_SHORT :{1:NUM}年{0:STRING} +STR_DATE_LONG :{2:NUM}年{1:STRING}{0:STRING} ######## diff --git a/lang/korean.txt b/lang/korean.txt index 2ce25bd97f..03a89419d6 100644 --- a/lang/korean.txt +++ b/lang/korean.txt @@ -3136,6 +3136,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}길이: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}넓이: {NUM} x {NUM}{}고도차: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/norwegian_bokmal.txt b/lang/norwegian_bokmal.txt index 59f1170824..760d04d7e2 100644 --- a/lang/norwegian_bokmal.txt +++ b/lang/norwegian_bokmal.txt @@ -3129,6 +3129,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Lengde: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Område: {NUM} x {NUM}{}Høydeforskjell: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/norwegian_nynorsk.txt b/lang/norwegian_nynorsk.txt index 4b66937430..262260c5f2 100644 --- a/lang/norwegian_nynorsk.txt +++ b/lang/norwegian_nynorsk.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Lengd: { STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Område: {NUM} x {NUM}{}Høgdeskilnad: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/polish.txt b/lang/polish.txt index bec65d0a8e..89ac6b7d26 100644 --- a/lang/polish.txt +++ b/lang/polish.txt @@ -3263,6 +3263,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Długoś STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Obszar: {NUM} x {NUM}{}Różnica wysokości: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/portuguese.txt b/lang/portuguese.txt index b733d4f83c..cf4abba882 100644 --- a/lang/portuguese.txt +++ b/lang/portuguese.txt @@ -3132,6 +3132,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Comprime STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Área: {NUM} x {NUM}{}Diferença de altura: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/romanian.txt b/lang/romanian.txt index 71c8f18c9a..23da1220ba 100644 --- a/lang/romanian.txt +++ b/lang/romanian.txt @@ -3132,6 +3132,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Lungime: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Suprafata: {NUM} x {NUM}{}Diferenta inaltime: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/russian.txt b/lang/russian.txt index 4c3891fa8f..be8bcfef5f 100644 --- a/lang/russian.txt +++ b/lang/russian.txt @@ -3147,6 +3147,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Длин STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Площадь: {NUM} x {NUM}{}Разница высот: {NUM} м ############ Date formatting +STR_DATE_TINY :{STRING}.{STRING}.{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/simplified_chinese.txt b/lang/simplified_chinese.txt index 804ee4cc96..6e1b5c2d81 100644 --- a/lang/simplified_chinese.txt +++ b/lang/simplified_chinese.txt @@ -3110,6 +3110,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}长度 STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}面积:{NUM} x {NUM}{}高度差:{NUM}米 ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/slovak.txt b/lang/slovak.txt index bd4d39b3b8..648d8b52d3 100644 --- a/lang/slovak.txt +++ b/lang/slovak.txt @@ -3199,6 +3199,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Dlžka: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Plocha: {NUM} x {NUM}{}Výškový rozdiel: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/slovenian.txt b/lang/slovenian.txt index 609554648d..3d913c0aeb 100644 --- a/lang/slovenian.txt +++ b/lang/slovenian.txt @@ -3213,6 +3213,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Dolžina STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Območje: {NUM} x {NUM}{}Višinska razlika: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/spanish.txt b/lang/spanish.txt index 6c8d74558b..2ef7f0f01f 100644 --- a/lang/spanish.txt +++ b/lang/spanish.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Longitud STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Área: {NUM} x {NUM}{}Diferencia altura: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/swedish.txt b/lang/swedish.txt index f4c79b9924..e027581678 100644 --- a/lang/swedish.txt +++ b/lang/swedish.txt @@ -3135,6 +3135,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Längd: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Yta: {NUM} x {NUM}{}Höjdskillnad: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/traditional_chinese.txt b/lang/traditional_chinese.txt index 53cc771e86..598f7e1468 100644 --- a/lang/traditional_chinese.txt +++ b/lang/traditional_chinese.txt @@ -3133,6 +3133,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}長度: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}區域: {NUM} x {NUM}{}高度差: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{2:NUM} 年 {1:STRING} 月 {0:STRING} 日 ######## diff --git a/lang/turkish.txt b/lang/turkish.txt index 674fca7444..10ae495b82 100644 --- a/lang/turkish.txt +++ b/lang/turkish.txt @@ -3127,5 +3127,8 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Uzunluk: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Alan: {NUM} x {NUM}{}Yükseklik farkı: {NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/ukrainian.txt b/lang/ukrainian.txt index b2bbab54ff..83c8096ee2 100644 --- a/lang/ukrainian.txt +++ b/lang/ukrainian.txt @@ -3298,6 +3298,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Довж STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Ділянка: {NUM} x {NUM}{}Різниця висот: {NUM} м ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/lang/unfinished/croatian.txt b/lang/unfinished/croatian.txt index 4da4f696de..cec8f7868f 100644 --- a/lang/unfinished/croatian.txt +++ b/lang/unfinished/croatian.txt @@ -2894,6 +2894,9 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Dužina: STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Područje:{NUM}x{NUM}Visinska razlika:{NUM} m ############ Date formatting +STR_DATE_TINY :{STRING}-{STRING}-{NUM} +STR_DATE_SHORT :{STRING} {NUM} +STR_DATE_LONG :{STRING} {STRING} {NUM} ######## diff --git a/strings.c b/strings.c index a5d39522b3..8c5ff2562a 100644 --- a/strings.c +++ b/strings.c @@ -240,9 +240,17 @@ char *InlineString(char *buf, StringID string) } -// This function takes a C-string and allocates a temporary string ID. -// The duration of the bound string is valid only until the next GetString, -// so be careful. +/** + * This function takes a C-string and allocates a temporary string ID. + * The StringID of the bound string is valid until BindCString is called + * another NUM_BOUND_STRINGS times. So be careful when using it. + * + * @note formatting a DATE_TINY calls BindCString twice, thus reduces the + * amount of 'user' bound strings by 2. + * @todo rewrite the BindCString system to make the limit flexible and + * non-round-robin. For example by using smart pointers that free + * the allocated StringID when they go out-of-scope/are freed. + */ StringID BindCString(const char *str) { int idx = (++_bind_index) & (NUM_BOUND_STRINGS - 1); @@ -346,40 +354,42 @@ static char *FormatNoCommaNumber(char *buff, int32 number, const char* last) static char *FormatYmdString(char *buff, Date date, const char* last) { YearMonthDay ymd; - + int32 args[3]; ConvertDateToYMD(date, &ymd); - buff = strecpy(buff, GetStringPtr(ymd.day + STR_01AC_1ST - 1), last); - buff = strecpy(buff, " ", last); - buff = strecpy(buff, GetStringPtr(STR_0162_JAN + ymd.month), last); - buff = strecpy(buff, " ", last); - - return FormatNoCommaNumber(buff, ymd.year, last); + args[0] = ymd.day + STR_01AC_1ST - 1; + args[1] = STR_0162_JAN + ymd.month; + args[2] = ymd.year; + return FormatString(buff, GetStringPtr(STR_DATE_LONG), args, 0, last); } static char *FormatMonthAndYear(char *buff, Date date, const char* last) { YearMonthDay ymd; - + int32 args[2]; ConvertDateToYMD(date, &ymd); - buff = strecpy(buff, GetStringPtr(STR_MONTH_JAN + ymd.month), last); - buff = strecpy(buff, " ", last); - - return FormatNoCommaNumber(buff, ymd.year, last); + args[0] = STR_MONTH_JAN + ymd.month; + args[1] = ymd.year; + return FormatString(buff, GetStringPtr(STR_DATE_SHORT), args, 0, last); } static char *FormatTinyDate(char *buff, Date date, const char* last) { YearMonthDay ymd; - + int32 args[3]; + char day[3]; + char month[3]; ConvertDateToYMD(date, &ymd); - buff += snprintf( - buff, last - buff + 1, - " %02i-%02i-%04i", ymd.day, ymd.month + 1, ymd.year - ); - return buff; + /* We want to zero-pad the days and months */ + snprintf(day, lengthof(day), "%02i", ymd.day); + snprintf(month, lengthof(month), "%02i", ymd.month + 1); + + args[0] = BindCString(day); + args[1] = BindCString(month); + args[2] = ymd.year; + return FormatString(buff, GetStringPtr(STR_DATE_TINY), args, 0, last); } static char *FormatGenericCurrency(char *buff, const CurrencySpec *spec, int64 number, bool compact, const char* last)