diff --git a/CHANGES b/CHANGES
index 18b2406f7..2fbbf061f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,12 @@
CHANGES IN FLTK 1.1.0b8
+ - Fl_Help_View now ignores links when the link callback
+ returns NULL, and displays a sensible error message
+ when an unhandled URI scheme is used (e.g. http:,
+ ftp:)
+ - Fl_File_Icon::load_system_icons() no longer complains
+ about missing icon files, just files that exist but
+ can't be loaded.
- FLUID didn't list the plastic box and frame types.
- Now hide the tooltip window whenever a window is
hidden. Otherwise a tooltip window could keep an
diff --git a/documentation/Fl_Help_View.html b/documentation/Fl_Help_View.html
index 1fb420505..47e5aca2e 100644
--- a/documentation/Fl_Help_View.html
+++ b/documentation/Fl_Help_View.html
@@ -69,11 +69,23 @@ in the buffer.
followed or a file is loaded (via
Fl_Help_View::load()) that requires a different
file or path. The callback function receives a pointer to the
-Fl_Help_View widget and the full pathname for the
-file in question and must return a pathname that can be opened
-as a local file. This can also be used to retrieve remote or
-virtual documents, returning the temporary file that contains
-the actual data.
Fl_Help_View widget and the URI or full pathname
+for the file in question. It must return a pathname that can be
+opened as a local file or NULL:
+
++const char *fn(Fl_Widget *w, const char *uri); ++ +
The link function can be used to retrieve remote or virtual +documents, returning a temporary file that contains the actual +data. If the link function returns NULL, the value of +the Fl_Help_View widget will remain unchanged.
+ +If the link callback cannot handle the URI scheme, it should +return the uri value unchanged or set the value() of the widget +before returning NULL.
Unable to follow the link \"%s\" - " + "no handler exists for this URI scheme.
", + localname); + value_ = strdup(error); + } + else + { + if (strncmp(localname, "file:", 5) == 0) + localname += 5; // Adjust for local filename... + if ((fp = fopen(localname, "rb")) != NULL) { fseek(fp, 0, SEEK_END); @@ -2257,15 +2267,15 @@ Fl_Help_View::load(const char *f)// I - Filename to load (may also have target) } else { - sprintf(error, "%s: %s\n", localname, strerror(errno)); + snprintf(error, sizeof(error), + "Unable to follow the link \"%s\" - " + "%s.
", + localname, strerror(errno)); value_ = strdup(error); } } - else - { - sprintf(error, "%s: %s\n", filename_, strerror(errno)); - value_ = strdup(error); - } format(); @@ -2552,5 +2562,5 @@ hscrollbar_callback(Fl_Widget *s, void *) // -// End of "$Id: Fl_Help_View.cxx,v 1.1.2.18 2001/12/11 16:03:12 easysw Exp $". +// End of "$Id: Fl_Help_View.cxx,v 1.1.2.19 2001/12/17 14:27:03 easysw Exp $". //