diff options
-rw-r--r-- | device-functions.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/device-functions.c b/device-functions.c index b646b43..9c641c0 100644 --- a/device-functions.c +++ b/device-functions.c @@ -4026,10 +4026,9 @@ int go_cal(CalStruct *caldata) void cal_string(char *parameter, CalStruct *caldata) { - char string[max_output_length]; - - sprintf(string,"CH%d %s cal: %d errors. Adj: %6.2f%% max, %6.2f%% avg.\r\n", caldata->channel+1,parameter, caldata->error, caldata->max_change, caldata->avg_change); + gchar *string = g_strdup_printf ("CH%d %s cal: %d errors. Adj: %6.2f%% max, %6.2f%% avg.\r\n", caldata->channel+1,parameter, caldata->error, caldata->max_change, caldata->avg_change); strcat (caldata->response, string); + g_free (string); } @@ -4042,7 +4041,7 @@ int self_cal() int do_full_self_cal(CalStruct *caldata) { - char string[LCD_cols+1]; + gchar *string; long start_timer, diff_timer; int eprom_loc; @@ -4050,8 +4049,10 @@ int do_full_self_cal(CalStruct *caldata) LCD_clear(); /*0123456789012345678901234567890123456789*/ LCD_write(0,0,"Self-calibration in progress."); /*0123456789012345678901234567890123456789*/ - sprintf(string,"Typical run time: %d min, %d sec.", globals.Flash.self_cal_typical_time_min, globals.Flash.self_cal_typical_time_sec); + + string = g_strdup_printf ("Typical run time: %d min, %d sec.", globals.Flash.self_cal_typical_time_min, globals.Flash.self_cal_typical_time_sec); LCD_write(1,0,string); + g_free (string); while ((sec_timer() - globals.Timers.startup_timer_value) < (long)globals.Flash.self_cal_pause) { /*0123456789012345678901234567890123456789*/ @@ -4099,8 +4100,11 @@ int do_full_self_cal(CalStruct *caldata) LCD_clear(); /*0123456789012345678901234567890123456789*/ LCD_write(0,0,"Self-calibration complete."); - sprintf (string, "%d errors. Max change: %6.2f%%", caldata->total_errors, caldata->total_max_change); + + string = g_strdup_printf ("%d errors. Max change: %6.2f%%", caldata->total_errors, caldata->total_max_change); LCD_write(1,0,string); + g_free (string); + LCD_write(2,0,"More details are provided by \"cal?\""); g_usleep (3e6); @@ -4111,9 +4115,9 @@ int do_full_self_cal(CalStruct *caldata) globals.Flash.self_cal_typical_time_min = (int) (diff_timer / 60); globals.Flash.self_cal_typical_time_sec = (int) (diff_timer % 60); - // FIXME - cpp buffer error, due to evil fixed-length strings - sprintf(string,"Completed in %d minutes and %d seconds\r\n", globals.Flash.self_cal_typical_time_min, globals.Flash.self_cal_typical_time_sec); + string = g_strdup_printf ("Completed in %d minutes and %d seconds\r\n", globals.Flash.self_cal_typical_time_min, globals.Flash.self_cal_typical_time_sec); strcat (caldata->response, string); + g_free (string); eprom_loc = (char *) &(globals.Flash.self_cal_typical_time_min) - (char *) &(globals.Flash.flash_start); writeUserBlock(&globals.Flash, eprom_loc, sizeof(globals.Flash.self_cal_typical_time_min)); |