Your message dated Sun, 05 Mar 2006 11:47:09 -0800
with message-id <[EMAIL PROTECTED]>
and subject line Bug#355353: fixed in most 4.10.2-4
has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--- Begin Message ---
Package: most
Version: 4.10.2-3.0.1
Severity: normal
Tags: patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
There is a glitch in the tab expansion rendering when scrolling horizontally.
This patch fixes the issue.
As an added extra, I documented the most obscure variable in one of the most
esoteric and frequently called functions in the application :)
- -- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-ck5
Locale: LANG=es_AR.UTF-8, LC_CTYPE=es_AR.UTF-8 (charmap=UTF-8)
Versions of packages most depends on:
ii libc6 2.3.6-2 GNU C Library: Shared libraries an
ii libslang2 2.0.5-3 The S-Lang programming library - r
most recommends no packages.
- -- no debconf information
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFECnBL823633cP2P8RAozyAKCRiOkSGS4VqZB3yvJo13EKfhYQhACfTUVG
uJX1rNM8866MBMGD1Qh0Hfg=
=HCb5
-----END PGP SIGNATURE-----
Sólo en most-4.10.2.jkohen/src/: config.h
diff -ur most-4.10.2/src/line.c most-4.10.2.jkohen/src/line.c
--- most-4.10.2/src/line.c 2006-03-03 19:39:38.000000000 -0300
+++ most-4.10.2.jkohen/src/line.c 2006-03-05 01:46:08.000000000 -0300
@@ -124,12 +124,22 @@
{
unsigned char *pout;
char* pattributes;
- unsigned int i, i_max;
+
+ /* Holds the number of columns for the current character counting
+ * from the left margin (in contrast to the leftmost visible
+ * column).
+ */
+ unsigned int col;
+
+ /* Holds the number of the column up to which to apply the
+ * current/following formatting. Only meaningful when format_rlim > i.
+ */
+ unsigned int format_rlim;
beg = most_forward_columns(beg, end, Most_Column - 1, 0);
pout = out;
pattributes = attributes;
- i = i_max = 0;
+ col = format_rlim = 0;
while (beg < end)
{
@@ -141,15 +151,15 @@
if ((ch == '\r') && (Most_V_Opt == 0))
{
- if (i > i_max) i_max = i;
- i = 0;
+ if (col > format_rlim) format_rlim = col;
+ col = 0;
continue;
}
if ((ch == '\b') && (Most_V_Opt == 0))
{
- if (i > i_max) i_max = i;
- if (i > 0)
+ if (col > format_rlim) format_rlim = col;
+ if (col > 0)
{
if (Most_UTF8_Mode)
{
@@ -159,21 +169,21 @@
{
unsigned int char_len = SLwchar_wcwidth(wc);
if (char_len > 1)
- i -= char_len - 1;
+ col -= char_len - 1;
}
}
else
pout--;
pattributes--;
- i--;
+ col--;
}
continue;
}
- if (i < i_max) /* overstrike */
+ if (col < format_rlim) /* overstrike */
{
attr = 'b';
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
if (*pout == '_')
attr = 'u';
@@ -185,7 +195,7 @@
}
if (ch == ' ')
{
- i++;
+ col++;
continue;
}
/* drop */
@@ -200,7 +210,7 @@
{
unsigned int char_len = SLwchar_wcwidth(wc);
if (char_len > 1)
- i += char_len - 1;
+ col += char_len - 1;
}
beg = SLutf8_skip_char(beg, end);
@@ -208,40 +218,45 @@
if (len > 1) {
/* Non-ASCII char, display it. */
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
memcpy(pout, prev, len);
pout += len;
*pattributes++ = attr;
}
- i++;
+ col++;
continue;
}
}
if (most_isprint(ch))
{
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
*pout++ = ch;
*pattributes++ = attr;
}
- i++;
+ col++;
continue;
}
if ((ch == '\t') && (Most_T_Opt == 0) && (Most_Tab_Width))
{
-
- int nspaces = Most_Tab_Width - (i % Most_Tab_Width);
+ /* Tab expansion must take into consideration the
+ * leftmost visible column. However, variable col holds the
+ * number of columns from the left margin and must be
+ * corrected.
+ */
+ int vis_col = col + Most_Column - 1;
+ int nspaces = Most_Tab_Width - (vis_col % Most_Tab_Width);
while (nspaces > 0)
{
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
*pout++ = ' ';
*pattributes++ = attr;
}
- i++;
+ col++;
nspaces--;
}
continue;
@@ -249,36 +264,36 @@
if (ch & 0x80)
{
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
*pout++ = '~';
*pattributes++ = attr;
}
- i++;
+ col++;
ch &= 0x7F;
/* drop */
}
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
*pout++ = '^';
*pattributes++ = attr;
}
- i++;
+ col++;
if (ch == 0x7F) ch = '?';
else ch += '@';
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
*pout++ = ch;
*pattributes++ = attr;
}
- i++;
+ col++;
}
- if (i < i_max)
- i = i_max;
+ if (col < format_rlim)
+ col = format_rlim;
/* Now add "..." if selective display. To do that, the next line needs to
* be dealt with to determine whether or not it will be hidden.
@@ -286,7 +301,7 @@
if (Most_Selective_Display
&& (Most_W_Opt == 0)
&& (beg < Most_Eob)
- && (i < SLtt_Screen_Cols))
+ && (col < SLtt_Screen_Cols))
{
if (*beg == '\n') beg++;
@@ -297,15 +312,16 @@
if ((beg >= Most_Eob) || (*beg == '\n')
|| (most_apparant_distance(beg) >= Most_Selective_Display))
{
- i_max = i + 3;
- while (i < i_max)
+ /* Add an ellipsis, if they fit on the screen. */
+ int rlimit = col + 3;
+ while (col < rlimit)
{
- if (i < SLtt_Screen_Cols)
+ if (col < SLtt_Screen_Cols)
{
*pout++ = '.';
*pattributes++ = ' ';
}
- i++;
+ col++;
}
}
}
@@ -570,7 +586,7 @@
if (Most_T_Opt == 0)
col = Most_Tab_Width * (col/Most_Tab_Width + 1);
else
- col += 2;
+ col += 2; /* ^I is two chars long. */
break;
}
else if (ch & 0x80)
Sólo en most-4.10.2.jkohen/src/: line.c~
Sólo en most-4.10.2.jkohen/src/: Makefile
Sólo en most-4.10.2.jkohen/src/: objs
Sólo en most-4.10.2.jkohen/src/: tags
Sólo en most-4.10.2.jkohen/src/: TAGS
Sólo en most-4.10.2.jkohen/src/: .#window.c
Sólo en most-4.10.2.jkohen/src/: #window.c#
--- End Message ---
--- Begin Message ---
Source: most
Source-Version: 4.10.2-4
We believe that the bug you reported is fixed in the latest version of
most, which is due to be installed in the Debian FTP archive:
most_4.10.2-4.diff.gz
to pool/main/m/most/most_4.10.2-4.diff.gz
most_4.10.2-4.dsc
to pool/main/m/most/most_4.10.2-4.dsc
most_4.10.2-4_i386.deb
to pool/main/m/most/most_4.10.2-4_i386.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Benjamin Mako Hill <[EMAIL PROTECTED]> (supplier of updated most package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.7
Date: Sun, 5 Mar 2006 14:31:15 -0500
Source: most
Binary: most
Architecture: source i386
Version: 4.10.2-4
Distribution: unstable
Urgency: low
Maintainer: Benjamin Mako Hill <[EMAIL PROTECTED]>
Changed-By: Benjamin Mako Hill <[EMAIL PROTECTED]>
Description:
most - Pager program similar to more and less
Closes: 355353
Changes:
most (4.10.2-4) unstable; urgency=low
.
* Fixes bugs with tab expansions when scrolling horizontally.
Closes: #355353
Files:
99c5e803f510b8ea5f0a2ec8055a0439 569 text optional most_4.10.2-4.dsc
7bce8b8f9312169a31254d9a5b66a821 40324 text optional most_4.10.2-4.diff.gz
d98ba5cd07ef3be6ea7d56ca5ab2aa44 45350 text optional most_4.10.2-4_i386.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFECz48ic1LIWB1WeYRAsFbAKD4Y/FGDXu1XjhVl4PUmloM8xx0KgCg0Xao
ESW54nvMZjcLOy7MOWYsDw8=
=vDp3
-----END PGP SIGNATURE-----
--- End Message ---