[Aptitude-svn-commit] r3572 - in branches/aptitude-0.3/aptitude: . src/vscreen
Daniel Burrows
dburrows@costa.debian.org
Sat, 02 Jul 2005 19:17:33 +0000
Author: dburrows
Date: Sat Jul 2 19:17:31 2005
New Revision: 3572
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/vscreen/columnify.cc
Log:
Fix the generation of column-formatted text.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Sat Jul 2 19:17:31 2005
@@ -1,5 +1,10 @@
2005-07-02 Daniel Burrows <dburrows@debian.org>
+ * src/vscreen/columnify.cc:
+
+ Fix the algorithm that "renders" column-formatted text:
+ due to a logic error, nothing at all was being produced.
+
* src/ui.cc:
Instead of trying to pass a NULL string to pkg_tree::pkg_tree,
Modified: branches/aptitude-0.3/aptitude/src/vscreen/columnify.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/columnify.cc (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/columnify.cc Sat Jul 2 19:17:31 2005
@@ -141,19 +141,20 @@
}
}
- int curwidth=0;
+ int curwidth=0, nextwidth=0;
const int spacewidth=wcwidth(L' ');
for(layout::iterator i=final_info.begin();
i!=final_info.end(); ++i)
{
wstring::size_type amt=0;
- for( ; curwidth<(i->width) &&
+ nextwidth+=i->width;
+ for( ; curwidth<nextwidth &&
amt<i->info.text.size(); ++amt)
{
wchar_t wch=i->info.text[amt];
// Watch out for wide characters overrunning the column
// boundary!
- if(curwidth+wcwidth(wch)<=i->width)
+ if(curwidth+wcwidth(wch)<=nextwidth)
{
rval+=wch;
curwidth+=wcwidth(wch);
@@ -162,7 +163,7 @@
break;
}
// Is it sane for spacewidth to ever differ from unity?
- while(curwidth+spacewidth<i->width)
+ while(curwidth+spacewidth<=nextwidth)
{
rval+=L' ';
curwidth+=spacewidth;