--- synaptic-0.32/gtk/rgsummarywindow.cc~ 2003-01-22 18:05:23 +0300 +++ synaptic-0.32/gtk/rgsummarywindow.cc 2003-01-28 12:35:33 +0300 @@ -35,6 +35,7 @@ #include "galertpanel.h" #include +#include #include "rgsummarywindow.h" @@ -309,9 +310,8 @@ { - char buffer[1024]; - int left = sizeof(buffer); - int used = 0; + char buffer[256]; + string msg; int toInstall, toRemove, toUpgrade; int held, kept, essential; double sizeChange, dlSize; @@ -324,9 +324,9 @@ lister->getDownloadSummary(dlCount, dlSize); #define APPEND_TXT(descr, number)\ - used += snprintf(buffer+used, left, descr, number, \ + snprintf(buffer, sizeof(buffer), descr, number, \ number > 1 ? _("packages") : _("package")),\ - left -= used, lines++ + lines++, msg.append(buffer); if (held) APPEND_TXT(_("%d %s were held;\n"), held); @@ -358,27 +358,23 @@ } if (templ) { - used += snprintf(buffer+used, left, templ, + snprintf(buffer, sizeof(buffer), templ, SizeToStr(sizeChange).c_str()); - left -= used; lines++; + msg.append(buffer); } if (dlSize > 0) { - used += snprintf(buffer+used, left, + snprintf(buffer, sizeof(buffer), _("\n%sB need to be downloaded."), SizeToStr(dlSize).c_str()); - left -= used; lines++; - } - if (left <= 0) { - cout << "BUFFER OVERFLOW DETECTED, ABORTING" << endl; - abort(); + msg.append(buffer); } #undef APPEND_TXT - gtk_label_set_text(GTK_LABEL(_summaryL), buffer); + gtk_label_set_text(GTK_LABEL(_summaryL), msg.c_str()); } //gtk_widget_set_usize(_win, 360, lines * 12 + 10 + 100 + 20);