URL: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=11022>
Summary: Line wrapping causes GREP_COLOR background color to "smear" Project: grep Submitted by: twaugh Submitted on: Tue 11/16/2004 at 13:50 Category: None Severity: 3 - Normal Item Group: None Status: Confirmed Privacy: Public Assigned to: None Open/Closed: Open _______________________________________________________ Details: Original bug report: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=138913 Steps to Reproduce: 1. Open bash in an xterm 2. export GREP_COLOR='1;37;41' 3. export GREP_OPTIONS='--color=auto' 4. press <ENTER> until prompt is on the last line of the xterm 5. grep 'expressions containing' /usr/share/doc/grep-2.5.1/* The red background colour extends to the end of the line. Suggested patch attached. _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Thu 04/28/2005 at 16:10 By: Charles Levert <charles_levert> Here's a new patch, produced by cannibalizing patch #3644. The framework introduced by the preprocessor macros is a good thing to have now as moves the actual SGR strings in one place and it will be re-used many times by a newer patch #3644. This includes a corresponding update to tests/foad1.sh as well. Only the ChangeLog entry is missing and will be added upon commit. Ok to commit? ------------------------------------------------------- Date: Sat 01/15/2005 at 23:24 By: Charles Levert <charles_levert> This is now completely covered by patch #3644 which obsoletes the patch in this bug report. ------------------------------------------------------- Date: Sat 01/15/2005 at 14:34 By: Charles Levert <charles_levert> I am afraid the proposed solution isn't enough to cover all cases. Tab characters (HT) have the effect of moving the position without writing spaces in between (as if the pen or printing head was lifted during the move). If matches are denoted by <...>, consider this: .............<.. ..>...HT........ .........<..>. The HT is likely to appear with the background color of matches when the conditions for running grep are as you described. Yet, your patch only clears to the end of line at the very end. A thorough, if expensive, solution would be to replace all occurences of "\33[m" (or the wasteful "\33[00m") by "\33[m\33[K", possibly by defining a preprocessor macro for it (e.g., SGR_END). Also, your patch does not seem to cover the match_icase code path. ------------------------------------------------------- Date: Tue 11/16/2004 at 16:56 By: Tim Waugh <twaugh> Oops, here is a fixed patch. _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Thu 04/28/2005 at 16:10 Name: charles1a.patch Size: 2.81KB By: charles_levert Complete fix to all SGR_END strings + SGR framework <http://savannah.gnu.org/bugs/download.php?item_id=11022&item_file_id=2449> ------------------------------------------------------- Date: Tue 11/16/2004 at 16:56 Name: grep-2.5.1-color.patch Size: 313B By: twaugh grep-2.5.1-color.patch <http://savannah.gnu.org/bugs/download.php?item_id=11022&item_file_id=1883> ------------------------------------------------------- Date: Tue 11/16/2004 at 13:50 Name: grep-2.5.1-color.patch Size: 322B By: twaugh grep-2.5.1-color.patch <http://savannah.gnu.org/bugs/download.php?item_id=11022&item_file_id=1882> _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=11022> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/