On Tue, Apr 10, 2012 at 1:33 PM, Manuel López-Ibáñez <lopeziba...@gmail.com> wrote: > On 10 April 2012 21:41, Manuel López-Ibáñez <lopeziba...@gmail.com> wrote: >> On 10 April 2012 21:31, Jason Merrill <ja...@redhat.com> wrote: >>> On 04/10/2012 12:46 PM, Manuel López-Ibáñez wrote: >>>> >>>> + max_width = context->caret_max_width; >>>> + if (max_width<= 0) >>>> + max_width = INT_MAX; >>> >>> >>> I don't think we need the test here; diagnostic_set_caret_max_width should >>> make sure caret_max_width is set sensibly. Otherwise, yes, thanks. >> >> It was just a bit of defensive programming, since nothing stops anyone >> to set the value directly. But I will remove it. >> >>> On 04/10/2012 02:52 PM, Gabriel Dos Reis wrote: >>>> >>>> There is a novelty in this new version that I don't think we discussed >>>> before: automatic expansion of tabs to 8 hard space characters. That >>>> number should not be hardcoded as there is no reason to believe a tab >>>> character always expands to 8 space characters. You should check >>>> the environment first; if not present the default expansion number should >>>> be a symbolic constant as opposed to a magic number sprinkled all over the >>>> places. >>> >>> >>> Hmm. I don't know if there's any reliable way to query tab stops; the "it" >>> termcap/terminfo capability tells you what it was originally (presumably 8), >>> but it might have changed. >> >> No idea either, but it is in fact easier to print tabs a single >> spaces. This simplifies the code a lot, as pointed by Gabriel. So if >> you also prefer the simpler version, I am fine with committing that >> one (it also saves space in the output). > > A new version of the patch. It removes the special handling of tabs. > And abstracts out the adjusting of the line as Gabriel suggested. I am > not sure what else could be abstracted out. The function is much > shorter than other functions in diagnostic.c. > > This patch builds and I am running a full boostrap+check now. > > OK if it passes? > > Cheers, > > Manuel. > > > 2012-04-05 Manuel López-Ibáñez <m...@gcc.gnu.org> > > PR 24985 > libstdc++-v3/ > * testsuite/lib/prune.exp: Handle caret. > libmudflap/ > * testsuite/lib/libmudflap.exp: Handle caret. > gcc/ > * diagnostic.h (show_caret): Declare. > (caret_max_width): Declare. > (diagnostic_show_locus): Declare. > * diagnostic.c (diagnostic_initialize): Initialize to false. > (diagnostic_show_locus): New. > (diagnostic_report_diagnostic): Call it. > (getenv_columns): New. > (adjust_line): New. > (diagnostic_set_caret_max_width): New. > * input.c (read_line): New. > (location_get_source_line): New. > * input.h (location_get_source_line): Declare. > * toplev.c (general_init): Initialize show_caret from options. > * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret. > * opts.c (common_handle_option): Likewise. > * pretty-print.h (pp_get_prefix): New. > (pp_base_get_prefix): New. > * common.opt (fdiagnostics-show-caret): New option. > * doc/invoke.texi (fdiagnostics-show-caret): Document it. > testsuite/ > * lib/prune.exp: Add -fno-diagnostics-show-caret.
It breaks library tests: ERROR: tcl error sourcing ../../../../src-trunk/boehm-gc/testsuite/../../gcc/testsuite/lib/prune.exp. ERROR: tcl error sourcing ../../../../src-trunk/libgomp/testsuite/../../gcc/testsuite/lib/prune.exp. ERROR: tcl error sourcing ../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp. RROR: tcl error sourcing ../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp. can't read "TEST_ALWAYS_FLAGS": no such variable while executing "set TEST_ALWAYS_FLAGS "-fno-diagnostics-show-caret $TEST_ALWAYS_FLAGS"" (file "../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp" line 20) invoked from within "source ../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source ../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp" invoked from within "catch "uplevel #0 source $file"" make[8]: *** [check-DEJAGNU] Error 1 -- H.J.