+2019-08-19 Tom Tromey <tom@tromey.com>
+
+ * configure: Rebuild.
+ * configure.ac: Disallow the combination of -static-libstdc++ and
+ source highlight.
+ * source-cache.c (get_language_name): Handle rust.
+ (source_cache::get_source_lines): Ignore highlighting exceptions.
+
2019-08-16 Tom Tromey <tom@tromey.com>
* tui/tui.h (enum tui_win_type) <EXEC_INFO_WIN>: Remove.
as_fn_error $? "pkg-config was not found in your system" "$LINENO" 5
fi
else
+ case "$LDFLAGS" in
+ *static-libstdc*)
+ as_fn_error $? "source highlight is incompatible with -static-libstdc++; either use --disable-source-highlight or --without-static-standard-libraries" "$LINENO" 5
+ ;;
+ esac
+
if ${pkg_config_prog_path} --exists source-highlight; then
SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight`
SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight`
AC_MSG_ERROR([pkg-config was not found in your system])
fi
else
+ case "$LDFLAGS" in
+ *static-libstdc*)
+ AC_MSG_ERROR([source highlight is incompatible with -static-libstdc++; dnl
+either use --disable-source-highlight or dnl
+--without-static-standard-libraries])
+ ;;
+ esac
+
if ${pkg_config_prog_path} --exists source-highlight; then
SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight`
SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight`
break;
case language_rust:
- /* Not handled by Source Highlight. */
- break;
+ return "rust.lang";
case language_ada:
return "ada.lang";
highlighter->setStyleFile ("esc.style");
}
- std::istringstream input (contents);
- std::ostringstream output;
- highlighter->highlight (input, output, lang_name, fullname);
-
- contents = output.str ();
+ try
+ {
+ std::istringstream input (contents);
+ std::ostringstream output;
+ highlighter->highlight (input, output, lang_name, fullname);
+ contents = output.str ();
+ }
+ catch (...)
+ {
+ /* Source Highlight will throw an exception if
+ highlighting fails. One possible reason it can fail
+ is if the language is unknown -- which matters to gdb
+ because Rust support wasn't added until after 3.1.8.
+ Ignore exceptions here and fall back to
+ un-highlighted text. */
+ }
}
}
#endif /* HAVE_SOURCE_HIGHLIGHT */