diff -r cf91a3a20d0d -r 7b134c27fadb main/recipes.c --- a/main/recipes.c Sun May 19 21:05:07 2019 +0200 +++ b/main/recipes.c Mon Jul 01 23:15:49 2019 +0200 @@ -51,7 +51,9 @@ { if (! recipe.Additions) { // No entries yet, add the first one. - sprintf(recipe.Addition[recipe.Additions].Name, "%s", Name); + snprintf(recipe.Addition[recipe.Additions].Name, 63, "%s", Name); +// recipe.Addition[recipe.Additions].Name = ""; +// strncat(recipe.Addition[recipe.Additions].Name, Name, 63); recipe.Addition[recipe.Additions].Type = Type; recipe.Addition[recipe.Additions].Time = Time; recipe.Additions++; @@ -62,7 +64,9 @@ for (int i = 0; i < recipe.Additions; i++) { if (recipe.Addition[i].Time == Time) { // Yes, update the name. - snprintf(recipe.Addition[i].Name, 63, "%s, %s", recipe.Addition[i].Name, Name); + //snprintf(recipe.Addition[i].Name, 63, "%s, %s", recipe.Addition[i].Name, Name); + strncat(recipe.Addition[i].Name, ", ", 63 - strlen(recipe.Addition[i].Name)); + strncat(recipe.Addition[i].Name, Name, 63 - strlen(recipe.Addition[i].Name)); return; } } @@ -76,7 +80,7 @@ recipe.Addition[j+1].Type = recipe.Addition[j].Type; recipe.Addition[j+1].Time = recipe.Addition[j].Time; } - sprintf(recipe.Addition[i].Name, "%s", Name); + snprintf(recipe.Addition[i].Name, 63, "%s", Name); recipe.Addition[i].Type = Type; recipe.Addition[i].Time = Time; recipe.Additions++; @@ -85,7 +89,7 @@ } // Just append. - sprintf(recipe.Addition[recipe.Additions].Name, "%s", Name); + snprintf(recipe.Addition[recipe.Additions].Name, 63, "%s", Name); recipe.Addition[recipe.Additions].Type = Type; recipe.Addition[recipe.Additions].Time = Time; recipe.Additions++; @@ -145,7 +149,8 @@ * We are in a recipe */ if ((_xml_depth == 3) && (strcmp("NAME", _xml_element[2]) == 0)) { - snprintf(recipe.Name, 127, "%s", char_data_buffer); + recipe.Name[0] = '\0'; + strncat(recipe.Name, char_data_buffer, 127); } else if ((_xml_depth == 3) && (strcmp("BOIL_TIME", _xml_element[2]) == 0)) { recipe.BoilTime = atoi(char_data_buffer); } else if ((_xml_depth == 5) && (strcmp("HOPS", _xml_element[2]) == 0) && (strcmp("HOP", _xml_element[3]) == 0)) { @@ -444,7 +449,7 @@ switch (Main_Screen) { case MAIN_TOOLS_RECIPE: - TopMessage("Recepten importeren"); + TopMessage((char *)"Recepten importeren"); r_Imported = 0; TFT_setFont(DEFAULT_FONT, NULL); y = 28; @@ -464,10 +469,10 @@ append_recipe(); rename(filename, newname); _fg = TFT_GREEN; - TFT_print(" Ok", LASTX, y); + TFT_print((char *)" Ok", LASTX, y); } else { _fg = TFT_RED; - TFT_print(" Fout", LASTX, y); + TFT_print((char *)" Fout", LASTX, y); } r_Imported++; // Count them all y += 16; @@ -514,7 +519,7 @@ case MAIN_TOOLS_RECIPE: if (r_Imported) { Buttons_Clear(); - Buttons_Add(135, 210, 50, 30, "Ok" , 0); + Buttons_Add(135, 210, 50, 30, (char *)"Ok" , 0); Buttons_Show(); while (true) { @@ -529,23 +534,23 @@ _bg = TFT_BLACK; TFT_fillScreen(_bg); TFT_resetclipwin(); - TopMessage("Recepten"); + TopMessage((char *)"Recepten"); r_UpdateRec = false; read_recipe(r_CurrentRec); TFT_setFont(DEFAULT_FONT, NULL); - ShowText(2, 28, "Naam", recipe.Name); - ShowText(2, 44, "Code", recipe.Code); - ShowInteger(162, 44, "Record", NULL, r_CurrentRec); - ShowInteger(2, 60, "Kooktijd", " min", recipe.BoilTime); - ShowFloat(162, 60, "Koel tot", " C", recipe.CoolTemp, 2); - ShowFloat(2, 76, "Maisch in", " C", recipe.MashStep[0].Temperature, 2); - ShowFloat(162, 76, "Spoelwater", " C", recipe.SpargeTemp, 2); + ShowText(2, 28, (char *)"Naam", recipe.Name); + ShowText(2, 44, (char *)"Code", recipe.Code); + ShowInteger(162, 44, (char *)"Record", NULL, r_CurrentRec); + ShowInteger(2, 60, (char *)"Kooktijd", (char *)" min", recipe.BoilTime); + ShowFloat(162, 60, (char *)"Koel tot", (char *)" C", recipe.CoolTemp, 2); + ShowFloat(2, 76, (char *)"Maisch in", (char *)" C", recipe.MashStep[0].Temperature, 2); + ShowFloat(162, 76, (char *)"Spoelwater", (char *)" C", recipe.SpargeTemp, 2); y = 92; _fg = TFT_WHITE; - TFT_print("Maisch stap", 2, y); - TFT_print("T", 200, y); - TFT_print("Temp.", 220, y); - TFT_print("Rust", 280, y); + TFT_print((char *)"Maisch stap", 2, y); + TFT_print((char *)"T", 200, y); + TFT_print((char *)"Temp.", 220, y); + TFT_print((char *)"Rust", 280, y); _fg = TFT_YELLOW; y += 16; for (int i = 1; i < 8; i++) { @@ -566,53 +571,53 @@ sprintf(tmp, "%d ", recipe.Additions); TFT_print(tmp, 2, y); _fg = TFT_WHITE; - TFT_print("toevoegingen om", LASTX, y); + TFT_print((char *)"toevoegingen om", LASTX, y); _fg = TFT_YELLOW; for (int i = 1; i <= recipe.Additions; i++) { sprintf(tmp, " %d", recipe.Addition[i-1].Time); TFT_print(tmp, LASTX, y); } _fg = TFT_WHITE; - TFT_print(" minuten", LASTX, y); + TFT_print((char *)" minuten", LASTX, y); } else { _fg = TFT_WHITE; - TFT_print("Geen hop toevoegingen.", 2, y); + TFT_print((char *)"Geen hop toevoegingen.", 2, y); } y += 16; if (recipe.Whirlpool9 || recipe.Whirlpool7 || recipe.Whirlpool6 || recipe.Whirlpool2) { _fg = TFT_WHITE; - TFT_print("Whirlpool ", 2, y); + TFT_print((char *)"Whirlpool ", 2, y); _fg = TFT_YELLOW; if (recipe.Whirlpool9) - TFT_print("88+ ", LASTX, y); + TFT_print((char *)"88+ ", LASTX, y); if (recipe.Whirlpool7) - TFT_print("71+ ", LASTX, y); + TFT_print((char *)"71+ ", LASTX, y); if (recipe.Whirlpool6) - TFT_print("60+ ", LASTX, y); + TFT_print((char *)"60+ ", LASTX, y); if (recipe.Whirlpool2) - TFT_print("koud", LASTX, y); + TFT_print((char *)"koud", LASTX, y); } Buttons_Clear(); - Buttons_Add( 0, 210, 45, 30, "Ok" , 0); - Buttons_Add( 46, 210, 45, 30, "+" , 1); + Buttons_Add( 0, 210, 45, 30, (char *)"Ok" , 0); + Buttons_Add( 46, 210, 45, 30, (char *)"+" , 1); if (r_CurrentRec != config.RecipeRec) - Buttons_Add( 92, 210, 45, 30, "-", 2); + Buttons_Add( 92, 210, 45, 30, (char *)"-", 2); else - Buttons_Add( 92, 210, 45, 30, "" , 2); + Buttons_Add( 92, 210, 45, 30, (char *)"" , 2); if (r_CurrentRec > 1) - Buttons_Add(138, 210, 45, 30, "<", 3); + Buttons_Add(138, 210, 45, 30, (char *)"<", 3); else - Buttons_Add(138, 210, 45, 30, "", 3); + Buttons_Add(138, 210, 45, 30, (char *)"", 3); if (r_CurrentRec < r_Records) - Buttons_Add(184, 210, 45, 30, ">", 4); + Buttons_Add(184, 210, 45, 30, (char *)">", 4); else - Buttons_Add(184, 210, 45, 30, "", 4); + Buttons_Add(184, 210, 45, 30, (char *)"", 4); if (r_CurrentRec != config.RecipeRec) - Buttons_Add(230, 210, 45, 30, "Std", 5); + Buttons_Add(230, 210, 45, 30, (char *)"Std", 5); else - Buttons_Add(230, 210, 45, 30, "", 5); - Buttons_Add(276, 210, 45, 30, "Ed" , 6); + Buttons_Add(230, 210, 45, 30, (char *)"", 5); + Buttons_Add(276, 210, 45, 30, (char *)"Ed" , 6); Buttons[0].dark = true; Buttons_Show(); } /* if (r_UpdateRec) */ @@ -701,15 +706,15 @@ dst = (uint8_t*)&recipe; crc1 = crc32_le(0, dst, sizeof(recipe)); - EditText("Naam", recipe.Name, 31); - EditText("Code", recipe.Code, 31); + EditText((char *)"Naam", recipe.Name, 31); + EditText((char *)"Code", recipe.Code, 31); mashsteps = 0; for (int i = 1; i < 7; i++) { if (recipe.MashStep[i].Resttime) mashsteps++; } - EditInt("Maisch stappen", &mashsteps, 1, 6); - EditFloat("Inmaisch temperatuur", &recipe.MashStep[0].Temperature, 38, 74, 2); + EditInt((char *)"Maisch stappen", &mashsteps, 1, 6); + EditFloat((char *)"Inmaisch temperatuur", &recipe.MashStep[0].Temperature, 38, 74, 2); // Round to 0.25 values recipe.MashStep[0].Temperature = ((int)(recipe.MashStep[0].Temperature * 4)) / 4.0; for (int i = 1; i <= mashsteps; i++) { @@ -741,18 +746,18 @@ } } mintemp = recipe.MashStep[mashsteps].Temperature; - EditFloat("Uitmaischen temperatuur", &recipe.MashStep[7].Temperature, mintemp, 80, 2); + EditFloat((char *)"Uitmaischen temperatuur", &recipe.MashStep[7].Temperature, mintemp, 80, 2); recipe.MashStep[7].Temperature = ((int)(recipe.MashStep[7].Temperature * 4)) / 4.0; - EditUint16("Uitmaischen tijd in minuten", &recipe.MashStep[7].Resttime, 1, 15); + EditUint16((char *)"Uitmaischen tijd in minuten", &recipe.MashStep[7].Resttime, 1, 15); recipe.MashStep[7].Ramptime = (int)(recipe.MashStep[7].Temperature - recipe.MashStep[mashsteps].Temperature); // Zero any higher steps to diable them. for (int i = (mashsteps + 1); i < 7; i++) recipe.MashStep[i].Resttime = 0; - EditUint16("Kook tijd in minuten", &recipe.BoilTime, 3, 480); - EditUint8("Hop/kruiden toevoegingen", &recipe.Additions, 1, 10); + EditUint16((char *)"Kook tijd in minuten", &recipe.BoilTime, 3, 480); + EditUint8((char *)"Hop/kruiden toevoegingen", &recipe.Additions, 1, 10); for (uint8_t i = 0; i < recipe.Additions; i++) { - sprintf(tmp, "Toevoeging %d maam", i+1); + sprintf(tmp, "Toevoeging %d naam", i+1); if (strlen(recipe.Addition[i].Name) == 00) { sprintf(recipe.Addition[i].Name, "Hop %d", (int)i+1); } @@ -766,17 +771,17 @@ recipe.Addition[i].Type = ADDITION_HOP; } - EditFloat("Koel temperatuur", &recipe.CoolTemp, 10, 30, 2); + EditFloat((char *)"Koel temperatuur", &recipe.CoolTemp, 10, 30, 2); recipe.CoolTemp = ((int)(recipe.CoolTemp * 4)) / 4.0; - EditFloat("Spoelwater temperatuur", &recipe.SpargeTemp, 75, 98, 2); + EditFloat((char *)"Spoelwater temperatuur", &recipe.SpargeTemp, 75, 98, 2); recipe.SpargeTemp = ((int)(recipe.SpargeTemp * 4)) / 4.0; - EditUint16("Whirlpool 88..100 graden, 0 = niet", &recipe.Whirlpool9, 0, 120); - EditUint16("Whirlpool 71..77 graden, 0 = niet", &recipe.Whirlpool7, 0, 120); - EditUint16("Whirlpool 60..66 graden, 0 = niet", &recipe.Whirlpool6, 0, 120); - EditUint16("Whirlpool koud, 0 = niet", &recipe.Whirlpool2, 0, 120); + EditUint16((char *)"Whirlpool 88..100 graden, 0 = niet", &recipe.Whirlpool9, 0, 120); + EditUint16((char *)"Whirlpool 71..77 graden, 0 = niet", &recipe.Whirlpool7, 0, 120); + EditUint16((char *)"Whirlpool 60..66 graden, 0 = niet", &recipe.Whirlpool6, 0, 120); + EditUint16((char *)"Whirlpool koud, 0 = niet", &recipe.Whirlpool2, 0, 120); crc2 = crc32_le(0, dst, sizeof(recipe)); - if ((crc1 != crc2) && Confirm("Gewijzigd, opslaan?", "Ja", "Nee")) { + if ((crc1 != crc2) && Confirm((char *)"Gewijzigd, opslaan?", (char *)"Ja", (char *)"Nee")) { write_recipe(r_CurrentRec); } Main_Screen = MAIN_TOOLS_RECIPE;