diff options
author | rhlabs <rhlabs> | 1998-02-26 20:50:02 +0000 |
---|---|---|
committer | rhlabs <rhlabs> | 1998-02-26 20:50:02 +0000 |
commit | ae5a55f54b4766c83ad0327234f474f4834e383c (patch) | |
tree | 93a959028ca5e27e0d5d99a521e98dd2b74bba48 | |
parent | 35959281e8ae5c2bca312d1addf8f8ba94dff4f5 (diff) | |
download | nautilus-ae5a55f54b4766c83ad0327234f474f4834e383c.tar.gz |
Fixed a couple of things:
- when viewing an info file, the 'Next' 'Prev' 'Up' links are at bottom too.
- you can now view the info 'dir' file and everything should behave.
Still having troubles with retrieving and setting the line number the
html browser is at, which makes going forwards and backwards between
docs act strangely at the moment.
Dr Mike <msf@redhat.com>
5 files changed, 39 insertions, 24 deletions
diff --git a/components/help/converters/gnome-info2html2/html.c b/components/help/converters/gnome-info2html2/html.c index f57f5d017..90c2e2fb9 100644 --- a/components/help/converters/gnome-info2html2/html.c +++ b/components/help/converters/gnome-info2html2/html.c @@ -19,16 +19,25 @@ #define USE_FILE_URLS char *BaseFilename=NULL; +char *OverrideBaseFilename=NULL; /* print out the url for a info file */ char *form_info_tag_href( char *nodefile, char *nodename ) { char tmp[1024]; char *escaped_nodename; + char *filename; escaped_nodename = escape_html_chars( nodename ); - snprintf(tmp,sizeof(tmp),"HREF=\"info:%s#%s\"", - ((BaseFilename) ? BaseFilename : nodefile), escaped_nodename ); + if (!strcmp(BaseFilename, nodefile)) + if (OverrideBaseFilename) + filename = OverrideBaseFilename; + else + filename = BaseFilename; + else + filename = nodefile; + + snprintf(tmp,sizeof(tmp),"HREF=\"info:%s#%s\"", filename, escaped_nodename ); if (escaped_nodename) g_free(escaped_nodename); return g_strdup(tmp); @@ -112,28 +121,17 @@ void write_node_link_html( FILE *f, char *nodefile, char *refname, char *ref ) char *converted_nodename; char *href; - if (ref) - { - if (strcasecmp(ref, "(dir)")) - { + if (ref) { + if (strcasecmp(ref, "(dir)")) { converted_nodename = g_strdup( ref ); map_spaces_to_underscores( converted_nodename ); href = form_info_tag_href(nodefile, converted_nodename); fprintf(f,"<A %s>%s%s</A>\n", href, refname, ref); g_free(href); -#if 0 - fprintf(f,"<A HREF=\"../%s/%s.html\">%s%s</A>\n", - nodefile, converted_nodename, refname, ref); -#endif g_free(converted_nodename); - } - else - { -#if 0 - fprintf(f,"<A HREF=\"../dir/Top.html\">%s(dir)</A>\n",refname); -#endif + } else { href = form_info_tag_href("dir", "Top"); - fprintf(f,"<A %s>%s(dir)</A>\n", href, refname); + fprintf(f,"<A %s>%s(dir)</A>\n",href, refname); g_free(href); } @@ -545,6 +543,8 @@ void dump_html_for_node( NODE *node ) else if (body_open) close_body_text_html( f ); + /* put nav links at the bottom */ + make_nav_links(f, node); #if 0 fprintf(f,"</BODY>\n</HTML>\n"); #endif diff --git a/components/help/converters/gnome-info2html2/html.h b/components/help/converters/gnome-info2html2/html.h index 162829c83..3237b4749 100644 --- a/components/help/converters/gnome-info2html2/html.h +++ b/components/help/converters/gnome-info2html2/html.h @@ -7,6 +7,7 @@ #define HEADER_SIZE_2 "H2" extern char *BaseFilename; +extern char *OverrideBaseFilename; void dump_html_for_node( NODE *node ); diff --git a/components/help/converters/gnome-info2html2/main.c b/components/help/converters/gnome-info2html2/main.c index f259f07a3..a490a24b6 100644 --- a/components/help/converters/gnome-info2html2/main.c +++ b/components/help/converters/gnome-info2html2/main.c @@ -21,6 +21,8 @@ main(int argc, char **argv) int result; int foundit=0; + char convanc[1024]; + NODE *node; if (!be_quiet) @@ -46,16 +48,18 @@ main(int argc, char **argv) *(t+1) = '\0'; + /* convert anchor so matching works */ + map_spaces_to_underscores(requested_nodename); #ifdef DEBUG fprintf(stderr, "outputting node %s\n", requested_nodename); #endif aptr -= 2; } else if (!strcmp(argv[argc-aptr+1], "-b")) { - BaseFilename = strdup(argv[argc-aptr+2]); + OverrideBaseFilename = strdup(argv[argc-aptr+2]); #ifdef DEBUG fprintf(stderr, "outputting basefile %s\n", - BaseFilename); + OverrideBaseFilename); #endif aptr -= 2; } @@ -116,8 +120,10 @@ main(int argc, char **argv) } /* see if this is the requested node name */ + strncpy(convanc, node->nodename, sizeof(convanc)); + map_spaces_to_underscores(convanc); if (requested_nodename && - strcmp(requested_nodename, node->nodename)) { + strcmp(requested_nodename, convanc)) { #ifdef DEBUG fprintf(stderr, "skipping ->%s<-\n", node->nodename); @@ -128,7 +134,8 @@ main(int argc, char **argv) foundit = 1; strcpy(work_node,node->nodename); - + + BaseFilename = node->filename; #ifdef DEBUG printf("NEW NODE\n"); printf("\tFile:|%s|\n\tNode:|%s|\n\tNext:|%s|\n", @@ -146,6 +153,7 @@ main(int argc, char **argv) free(node->contents); free(node); + BaseFilename = NULL; } } else diff --git a/components/help/converters/gnome-info2html2/parse.c b/components/help/converters/gnome-info2html2/parse.c index fe960e761..67575c877 100644 --- a/components/help/converters/gnome-info2html2/parse.c +++ b/components/help/converters/gnome-info2html2/parse.c @@ -40,11 +40,14 @@ NODE *parse_node_line( NODE *node, char * line ) temp = line; + /* have trouble on (dir) file which has a slightly diferrent 'File:' line */ + /* so currently we have a hack here */ if (!(result=parse_node_label( &temp, "File:", 0))) return NULL; node->filename = result; - if (!(result=parse_node_label( &temp, "Node:", 1))) + /* don't allow_eof if we are looking at the 'dir' file, its a special case */ + if (!(result=parse_node_label(&temp,"Node:",strcmp(node->filename, "dir")))) return NULL; node->nodename = result; @@ -86,8 +89,11 @@ char *parse_node_label( char **line, char *label, int allow_eof ) if (end == NULL) end = strstr( start, "\n" ); } - else + else { end = strstr( start, "," ); + if (!end) + end = strstr( start, "\t" ); /* might help (dir) files */ + } if (end == NULL) return NULL; diff --git a/components/help/converters/gnome-info2html2/utils.c b/components/help/converters/gnome-info2html2/utils.c index db0fd0b5f..5de48791f 100644 --- a/components/help/converters/gnome-info2html2/utils.c +++ b/components/help/converters/gnome-info2html2/utils.c @@ -241,7 +241,7 @@ void map_spaces_to_underscores( char *str ) case '\t': case '`': case '\'': - case '/': + case '/': case '\\': case '"': case '.': |