tPotential buffer overflow fixed; %tde notation should now work for Location[x]… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit c5c96846e3ee5943f8c32560bf30e047f876b86d | |
parent 237e49d2c39b0a3fbb641caa49c8bc2f10a79399 | |
Author: Ben Webb <[email protected]> | |
Date: Tue, 30 Jul 2002 17:21:41 +0000 | |
Potential buffer overflow fixed; %tde notation should now work for | |
Location[x].Name. | |
Diffstat: | |
M src/curses_client/curses_client.c | 33 +++++++++++++++++++++--------… | |
M src/gui_client/gtk_client.c | 10 +++++++--- | |
M src/message.c | 4 ++-- | |
3 files changed, 32 insertions(+), 15 deletions(-) | |
--- | |
diff --git a/src/curses_client/curses_client.c b/src/curses_client/curses_clien… | |
t@@ -667,13 +667,15 @@ static gboolean ConnectToServer(Player *Play) | |
static gboolean jet(Player *Play, gboolean AllowReturn) | |
{ | |
int i, c; | |
- char text[80]; | |
+ GString *text; | |
+ text = g_string_new(""); | |
attrset(TextAttr); | |
clear_bottom(); | |
for (i = 0; i < NumLocation; i++) { | |
- sprintf(text, "%d. %s", i + 1, Location[i].Name); | |
- mvaddstr(17 + i / 3, (i % 3) * 20 + 12, text); | |
+ /* Display of shortcut keys and locations to jet to */ | |
+ dpg_string_sprintf(text, _("%d. %tde"), i + 1, Location[i].Name); | |
+ mvaddstr(17 + i / 3, (i % 3) * 20 + 12, text->str); | |
} | |
attrset(PromptAttr); | |
t@@ -684,18 +686,24 @@ static gboolean jet(Player *Play, gboolean AllowReturn) | |
do { | |
c = bgetch(); | |
if (c >= '1' && c < '1' + NumLocation) { | |
- addstr(Location[c - '1'].Name); | |
+ dpg_string_sprintf(text, _("%/Location display/%tde"), | |
+ Location[c - '1'].Name); | |
+ addstr(text->str); | |
if (Play->IsAt != c - '1') { | |
- sprintf(text, "%d", c - '1'); | |
+ g_string_sprintf(text, "%d", c - '1'); | |
DisplayMode = DM_NONE; | |
- SendClientMessage(Play, C_NONE, C_REQUESTJET, NULL, text); | |
- } else | |
+ SendClientMessage(Play, C_NONE, C_REQUESTJET, NULL, text->str); | |
+ } else { | |
c = 0; | |
- } else | |
+ } | |
+ } else { | |
c = 0; | |
+ } | |
} while (c == 0 && !AllowReturn); | |
curs_set(0); | |
+ g_string_free(text, TRUE); | |
+ | |
return (c != 0); | |
} | |
t@@ -1068,7 +1076,10 @@ void HandleClientMessage(char *Message, Player *Play) | |
refresh(); | |
MicroSleep(100000); | |
} | |
- print_location(Location[(int)Play->IsAt].Name); | |
+ text = dpg_strdup_printf(_("%/Current location/%tde"), | |
+ Location[Play->IsAt].Name); | |
+ print_location(text); | |
+ g_free(text); | |
break; | |
case C_QUESTION: | |
pt = Data; | |
t@@ -1775,7 +1786,9 @@ void print_status(Player *Play, gboolean DispDrug) | |
Play->Bitches.Carried, Play->CoatSize); | |
} | |
mvaddstr(0, Width - 2 - strlen(text->str), text->str); | |
- print_location(Location[(int)Play->IsAt].Name); | |
+ dpg_string_sprintf(text, _("%/Current location/%tde"), | |
+ Location[Play->IsAt].Name); | |
+ print_location(text->str); | |
attrset(StatsAttr); | |
c = 0; | |
diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c | |
t@@ -1180,8 +1180,9 @@ void DisplayStats(Player *Play, struct StatusWidgets *St… | |
text = g_string_new(NULL); | |
- gtk_label_set_text(GTK_LABEL(Status->Location), | |
- Location[(int)Play->IsAt].Name); | |
+ dpg_string_sprintf(text, _("%/Current location/%tde"), | |
+ Location[Play->IsAt].Name); | |
+ gtk_label_set_text(GTK_LABEL(Status->Location), text->str); | |
g_string_sprintf(text, "%s%02d%s", Names.Month, Play->Turn, Names.Year); | |
gtk_label_set_text(GTK_LABEL(Status->Date), text->str); | |
t@@ -1441,7 +1442,10 @@ void Jet(GtkWidget *parent) | |
row = i / boxsize; | |
col = i % boxsize; | |
if (AccelChar == '\0') { | |
- button = gtk_button_new_with_label(Location[i].Name); | |
+ name = dpg_strdup_printf(_("%/Location to jet to/%tde"), | |
+ Location[i].Name); | |
+ button = gtk_button_new_with_label(name); | |
+ g_free(name); | |
} else { | |
button = gtk_button_new_with_label(""); | |
diff --git a/src/message.c b/src/message.c | |
t@@ -1330,8 +1330,8 @@ void FormatFightMessage(Player *To, GString *text, Playe… | |
if (AttackName[0]) { | |
if (!IsCop(Attacker) && brandom(0, 100) < 70 | |
&& Attacker->IsAt >= 0) { | |
- g_string_sprintfa(text, _("%s has got away to %s!"), AttackName, | |
- Location[Attacker->IsAt].Name); | |
+ dpg_string_sprintfa(text, _("%s has got away to %tde!"), AttackName, | |
+ Location[Attacker->IsAt].Name); | |
} else { | |
g_string_sprintfa(text, _("%s has got away!"), AttackName); | |
} |