--- hnb-1.9.18.orig/debian/watch +++ hnb-1.9.18/debian/watch @@ -0,0 +1 @@ +# hnb 1.9.18 has been removed from hnb.sf.net. --- hnb-1.9.18.orig/debian/rules +++ hnb-1.9.18/debian/rules @@ -0,0 +1,61 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# vim: set ft=make: + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/quilt/quilt.make + +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +export CFLAGS + +build: build-stamp +build-stamp: $(QUILT_STAMPFN) + dh_testdir + $(MAKE) --always-make src/hnbrc.inc + $(MAKE) --always-make -C src init_subsystems.c + $(MAKE) src/hnb + $(MAKE) --always-make -C doc Documentation.html + touch $@ + +clean: unpatch + dh_testdir + dh_testroot + $(RM) src/hnbrc.inc src/init_subsystems.* doc/Documentation.html + $(MAKE) clean + dh_clean build-stamp + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + install -m0755 src/hnb $(CURDIR)/debian/hnb/usr/bin + +binary-indep: +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs debian/changelog.upstream + dh_installdocs + dh_installexamples + dh_installmenu + dh_installman + dh_link + dh_strip + dh_compress -X Documentation.hnb + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean mostlyclean binary-indep binary-arch binary install --- hnb-1.9.18.orig/debian/menu +++ hnb-1.9.18/debian/menu @@ -0,0 +1,5 @@ +?package(hnb):\ + needs="text" \ + section="Applications/Data Management" \ + title="Hierarchical notebook"\ + command="/usr/bin/hnb" --- hnb-1.9.18.orig/debian/docs +++ hnb-1.9.18/debian/docs @@ -0,0 +1,3 @@ +README +doc/Documentation.hnb +doc/Documentation.html --- hnb-1.9.18.orig/debian/compat +++ hnb-1.9.18/debian/compat @@ -0,0 +1 @@ +7 --- hnb-1.9.18.orig/debian/changelog.upstream +++ hnb-1.9.18/debian/changelog.upstream @@ -0,0 +1 @@ +The upstream changelog of hnb is included in /usr/share/doc/hnb/README.gz. --- hnb-1.9.18.orig/debian/doc-base +++ hnb-1.9.18/debian/doc-base @@ -0,0 +1,10 @@ +Document: hnb +Title: Introduction to hnb +Author: Øyvind KolÃ¥s +Abstract: This manual describes what hnb is + and how it can be used. +Section: Data Management + +Format: HTML +Index: /usr/share/doc/hnb/Documentation.html +Files: /usr/share/doc/hnb/Documentation.html --- hnb-1.9.18.orig/debian/dirs +++ hnb-1.9.18/debian/dirs @@ -0,0 +1 @@ +usr/bin --- hnb-1.9.18.orig/debian/examples +++ hnb-1.9.18/debian/examples @@ -0,0 +1 @@ +doc/hnbrc --- hnb-1.9.18.orig/debian/changelog +++ hnb-1.9.18/debian/changelog @@ -0,0 +1,193 @@ +hnb (1.9.18-7) unstable; urgency=low + + * Upload to unstable again. + * Make appearance of todo bullets configurable, this patch has been merged + from lhnb, a hnb fork by Tomáš JanouÅ¡ek. + * Mention lhnb in debian/copyright. + * Add an alternative bullet style to default hnbrc and reformat hnbrc. The + alternative style uses less columns than the original style. + + -- Carsten Hey Thu, 19 Feb 2009 07:58:50 +0100 + +hnb (1.9.18-6) experimental; urgency=low + + * Fixed a character lost bug in word wrapping. Thanks to Tomáš JanouÅ¡ek for + the patch. + * Bump dh compat level to 7, update build dependency and use dh_prep instead + of dh_clean -k. + + -- Carsten Hey Sat, 31 Jan 2009 13:03:34 +0100 + +hnb (1.9.18-5) experimental; urgency=low + + * Upload to experimental. Lenny is in hard freeze and these changes are not + targeted for Lenny. + * Wrap words that are longer than one line. This patch has been written by + Tomáš JanouÅ¡ek in 2007. + * Merge hnbrc.vi into hnbrc and add some macros which change e.g. the + keybindings. Also improve the vi-like keybindings. (Closes: #292889) + * Enable some additional editing commands in hnbrc, e.g. ^B, ^F and ^D. + * Update alternative color scheme so that it does not assume a terminal with + dark background color anymore. + * Mention orphaning by upstream in long description. (Closes: #303711) + * Mention additional contributors in debian/copyright. + * README includes upstream's changelog, thus add a new upstream changelog + file which points to README. + * Disable watch file. hnb 1.9.18 has been removed from sourceforge.net. + + -- Carsten Hey Wed, 28 Jan 2009 08:27:13 +0100 + +hnb (1.9.18-4) unstable; urgency=low + + * New maintainer. Thanks James Morrison! (Closes: #465888) + * Fix broken cursor. (Closes: #339613) + * Save recovery files in hnb's native format and choose a different naming + scheme. Thanks to Steve Pomeroy. (Closes: #340061) + * Don't lose fresh nodes created in search mode after pressing left key. + This is achieved through a adapted configuration file and thus does not + fix bug #405117 for old installations. + * Use sensible-browser instead of w3m. (Closes: #396370) + * Document exporting via shell command. (Closes: #223268) + * Don't compress Documentation.hnb. It is supposed to be read by our users + with one simple command. Document this in hnb(1). + * Fix line breaks in alternate hnbrc file. + * Build cleanly twice in a row and regenerate the documentation, the + configuration file and init_subsystems.c. Also handle CFLAGS correctly. + * libxml has been silently disabled by a previous upload, remove build + dependency. + * Maintain patches using quilt, add build dependency. + * Bump compat level to 5, update build dependency. + * Bump Standards-Version to 3.8.0. + * Move menu item from section Apps/Tools to Applications/Data Management. + * Update debian/copyright, update watch file, update description and add a + doc-base control file. + * Don't ignore errors in make clean. + + -- Carsten Hey Fri, 27 Jun 2008 16:15:39 +0200 + +hnb (1.9.18-3) unstable; urgency=low + + * Make all callbacks return void*. (Closes: #325645, #267438) + + -- James Morrison Sun, 18 Sep 2005 14:02:09 -0700 + +hnb (1.9.18-2) unstable; urgency=low + + * Fix implicitly converted pointer. (Closes: #325352) + + -- James Morrison Sun, 28 Aug 2005 11:31:24 -0700 + +hnb (1.9.18-1) unstable; urgency=low + + * New upstream version. (Closes: #291961) + * Add todo markup to postscript output. (Closes: #268968) + + -- James Morrison Mon, 21 Mar 2005 00:08:48 -0400 + +hnb (1.9.17-4) unstable; urgency=low + + * Add recursive expand/collapse. (Closes: #248798) + * Update maintainer, properly this time! + * Unset 'done' flag when toggling off a todo item. (Closes: #231256) + * Return NULL if node is NULL in node_get. (Closes: #245875) + * Provide an alternate hnbrc file. (Closes: #228413) + + -- James Morrison Wed, 26 May 2004 00:08:48 -0400 + +hnb (1.9.17-3) unstable; urgency=low + + * New debian maintainer. (Closes: #236689) + * Quote menu items. + * Use quotations instead of quotes. + * Convert to non-native package. + + -- James Morrison Fri, 23 Apr 2004 10:28:58 -0400 + +hnb (1.9.17-2) unstable; urgency=low + + * Orphaning the package. + + -- Tore Anderson Sun, 7 Mar 2004 20:18:51 +0100 + +hnb (1.9.17-1) unstable; urgency=low + + * New upstream release, closes: #186963. + - No longer crashes when writing to a read-only database, closes: #146494. + * debian/hnb.dirs, debian/hnb.docs, debian/hnb.examples, debian/rules, + debian/hnb.manpages (new): + - Adapted to the new upstream release. + * debian/control, debian/copyright: + - New maintainer. + * debian/control: + - Up Standards-Version to 3.6.1.0, no changes required. + - Correct spelling errors, closes: #124738. + - Up debhelper dependency to version 4.0.0 or greater. + * debian/rules, debian/compat (new): + - Declare the debhelper compatibility from debian/compat, and increase + it to 4 while I'm at it. + * debian/changelog: + - Remove magic markers for Emacs. + + -- Tore Anderson Sun, 26 Oct 2003 18:48:10 +0100 + +hnb (1.8.1-1) unstable; urgency=low + + * New upstream release. + * Libxml2 support seems to be working now, enabled at configure + (and added libxml2 dependency). + + -- Andras Bali Thu, 6 Sep 2001 21:56:29 +0200 + +hnb (1.7-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Mon, 9 Jul 2001 21:26:52 +0200 + +hnb (1.6.4-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Thu, 7 Jun 2001 19:37:57 +0200 + +hnb (1.6.2-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Sun, 27 May 2001 19:59:27 +0200 + +hnb (1.5-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Thu, 24 May 2001 17:18:51 +0200 + +hnb (1.4-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Wed, 16 May 2001 01:14:19 +0200 + +hnb (1.3-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Mon, 14 May 2001 23:13:40 +0200 + +hnb (1.2-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Sat, 12 May 2001 22:36:13 +0200 + +hnb (1.1b-1) unstable; urgency=low + + * New upstream release. + + -- Andras Bali Thu, 10 May 2001 18:48:36 +0200 + +hnb (1.0-1) unstable; urgency=low + + * Initial Release (Closes: #95245). + + -- Andras Bali Wed, 25 Apr 2001 20:00:16 +0200 --- hnb-1.9.18.orig/debian/manpages +++ hnb-1.9.18/debian/manpages @@ -0,0 +1 @@ +doc/hnb.1 --- hnb-1.9.18.orig/debian/copyright +++ hnb-1.9.18/debian/copyright @@ -0,0 +1,65 @@ +This package was debianized by Andras Bali on +Wed, 25 Apr 2001 20:00:16 +0200. +It was then adopted by: +Tore Anderson on Oct 26th 2003, +James Morrison on Fri, 23 Apr 2004, +Carsten Hey on Fri Feb 29 2008. + + +It was downloaded from http://hnb.sourceforge.net/.files/. + +Copyright: (c) 2000-2004 Øyvind KolÃ¥s + + +lhnb, a hnb fork from which some patches have been merged is maintained by +Tomáš JanouÅ¡ek . It can be found at http://work.lisk.in/ and +http://git.nomi.cz/?p=tomi/lhnb;a=summary. + + +hnb authors/contributors: + + Øyvind KolÃ¥s + project maintainer + Andras BALI + Debian Package + manual page + Karsten Hilbert + pipe export + Martin van Beilen + various todo/done issues in the code + Andrew J Weber + libxml2 import/export + Tore Anderson + Debian Package + James Morrison + Debian Package + Carsten Hey + Debian Package + Osamu Aoki + original mutt/vi-like keybindings + Steve Pomeroy + binary_autosave.patch + Tomáš JanouÅ¡ek + author of lhnb + + +License: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + +On Debian systems, the complete text of the GNU General Public License, +version 2, can be found in /usr/share/common-licenses/GPL-2. Newer +versions of this license can be found in the same directory. --- hnb-1.9.18.orig/debian/control +++ hnb-1.9.18/debian/control @@ -0,0 +1,24 @@ +Source: hnb +Section: misc +Priority: optional +Maintainer: Carsten Hey +Build-Depends: debhelper (>= 7), libncurses5-dev, quilt +Standards-Version: 3.8.0 +Homepage: http://hnb.sourceforge.net/ + +Package: hnb +Architecture: any +Depends: ${shlibs:Depends} +Description: hierarchical notebook + Hnb is an ncurses program to organize many kinds of data in one place, for + example addresses, todo lists, ideas, book reviews or to store snippets of + brainstorming, to make a structured packing list or just to take random notes. + It can export ascii, html and xml, supports todo checkboxes, checkbox trees + with percentages, priorities, preferences, searching and more. + . + Hnb is orphaned upstream. Though the current Debian maintainer tries to keep + hnb in a usable and releasable state he does not plan to add many new + features. If you are interested in hnb and want to become its new upstream + maintainer please contact the original author and the Debian maintainer. + . + Hnb does currently not support UTF-8. --- hnb-1.9.18.orig/debian/patches/02_recrusive_expand_collapse.patch +++ hnb-1.9.18/debian/patches/02_recrusive_expand_collapse.patch @@ -0,0 +1,73 @@ +hnb (1.9.17-4) * Add recursive expand/collapse. (Closes: #248798) + +--- hnb-1.9.18.orig/src/expanded.c ++++ hnb-1.9.18/src/expanded.c +@@ -26,7 +26,6 @@ + #include "ctype.h" + #include "ui_binding.h" + +- + static int cmd_expand (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; +@@ -47,6 +46,18 @@ static int cmd_expand (int argc,char **a + tnode = node_recurse (tnode); + } + cli_outfun ("expanded all nodes"); ++ } else if(!strcmp(argv[1],"--subtree")) { ++ node_setflag(pos,F_expanded,1); ++ if(node_right(pos)) { ++ ++ Node *tnode = node_right(pos); ++ ++ while (tnode) { ++ node_setflag(tnode,F_expanded,1); ++ tnode = node_traverse_right_of (pos, tnode); ++ } ++ } ++ cli_outfun ("expanded subtree"); + } + return (int) pos; + } +@@ -71,6 +82,17 @@ static int cmd_collapse (int argc,char * + tnode = node_recurse (tnode); + } + cli_outfun ("collapsed all nodes"); ++ } else if(!strcmp(argv[1],"--subtree")) { ++ node_setflag(pos,F_expanded,0); ++ if(node_right(pos)) { ++ Node *tnode = node_right(pos); ++ ++ while (tnode) { ++ node_setflag(tnode,F_expanded,0); ++ tnode = node_traverse_right_of (pos, tnode); ++ } ++ } ++ cli_outfun ("collapsed subtree"); + } + + return (int) pos; +--- hnb-1.9.18.orig/src/tree.c ++++ hnb-1.9.18/src/tree.c +@@ -47,6 +47,21 @@ Node *node_recurse (Node *node) + return 0; + } + ++Node *node_traverse_right_of (Node *stop, Node *node) ++{ ++ if (node_right (node)) ++ return node_right (node); ++ if (node_down (node)) ++ return node_down (node); ++ while (node_left (node) && (node_left (node) != stop)) { ++ if (node_down (node_left (node))) ++ return node_down (node_left (node)); ++ node = node_left (node); ++ } ++ ++ return 0; ++} ++ + Node *node_backrecurse (Node *node) + { + if (node_up (node)) { --- hnb-1.9.18.orig/debian/patches/14_binary_autosave.patch +++ hnb-1.9.18/debian/patches/14_binary_autosave.patch @@ -0,0 +1,46 @@ +hnb (1.9.18-4) * Save recovery files in hnb's native format and choose a + different naming scheme. Thanks to Steve Pomeroy. + (Closes: #340061) + +--- hnb-1.9.18.orig/src/autosave.c ++++ hnb-1.9.18/src/autosave.c +@@ -38,7 +38,7 @@ static void autosave_invoke(Node *pos){ + { + char buf[4096]; + +- sprintf (buf, "export_binary %s_hnb_rescue", prefs.db_file); ++ sprintf (buf, "export_hnb %s~", prefs.db_file); + docmd (node_root(pos), buf); + cli_outfunf("autosaved, %i nodes changed\n",nodes_changed); + } +--- hnb-1.9.18.orig/src/file.c ++++ hnb-1.9.18/src/file.c +@@ -164,7 +164,7 @@ static void* cmd_save (int argc,char **a + char buf[4096]; + char swapfile[4096]; + +- sprintf(swapfile,"%s_hnb_rescue",prefs.db_file); ++ sprintf(swapfile,"%s~",prefs.db_file); + remove(swapfile); + docmd (pos, "autosave_threshold_nodes_changed 0"); + +--- hnb-1.9.18.orig/src/hnb.c ++++ hnb-1.9.18/src/hnb.c +@@ -239,7 +239,7 @@ int main (int argc, char **argv) + stat(prefs.db_file, &statbuf); + file_modified=statbuf.st_ctime; + +- sprintf(recovery_file, "%s_hnb_rescue", prefs.db_file); ++ sprintf(recovery_file, "%s~", prefs.db_file); + tfile = fopen(recovery_file, "r"); + if(tfile){ + char response[1024]="_"; +@@ -314,7 +314,7 @@ o)pen read_only\n\ + { + char buf[4096]; + if(recover) +- sprintf (buf, "import_binary %s", file_to_load); ++ sprintf (buf, "import_hnb %s", file_to_load); + else + sprintf (buf, "import_%s %s", prefs.format, file_to_load); + --- hnb-1.9.18.orig/debian/patches/15_document_export.patch +++ hnb-1.9.18/debian/patches/15_document_export.patch @@ -0,0 +1,31 @@ +hnb (1.9.18-4) * Document exporting via shell command. (Closes: #223268) + +--- hnb-1.9.18.orig/doc/Documentation.hnb ++++ hnb-1.9.18/doc/Documentation.hnb +@@ -52,7 +52,6 @@ + hnb [options] [filename] [-e "comand" ["command" ["command" ..]]] + options: + -h or --help show recognized options +- + -a or --ascii use tab indented ASCII for loading/saving database + ASCII doesn't remember attributes like to-do status, done etc. + +@@ -61,10 +60,14 @@ + --hnb use hnb DTD for loading/saving database, this is the default unless you've changed it in the preferences file + + running commands +- by running +- hnb -e "go_root" "oexport_htmlcss test.html" +- +- hnb will load the default database, go to the start of the database, and export it with the htmlcss filter to a file called test.html ++ By running ++ hnb -e "go root" "export_htmlcss test.html" ++ hnb will load the default database, go to the start of the database, and export it with the htmlcss filter to a file called test.html. ++ The HTML version of this documentation is generated through ++ hnb -rc /dev/null Documentation.hnb -e "go root" "export_htmlcss Documentation.html" ++ An example for exporting an hnb file to various output formats is the following ++ hnb file.hnb -e "go root" "export_opml export.opml" "export_html export.html" "export_ascii export.txt" "export_htmlcss export_css.html" "export_ps export.ps" ++ To get a list of all available commands type ? in command mode (per default mapped to F5). + + + In the latest version hnb also contains a menu that can be invoked by pressing ESC, more commands are available by invoking the commandline (F5). --- hnb-1.9.18.orig/debian/patches/09_make_all_callbacks_return_void.patch +++ hnb-1.9.18/debian/patches/09_make_all_callbacks_return_void.patch @@ -0,0 +1,2036 @@ +hnb (1.9.18-3) * Make all callbacks return void*. (Closes: #325645, #267438) + +--- hnb-1.9.18.orig/src/actions.c ++++ hnb-1.9.18/src/actions.c +@@ -32,7 +32,7 @@ static char address[1024]="";*/ + static char web_command[255] = "galeon -n *"; + static char mail_command[255] = "rxvt -rv +sb -e mutt *"; + +-static int cmd_system(int argc, char **argv, void *data){ ++static void* cmd_system(int argc, char **argv, void *data){ + Node *pos=(Node *)data; + int ui_was_inited = ui_inited; + if (argc>1) { +@@ -42,7 +42,7 @@ static int cmd_system(int argc, char **a + if (ui_was_inited) + ui_init (); + } +- return (int)pos; ++ return pos; + } + + static int action_node (Node *node) +@@ -76,7 +76,7 @@ static int action_node (Node *node) + strcat (cd, url); + strcat (cd, cs + 1); + cli_outfunf ("shelling out: %s", cmdline); +- //strcat(cd,"> /dev/null 2>&1 &"); ++ /* strcat(cd,"> /dev/null 2>&1 &"); */ + break; + } else { + *cd = *cs; +@@ -109,7 +109,7 @@ static int action_node (Node *node) + strcat (cd, mail_address); + strcat (cd, cs + 1); + cli_outfunf ("shelling out: %s", cmdline); +- //strcat(cd,"> /dev/null 2>&1 &"); ++ /* strcat(cd,"> /dev/null 2>&1 &"); */ + break; + } else { + *cd = *cs; +@@ -136,21 +136,21 @@ static int action_node (Node *node) + * url/email address substring,.. and launches an app based on that? + * + */ +-static int cmd_action (int argc, char **argv, void *data) ++static void* cmd_action (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + Node *node = node_right (pos); + + while (node) { + if (!action_node (node)) +- return (int) pos; ++ return pos; + node = node_down (node); + } + if (!action_node (pos)) { +- return (int) pos; ++ return pos; + } else { + cli_outfunf ("nothing to do"); +- return (int) pos; ++ return pos; + } + + /*** +--- hnb-1.9.18.orig/src/autosave.c ++++ hnb-1.9.18/src/autosave.c +@@ -49,17 +49,17 @@ static void autosave_invoke(Node *pos){ + autosave_timer=0; + } + +-static int tree_changed_cmd (int argc, char **argv, void *data) ++static void* tree_changed_cmd (int argc, char **argv, void *data) + { + /* TODO: add increment handling, for "extreme changes" */ + Node *pos = (Node *) data; + nodes_changed++; + if(autosave_threshold<=nodes_changed) + autosave_invoke(pos); +- return (int) pos; ++ return pos; + } + +-static int autosave_check_timeout (int argc, char **argv, void *data) ++static void* autosave_check_timeout (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + if(nodes_changed){ +@@ -68,7 +68,7 @@ static int autosave_check_timeout (int a + autosave_invoke(pos); + } + } +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/cal.c ++++ hnb-1.9.18/src/cal.c +@@ -36,7 +36,7 @@ static char *const mname[] = { + "", "January", "February", "March", "April", "May" ,"June", "July", + "August", "September", "October", "November" , "December"}; + +-static int insert_cal(int argc, char **argv, void *data){ ++static void* insert_cal(int argc, char **argv, void *data){ + Node *pos=(void *)data; + + int year; +@@ -45,7 +45,7 @@ static int insert_cal(int argc, char **a + + if( (argc!=3) || (atoi(argv[1])>12 )){ + cli_outfunf("usage: %s ", argv[0]); +- return (int)data; ++ return data; + } + + month=atoi(argv[1]); +@@ -53,7 +53,7 @@ static int insert_cal(int argc, char **a + + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding insertion"); +- return (int)data; ++ return data; + } + + +@@ -102,8 +102,8 @@ static int insert_cal(int argc, char **a + } + } + +- docmd(pos,"tree_changed"); +- return (int)pos; ++ docmd(pos, "tree_changed"); ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/cli_macro.c ++++ hnb-1.9.18/src/cli_macro.c +@@ -80,7 +80,7 @@ static Node *do_macro(MacroT *macro, Nod + return pos; + } + +-static int cmd_macro (int argc, char **argv, void *data) ++static void* cmd_macro (int argc, char **argv, void *data) + { + Node *pos=(Node *)data; + if(argc==1){ +@@ -88,7 +88,7 @@ static int cmd_macro (int argc, char **a + } else if(argc==2){ + MacroT *tmacro=lookup_macro(argv[1]); + if(tmacro){ +- return (int)do_macro(tmacro,pos); ++ return do_macro(tmacro,pos); + } else { + cli_outfunf("no such macro defined '%s'",argv[1]); + } +@@ -97,7 +97,7 @@ static int cmd_macro (int argc, char **a + if(!strcmp(argv[1],"define") ){ + if(lookup_macro(argv[2])){ + cli_outfunf("error macro %s already exist,.. this might turn out badly,.. " ,argv[2]); +- return (int) pos; ++ return pos; + } else { + MacroT *tmacro; + if(!macro){ +@@ -119,7 +119,7 @@ static int cmd_macro (int argc, char **a + + } + } +- return (int) pos; ++ return pos; + } + + +--- hnb-1.9.18.orig/src/clipboard.c ++++ hnb-1.9.18/src/clipboard.c +@@ -29,7 +29,7 @@ + + static Node *clipboard = NULL; + +-static int copy_cmd (int argc,char **argv, void *data) ++static void* copy_cmd (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -39,15 +39,15 @@ static int copy_cmd (int argc,char **arg + clipboard = node_new (); + + clipboard = tree_duplicate (pos, clipboard); +- return (int) pos; ++ return pos; + } + +-static int cut_cmd (int argc,char **argv, void *data) ++static void* cut_cmd (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); +- return (int)data; ++ return data; + } + + if (clipboard != NULL) { +@@ -58,10 +58,10 @@ static int cut_cmd (int argc,char **argv + clipboard = tree_duplicate (pos, clipboard); + pos = node_remove (pos); + docmd(pos,"tree_changed"); +- return (int) pos; ++ return pos; + } + +-static int paste_cmd (int argc,char **argv, void *data) ++static void* paste_cmd (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -71,14 +71,14 @@ static int paste_cmd (int argc,char **ar + Node *temp; + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding insertion"); +- return (int)data; ++ return data; + } + + temp = node_insert_down (pos); + tree_duplicate (clipboard, temp); + docmd(pos,"tree_changed"); + } +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/evilloop.c ++++ hnb-1.9.18/src/evilloop.c +@@ -123,10 +123,10 @@ static char *keep_inputbuf[]={ + + int quit_hnb=0; + +-static int cmd_quit(int argc,char **argv,void *data){ ++static void* cmd_quit(int argc,char **argv,void *data){ + Node *pos=(Node *)data; + quit_hnb=1; +- return (int)pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/expanded.c ++++ hnb-1.9.18/src/expanded.c +@@ -18,15 +18,15 @@ + * Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + ++#include + #include "tree.h" + #include "cli.h" +-#define NULL 0 + + #include "evilloop.h" + #include "ctype.h" + #include "ui_binding.h" + +-static int cmd_expand (int argc,char **argv, void *data) ++static void* cmd_expand (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + if(argc==1){ +@@ -35,7 +35,7 @@ static int cmd_expand (int argc,char **a + inputbuf[strlen (inputbuf) + 1] = 0; + inputbuf[strlen (inputbuf)] = lastbinding->key; + } +- return (int)pos; ++ return pos; + } + node_setflag(pos,F_expanded,1); + } else if((!strcmp(argv[1],"-a"))||(!strcmp(argv[1],"--all"))){ +@@ -59,10 +59,10 @@ static int cmd_expand (int argc,char **a + } + cli_outfun ("expanded subtree"); + } +- return (int) pos; ++ return pos; + } + +-static int cmd_collapse (int argc,char **argv, void *data) ++static void* cmd_collapse (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + if(argc==1){ +@@ -71,7 +71,7 @@ static int cmd_collapse (int argc,char * + inputbuf[strlen (inputbuf) + 1] = 0; + inputbuf[strlen (inputbuf)] = lastbinding->key; + } +- return (int)pos; ++ return pos; + } + node_setflag(pos,F_expanded,0); + } else if((!strcmp(argv[1],"-a"))||(!strcmp(argv[1],"--all"))){ +@@ -95,7 +95,7 @@ static int cmd_collapse (int argc,char * + cli_outfun ("collapsed subtree"); + } + +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/file.c ++++ hnb-1.9.18/src/file.c +@@ -150,13 +150,13 @@ int file_check (char *filename) + } + + +-static int cmd_save (int argc,char **argv, void *data) ++static void* cmd_save (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + + if(prefs.readonly){ + docmd (pos, "status \"readonly mode, not writing to disk\"\n"); +- return (int)pos; ++ return pos; + } + + if (prefs.db_file[0] != (char) 255) { /* magic value of tutorial */ +@@ -179,10 +179,10 @@ static int cmd_save (int argc,char **arg + } else { + /* make tutorial users initial database, if initial database dont exist */ + } +- return (int) pos; ++ return pos; + } + +-static int cmd_revert (int argc,char **argv, void *data) ++static void* cmd_revert (int argc,char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -197,7 +197,7 @@ static int cmd_revert (int argc,char **a + pos=docmd (pos, buf); + } + } +- return (int) pos; ++ return pos; + } + + +--- hnb-1.9.18.orig/src/file_ascii.c ++++ hnb-1.9.18/src/file_ascii.c +@@ -34,7 +34,7 @@ + + static int ascii_margin = -1; + +-static int import_ascii (int argc, char **argv, void *data) ++static void* import_ascii (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -46,7 +46,7 @@ static int import_ascii (int argc, char + file = fopen (filename, "r"); + if (file == NULL) { + cli_outfunf ("ascii import, unable to open \"%s\"", filename); +- return (int) (node); ++ return node; + } + + init_import (&ist, node); +@@ -73,7 +73,7 @@ static int import_ascii (int argc, char + cli_outfunf ("ascii import, imported \"%s\"", filename); + + +- return (int) (node); ++ return node; + } + + static void ascii_export_node (FILE * file, int level, int flags, char *data) +@@ -95,7 +95,7 @@ static void ascii_export_node (FILE * fi + } + } + +-static int export_ascii (int argc, char **argv, void *data) ++static void *export_ascii (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -110,7 +110,7 @@ static int export_ascii (int argc, char + file = fopen (filename, "w"); + if (!file) { + cli_outfunf ("ascii export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + startlevel = nodes_left (node); + +@@ -130,7 +130,7 @@ static int export_ascii (int argc, char + + cli_outfunf ("ascii export, wrote output to \"%s\"", filename); + +- return (int) node; ++ return node; + } + + +--- hnb-1.9.18.orig/src/file_binary.c ++++ hnb-1.9.18/src/file_binary.c +@@ -76,7 +76,7 @@ static void binary_export_nodes (FILE * + } + } + +-static int export_binary (int argc, char **argv, void *data) ++static void* export_binary (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc>=2?argv[1]:""; +@@ -89,7 +89,7 @@ static int export_binary (int argc, char + + if (!file) { + cli_outfunf ("binary export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + + fwrite (&hnb_binary_header, 4, 1, file); +@@ -99,11 +99,11 @@ static int export_binary (int argc, char + + cli_outfunf ("binary export, wrote data to \"%s\"", filename); + +- return (int) node; ++ return node; + } + + +-static int import_binary (int argc, char **argv, void *data) ++static void* import_binary (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -117,7 +117,7 @@ static int import_binary (int argc, char + file = fopen (filename, "r"); + if (!file) { + cli_outfunf ("binary import, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + + {int header,version; +@@ -166,7 +166,7 @@ static int import_binary (int argc, char + node=node_remove(node); + cli_outfunf("binary import - imported \"%s\"",filename); + +- return (int) node; ++ return node; + } + + /* +--- hnb-1.9.18.orig/src/file_help.c ++++ hnb-1.9.18/src/file_help.c +@@ -42,7 +42,7 @@ static char *helpquote[]={ + + /* *INDENT-ON* */ + +-static int export_help (int argc, char **argv, void *data) ++static void* export_help (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -55,7 +55,7 @@ static int export_help (int argc, char * + if (!file) { + cli_outfunf ("help export, unable to open \"%s\"", filename); + +- return (int) node; ++ return node; + } + startlevel = nodes_left (node); + +@@ -86,10 +86,10 @@ static int export_help (int argc, char * + fclose (file); + + cli_outfunf ("help export, wrote data to \"%s\"", filename); +- return (int) node; ++ return node; + } + +-static int import_help (int argc, char **argv, void *data) ++static void* import_help (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + import_state_t ist; +@@ -100,7 +100,7 @@ static int import_help (int argc, char * + if (node_getflag (node, F_temp)) + node = node_remove (node); + +- return (int) (node); ++ return node; + } + + /* +--- hnb-1.9.18.orig/src/file_hnb.c ++++ hnb-1.9.18/src/file_hnb.c +@@ -105,7 +105,7 @@ static void hnb_export_nodes (FILE * fil + } + } + +-static int export_hnb (int argc, char **argv, void *data) ++static void* export_hnb (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc>=2?argv[1]:""; +@@ -118,7 +118,7 @@ static int export_hnb (int argc, char ** + + if (!file) { + cli_outfunf ("hnb export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + + fprintf (file, "\n\ +@@ -143,11 +143,11 @@ static int export_hnb (int argc, char ** + + cli_outfunf ("hnb export, wrote data to \"%s\"", filename); + +- return (int) node; ++ return node; + } + + +-static int import_hnb (int argc, char **argv, void *data) ++static void* import_hnb (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -170,7 +170,7 @@ static int import_hnb (int argc, char ** + file = fopen (filename, "r"); + if (!file) { + cli_outfunf ("hnb import, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + s = xml_tok_init (file); + init_import (&ist, node); +@@ -180,7 +180,7 @@ static int import_hnb (int argc, char ** + cli_outfunf ("hnb import error, parsing og '%s' line:%i, %s", filename, + s->line_no, rdata); + fclose (file); +- return (int) node; ++ return node; + } + if (in_tree) { + if (type == t_tag && !strcmp (rdata, "node")) { +@@ -263,7 +263,7 @@ static int import_hnb (int argc, char ** + + xml_tok_cleanup (s); + +- return (int) node; ++ return node; + } + + /* +--- hnb-1.9.18.orig/src/file_html.c ++++ hnb-1.9.18/src/file_html.c +@@ -52,7 +52,7 @@ static char *htmlquote[]={ + /* *INDENT-ON* */ + + +-static int export_html (int argc, char **argv, void *data) ++static void* export_html (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -67,7 +67,7 @@ static int export_html (int argc, char * + file = fopen (filename, "w"); + if (!file) { + cli_outfunf ("html export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + + startlevel = nodes_left (node); +@@ -130,7 +130,7 @@ static int export_html (int argc, char * + fclose (file); + + cli_outfunf ("html export, saved output in \"%s\"", filename); +- return (int) node; ++ return node; + } + + static void htmlcss_export_nodes (FILE * file, Node *node, int level) +@@ -162,7 +162,7 @@ static void htmlcss_export_nodes (FILE * + } + + +-static int export_htmlcss (int argc, char **argv, void *data) ++static void* export_htmlcss (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -174,7 +174,7 @@ static int export_htmlcss (int argc, cha + file = fopen (filename, "w"); + if (!file) { + cli_outfunf ("html export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + + fprintf (file, "\n\ +@@ -182,8 +182,8 @@ static int export_htmlcss (int argc, cha + \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\ + \n\ + \n\ +-tree exported from hnb\n\ +-\n\ +-\n\ +-\n"); ++\n"); ++ fprintf (file, "\n"); + + htmlcss_export_nodes (file, node, 0); + +@@ -224,7 +224,7 @@ div.level2 {\n\ + fclose (file); + + cli_outfunf ("html css export, saved output in \"%s\"", filename); +- return (int) node; ++ return node; + } + + /* +--- hnb-1.9.18.orig/src/file_opml.c ++++ hnb-1.9.18/src/file_opml.c +@@ -90,7 +90,7 @@ static void opml_export_nodes (FILE * fi + } + } + +-static int export_opml (int argc, char **argv, void *data) ++static void* export_opml (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc>=2?argv[1]:""; +@@ -103,12 +103,15 @@ static int export_opml (int argc, char * + + if (!file) { + cli_outfunf ("opml export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + +- fprintf (file, "\n\ +-\n\ +-\n\ ++ fprintf (file, ++ "" ++ "\n" ++ " \n", ++ argc == 3 ? argv[2] : "1", VERSION); ++ fprintf (file, "\n\ + \n\ + outline exported from hnb\n\ + \n\ +@@ -122,8 +125,7 @@ static int export_opml (int argc, char * + 200\n\ + 200\n\ + \n\ +- \n", argc==3?argv[2]:"1", +- VERSION); ++ \n"); + + opml_export_nodes (file, node, 0); + +@@ -133,10 +135,10 @@ static int export_opml (int argc, char * + + cli_outfunf ("opml export, wrote data to \"%s\"", filename); + +- return (int) node; ++ return node; + } + +-static int import_opml (int argc, char **argv, void *data) ++static void* import_opml (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -154,7 +156,7 @@ static int import_opml (int argc, char * + file = fopen (filename, "r"); + if (!file) { + cli_outfunf ("opml import, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + s = xml_tok_init (file); + init_import (&ist, node); +@@ -164,7 +166,7 @@ static int import_opml (int argc, char * + cli_outfunf ("opml import error, parsing og '%s', line:%i %s", filename, + s->line_no, rdata); + fclose (file); +- return (int) node; ++ return node; + } + if (in_body) { + if (type == t_tag && !strcmp (rdata, "outline")) { +@@ -208,7 +210,7 @@ static int import_opml (int argc, char * + + cli_outfunf ("opml import - imported \"%s\" %i lines", filename, s->line_no); + xml_tok_cleanup (s); +- return (int) node; ++ return node; + } + + +--- hnb-1.9.18.orig/src/file_ps.c ++++ hnb-1.9.18/src/file_ps.c +@@ -71,7 +71,7 @@ static void ps_export_node (FILE * file, + free(quoted); + } + +-static int export_ps (int argc, char **argv, void *data) ++static void* export_ps (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -85,7 +85,7 @@ static int export_ps (int argc, char **a + file = fopen (filename, "w"); + if (!file) { + cli_outfunf ("postscript export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + startlevel = nodes_left (node); + +@@ -100,8 +100,8 @@ static int export_ps (int argc, char **a + /_Z { /defaults save def } def\n\ + /ZZ { defaults restore } def\n\ + /PW { /pw exch def } def 595 PW %% paper width\n\ +-/PH { /ph exch def } def 842 PH %% paper height\n\ +-%% Defaults: tm = text height: rm = text width\n\ ++/PH { /ph exch def } def 842 PH %% paper height\n"); ++ fprintf (file, "%% Defaults: tm = text height: rm = text width\n\ + /FM { /fm exch def } def 72 FM %% footer margin\n\ + /TM { /tm exch def } def 680 TM %% top margin\n\ + /RM { /rm exch def } def 480 RM %% right margin\n\ +@@ -110,53 +110,57 @@ static int export_ps (int argc, char **a + /LG { /lg exch def } def 11 LG %% linespacing\n\ + \n\ + /PG { /pg exch def } def 1 PG %% first number\n\ +-/margins { 680 TM 480 RM 0 BM 0 LM } def\n\ +-\n\ +-/MF { %% fontname newfontname -> - make a new encoded font \n\ ++/margins { 680 TM 480 RM 0 BM 0 LM } def\n\n"); ++ fprintf (file, ++"/MF { %% fontname newfontname -> - make a new encoded font \n\ + /newfontname exch def /fontname exch def /fontdict fontname findfont def /newfont fontdict\n\ + maxlength dict def fontdict { exch dup /FID eq { pop pop } { exch newfont 3 1\n\ + roll put } ifelse } forall newfont /FontName newfontname put encoding_vector\n\ + length 256 eq { newfont /Encoding encoding_vector put } if newfontname newfont\n\ +-definefont pop } def\n\ +-\n\ +-/encoding_vector [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ ++definefont pop } def\n\n"); ++ fprintf (file, ++"/encoding_vector [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ +- /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent\n\ +- /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen\n\ ++ /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent\n"); ++ fprintf (file, ++ "/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen\n\ + /period /slash /zero /one /two /three /four /five /six /seven /eight /nine\n\ + /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H\n\ +- /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash\n\ +- /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i\n\ ++ /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash\n"); ++ fprintf (file, ++ "/bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i\n\ + /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar\n\ +- /braceright /tilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ ++ /braceright /tilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n"); ++ fprintf (file, ++ "/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ +- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\ +- /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen\n\ +- /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft\n\ ++ /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen\n"); ++ fprintf (file, ++ "/brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft\n\ + /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior\n\ + /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior\n\ +- /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown\n\ +- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave\n\ ++ /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown\n"); ++ fprintf (file, ++ "/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave\n\ + /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth\n\ + /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash\n\ +- /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave\n\ +- /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute\n\ ++ /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave\n"); ++ fprintf (file, ++ "/aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute\n\ + /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde\n\ + /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave\n\ + /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis \n\ +-] def\n\ +-\n\ +-/Times-Roman /Times-Roman-IL1 MF\n\ ++] def\n\n"); ++ fprintf (file, "/Times-Roman /Times-Roman-IL1 MF\n\ + /Times-Italic /Times-Italic-IL1 MF\n\ + /Times-Bold /Times-Bold-IL1 MF\n\ + /Helvetica /Helvetica-IL1 MF\n\ + /Helvetica-Oblique /Helvetica-Oblique-IL1 MF\n\ +-/Helvetica-Bold /Helvetica-Bold-IL1 MF\n\ +-\n\ +-/textbox {\n\ ++/Helvetica-Bold /Helvetica-Bold-IL1 MF\n\n"); ++ fprintf (file, "/textbox {\n\ + margins 10 rom 12 LG lm tm moveto } def\n\ + /midpage { pw rm sub 2 div fm translate\n\ + textbox numbering 10 ss} def\n\ +@@ -165,8 +169,8 @@ textbox numbering 10 ss} def\n\ + /jump { bm tm gt { showpage grestore p1 } if\n\ + } def } def p1\n\ + } def\n\ +-/newpage { 10 neg TM tm pop jump } def\n\ +-%% close file\n\ ++/newpage { 10 neg TM tm pop jump } def\n"); ++ fprintf (file, "%% close file\n\ + /close { showpage grestore clear end ZZ } def\n\ + /minidict 90 dict def \n\ + minidict begin \n\ +@@ -181,13 +185,13 @@ exch sub lm add tm moveto } bind def\n\ + /numbering { gs rm 2 div bm 25 sub moveto\n\ + pg pg 1 add PG 4 string cvs 7 ss show gr } def\n\ + /find { search { pop 3 -1 roll 1 add 3 1 roll }\n\ +-{ pop exit } ifelse } def\n\ +-/spacecount { 0 exch ( ) { find } loop } def\n\ ++{ pop exit } ifelse } def\n"); ++ fprintf (file, "/spacecount { 0 exch ( ) { find } loop } def\n\ + /toofar? { ( ) search pop dup stringwidth pop\n\ + currentpoint pop add rm gt } bind def\n\ + /pagejump { jump toofar? { L jump s s }\n\ +-{ s s } ifelse } def\n\ +-/s /show load def %% \n\ ++{ s s } ifelse } def\n"); ++ fprintf (file, "/s /show load def %% \n\ + /n { bm tm gt { jump s L } { s L } ifelse} bind def\n\ + /c { centre s L } def \n\ + /S { dup spacecount { pagejump } repeat pop } def\n\ +@@ -200,13 +204,10 @@ currentpoint pop add rm gt } bind def\n\ + /bol { /Times-Bold-IL1 F } def\n\ + /ss { /Helvetica-IL1 F } def\n\ + /si { /Helvetica-Oblique-IL1 } def\n\ +-/sb { /Helvetica-Bold-IL1 F } def\n\ +-\n\ +-end %% close minidict: *this is important*\n\ +-%%%% EndResource\n\ +-\n\ +-\n\ +-%%%%BeginPageSetup \n\ ++/sb { /Helvetica-Bold-IL1 F } def\n\n"); ++ fprintf (file, "end %% close minidict: *this is important*\n\ ++%%%% EndResource\n\n\n"); ++ fprintf (file, "%%%%BeginPageSetup \n\ + 1upA4 %% open the page \n\ + %%%%EndPageSetup \n\ + 0 a\n\ +@@ -233,7 +234,7 @@ close\n\ + cli_outfunf ("postscript export, saved output to \"%s\"", filename); + if (file != stdout) + fclose (file); +- return (int) node; ++ return node; + } + + /* +--- hnb-1.9.18.orig/src/file_xml.c ++++ hnb-1.9.18/src/file_xml.c +@@ -147,7 +147,7 @@ static void xml_export_nodes (FILE * fil + } + } + +-static int export_xml (int argc, char **argv, void *data) ++static void* export_xml (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -159,7 +159,7 @@ static int export_xml (int argc, char ** + file = fopen (filename, "w"); + if (!file) { + cli_outfunf ("xml export, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + + xml_export_nodes (file, node, 0); +@@ -170,7 +170,7 @@ static int export_xml (int argc, char ** + cli_outfunf ("xml export, wrote data to \"%s\"", filename); + + +- return (int) node; ++ return node; + } + + /* joins up tags with data if there is data as the first child +@@ -202,7 +202,7 @@ static Node *xml_cuddle_nodes (Node *nod + } + + +-static int import_xml (int argc, char **argv, void *data) ++static void* import_xml (int argc, char **argv, void *data) + { + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; +@@ -221,7 +221,7 @@ static int import_xml (int argc, char ** + file = fopen (filename, "r"); + if (!file) { + cli_outfunf ("xml import, unable to open \"%s\"", filename); +- return (int) node; ++ return node; + } + s = xml_tok_init (file); + init_import (&ist, node); +@@ -231,7 +231,7 @@ static int import_xml (int argc, char ** + cli_outfunf ("xml import error, parsing og '%s', line:%i %s", filename, + s->line_no,rdata); + fclose (file); +- return (int) node; ++ return node; + } + + switch (type) { +@@ -328,7 +328,7 @@ static int import_xml (int argc, char ** + + cli_outfunf ("xml import - imported \"%s\" %i lines", filename, s->line_no); + xml_tok_cleanup (s); +- return (int) node; ++ return node; + } + + /* +--- hnb-1.9.18.orig/src/libcli/cli.c ++++ hnb-1.9.18/src/libcli/cli.c +@@ -113,7 +113,7 @@ static int item_matches (const char *it + + typedef struct ItemT { + char *name; /* what the user types */ +- int (*func) (int argc,char **argv, void *data); /* function that is the command */ ++ void* (*func) (int argc,char **argv, void *data); /* function that is the command */ + int *integer; /* pointer to integer (set to NULL if string) */ + char *string; /* pointer to string (set to NULL if integer) */ + char *usage; /* helptext for this command */ +@@ -129,8 +129,8 @@ static ItemT *items = NULL; + + void + cli_add_item (char *name, +- int *integer, char *string, +- int (*func) (int argc,char **argv, void *data), char *usage) ++ int *integer, char *string, ++ void *(*func) (int argc,char **argv, void *data), char *usage) + { + ItemT *titem = items; + +@@ -191,8 +191,8 @@ void cli_add_help(char *name, char *help + } + + +-static int help (int argc,char **argv, void *data); +-static int vars (int argc,char **argv, void *data); ++static void* help (int argc,char **argv, void *data); ++static void* vars (int argc,char **argv, void *data); + + static int inited = 0; + +@@ -224,13 +224,13 @@ static void init_cli (void) + + int cli_calllevel=0; + +-int cli_docmd (char *commandline, void *data) ++void *cli_docmd (char *commandline, void *data) + { + int largc=0; + char **largv; + + ItemT *titem = items; +- int ret=(int)data; ++ void *ret=data; + cli_calllevel++; + + if (cli_precmd) +@@ -382,7 +382,7 @@ char *cli_complete (const char *commandl + + /* internal commands */ + +-static int help (int argc,char **argv, void *data) ++static void* help (int argc,char **argv, void *data) + { + if (argc == 1) { /* show all help */ + ItemT *titem = items; +@@ -410,17 +410,17 @@ static int help (int argc,char **argv, v + cli_outfun (""); + cli_outfun(titem->help); + } +- return(int)data; ++ return data; + } + } + titem = titem->next; + } + cli_outfunf ("unknown command '%s'", argv[1]); + } +- return(int)data; ++ return data; + } + +-static int vars (int argc, char **argv, void *data) ++static void* vars (int argc, char **argv, void *data) + { + ItemT *titem = items; + +@@ -446,7 +446,7 @@ static int vars (int argc, char **argv, + + cli_outfunf ("----------------"); + cli_outfunf ("to change a variable: \"variablename newvalue\""); +- return(int)data; ++ return data; + } + + char *cli_getstring(char *variable){ +--- hnb-1.9.18.orig/src/libcli/cli.h ++++ hnb-1.9.18/src/libcli/cli.h +@@ -40,8 +40,8 @@ void cli_cleanup(void); + + void + cli_add_item (char *name, +- int *integer, char *string, +- int (*func) (int argc,char **argv, void *data), char *usage); ++ int *integer, char *string, ++ void* (*func) (int argc,char **argv, void *data), char *usage); + + #define cli_add_int(name,integer,usage)\ + cli_add_item (name, integer, NULL, NULL, usage) +@@ -55,7 +55,7 @@ cli_add_item (char *name, + int cli_load_file(char *filename); + + char *cli_complete (const char *commandline); /* returns a completed commandline */ +-int cli_docmd (char *commandline, void *data); /* run commandline */ ++void *cli_docmd (char *commandline, void *data); /* run commandline */ + + + extern void (*cli_outfun) (char *); /* the outputting function +--- hnb-1.9.18.orig/src/libcli/cli_tokenize.c ++++ hnb-1.9.18/src/libcli/cli_tokenize.c +@@ -182,10 +182,10 @@ static int is_oneof (char c, char *chars + + #define MAX_VARNAMELENGTH 128 + +-char **argv_tokenize(char *input_string){ ++char **argv_tokenize(char *input_string) { + char **argv=NULL; + char *output; +- unsigned char varname[MAX_VARNAMELENGTH]=""; ++ char varname[MAX_VARNAMELENGTH]=""; + int varname_pos=0; + + init_state_table(); +--- hnb-1.9.18.orig/src/libcli/test.c ++++ hnb-1.9.18/src/libcli/test.c +@@ -23,7 +23,7 @@ + int integer=0; + char string[40]="not set"; + +-int echo(int argc,char **argv, void *data){ ++void* echo(int argc,char **argv, void *data){ + printf("tokens:%i\n",argc); + while(*argv) + printf("[%s]\n",*(argv++)); +--- hnb-1.9.18.orig/src/node.c ++++ hnb-1.9.18/src/node.c +@@ -142,48 +142,48 @@ void node_unset (Node *node, char *name) + #include + + +-int cmd_att_set (int argc, char **argv, void *data) ++void *cmd_att_set (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + + if(argc!=3){ + cli_outfunf("usage: %s ",argv[0]); +- return (int) pos; ++ return pos; + } + + node_set (pos, argv[1], argv[2]); +- return (int) pos; ++ return pos; + } + +-int cmd_att_get (int argc, char **argv, void *data) ++void *cmd_att_get (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + char *cdata; + + if(argc!=2){ + cli_outfunf("usage: %s ",argv[0]); +- return (int) pos; ++ return pos; + } + + cdata = node_get (pos, argv[1]); + + if (cdata) + cli_outfun (cdata); +- return (int) pos; ++ return pos; + } + +-int cmd_att_clear (int argc, char **argv, void *data) ++void *cmd_att_clear (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + if(argc!=2){ + cli_outfunf("usage: %s ",argv[0]); +- return (int) pos; ++ return pos; + } + node_unset (pos, argv[1]); +- return (int) pos; ++ return pos; + } + +-int cmd_att_list (int argc,char **argv, void *data) ++void *cmd_att_list (int argc,char **argv, void *data) + { + Node_AttItem *att; + Node *pos = (Node *) data; +@@ -193,7 +193,7 @@ int cmd_att_list (int argc,char **argv, + cli_outfunf ("%s: [%s]", att->name, att->data); + att = att->next; + } +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/query.c ++++ hnb-1.9.18/src/query.c +@@ -27,7 +27,7 @@ + + static char query[100]; + +-static int getquery_cmd (int argc, char **argv, void *data) ++static void* getquery_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -36,7 +36,7 @@ static int getquery_cmd (int argc, char + ui_getstr (argv[1], &query[0]); + else + ui_getstr ("enter string", &query[0]); +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/search.c ++++ hnb-1.9.18/src/search.c +@@ -28,7 +28,7 @@ + + /************** search ************************/ + +-static int search(int argc,char **argv,void *data){ ++static void* search(int argc,char **argv,void *data){ + Node *pos=(Node *)data; + + if(argc==2){ +@@ -37,7 +37,7 @@ static int search(int argc,char **argv,v + if (pos == NULL) { + docmdf (pos, "status 'reached bottom of tree and \\'%s\\' not found'", + argv[1]); +- return (int) data; ++ return data; + } + } + } else if(argc>2){ +@@ -46,20 +46,20 @@ static int search(int argc,char **argv,v + if (pos == NULL) { + docmdf (pos, "status 'reached top of tree and \\'%s\\' not found'", + argv[2]); +- return (int) data; ++ return data; + } + } else if(!strcmp(argv[1],"-f")){ + pos=node_recursive_match( argv[2],pos); + if (pos == NULL) { + docmdf (pos, "status 'reached bottom of tree and \\'%s\\' not found'", + argv[2]); +- return (int) data; ++ return data; + } + } +- return (int)pos; ++ return pos; + } + cli_outfunf("usage: %s [-b|-f] ",argv[0]); +- return (int)pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/spell.c ++++ hnb-1.9.18/src/spell.c +@@ -72,12 +72,12 @@ static void spell_node (Node *node) + } + } + +-static int spell_cmd (int argc, char **argv, void *data) ++static void* spell_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding changes"); +- return (int)data; ++ return data; + } + if (argc==2 && (!strcmp (argv[1], "-r"))) { + int startlevel; +@@ -92,7 +92,7 @@ static int spell_cmd (int argc, char **a + } else { + spell_node (pos); + } +- return (int) pos; ++ return pos; + } + + /* +@@ -102,7 +102,10 @@ void init_spell () + { + cli_add_command ("spell", spell_cmd, "[-r]"); + cli_add_help ("spell", +- "Spellchecks the current node, or all children and following siblings recursively (if -r specified), using the command defined in 'spell_command'"); ++ "Spellchecks the current node, or all children and " ++ "following siblings recursively (if -r specified), " ++ "using the command defined in 'spell_command'"); + cli_add_string ("spell_command", spell_command, +- "Command executed when spell checking a node, a temporary file is written and passed as an argument"); ++ "Command executed when spell checking a node, a " ++ "temporary file is written and passed as an argument"); + } +--- hnb-1.9.18.orig/src/statcmds.c ++++ hnb-1.9.18/src/statcmds.c +@@ -25,7 +25,7 @@ + + #ifndef WIN32 + +-static int mem_cmd (int argc, char **argv, void *data) ++static void* mem_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -35,7 +35,7 @@ static int mem_cmd (int argc, char **arg + + file = fopen ("/proc/self/stat", "r"); + if (!file) +- return (int) pos; ++ return pos; + + fscanf (file, + "%*i %*s %*s %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %*i %i", +@@ -53,7 +53,7 @@ static int mem_cmd (int argc, char **arg + + file = fopen ("/proc/meminfo", "r"); + if (!file) +- return (int) pos; ++ return pos; + + fscanf (file, "%*s %*s %*s %*s %*s %*s %*s %*i %*i %i %i %i", + &free, &buffers, &cached); +@@ -64,7 +64,7 @@ static int mem_cmd (int argc, char **arg + (float) ((free + buffers + cached) / 1024.0 / 1024.0)); + } + +- return (int) pos; ++ return pos; + } + #endif + /* +@@ -97,7 +97,7 @@ static int count_words (unsigned char *s + return words; + } + +-static int stats_cmd (int argc, char **argv, void *data) ++static void* stats_cmd (int argc, char **argv, void *data) + { + int words = 0, leaves = 0, nodes = 0; + Node *pos = (Node *) data; +@@ -114,7 +114,7 @@ static int stats_cmd (int argc, char **a + + cli_outfunf ("nodes:%i, leaves:%i words:%i", nodes, leaves, words); + +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/state.c ++++ hnb-1.9.18/src/state.c +@@ -29,7 +29,7 @@ + + static Node *savedtree = NULL; + +-static int save_state_cmd (int argc, char **argv, void *data) ++static void* save_state_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + Node *i; +@@ -58,10 +58,10 @@ static int save_state_cmd (int argc, cha + savedtree = node_recurse (savedtree); + } + +- return (int) pos; ++ return pos; + } + +-static int restore_state_cmd (int argc, char **argv, void *data) ++static void* restore_state_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -74,7 +74,7 @@ static int restore_state_cmd (int argc, + tree_free (savedtree); + savedtree = NULL; + } +- return (int) pos; ++ return pos; + } + + /* +@@ -84,8 +84,9 @@ void init_keepstate () + { + cli_add_command ("save_state", save_state_cmd, ""); + cli_add_help ("save_state", +- "Saves a copy of the current tree and selected node in memory"); ++ "Saves a copy of the current tree and selected node in " ++ "memory"); + cli_add_command ("restore_state", restore_state_cmd, ""); + cli_add_help ("restore_state", +- "Restores the copy of the tree saved with save_state"); ++ "Restores the copy of the tree saved with save_state"); + } +--- hnb-1.9.18.orig/src/tree_misc.c ++++ hnb-1.9.18/src/tree_misc.c +@@ -27,16 +27,16 @@ + #include "ui_cli.h" + #include "evilloop.h" + +-static int cmd_movenode (int argc, char **argv, void *data) ++static void* cmd_movenode (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + if(argc<2){ + cli_outfunf("usage: %s ",argv[0]); +- return (int)pos; ++ return pos; + } + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); +- return (int)data; ++ return data; + } + if (!strcmp (argv[1], "left")) { + if (node_left (pos)) { +@@ -68,8 +68,8 @@ static int cmd_movenode (int argc, char + node_swap (pos, node_down (pos)); + } + } +- docmd(pos,"tree_changed"); +- return (int) pos; ++ docmd(pos, "tree_changed"); ++ return pos; + } + + /* +@@ -80,12 +80,12 @@ void init_movenode () + cli_add_command ("movenode", cmd_movenode, ""); + } + +-static int cmd_go(int argc, char **argv, void *data){ ++static void* cmd_go(int argc, char **argv, void *data){ + Node *pos=(Node *)data; + + if(argc!=2){ + cli_outfunf("usage: %s "); +- return (int)pos; ++ return pos; + } + + if(!strcmp(argv[1],"up")){ +@@ -115,7 +115,7 @@ static int cmd_go(int argc, char **argv, + } + + +- return (int)pos; ++ return pos; + } + + /* +@@ -131,7 +131,7 @@ void init_go () + #include "ctype.h" + #include "ui_binding.h" + +-static int cmd_outdent (int argc, char **argv, void *data) ++static void* cmd_outdent (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -140,11 +140,11 @@ static int cmd_outdent (int argc, char * + inputbuf[strlen (inputbuf) + 1] = 0; + inputbuf[strlen (inputbuf)] = lastbinding->key; + } +- return (int)pos; ++ return pos; + } + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); +- return (int)data; ++ return data; + } + + if (node_left (pos)) { +@@ -174,14 +174,14 @@ static int cmd_outdent (int argc, char * + } else { + target_node->right = NULL; + } +- docmd(pos,"tree_changed"); ++ docmd(pos, "tree_changed"); + } +- return (int) pos; ++ return pos; + } + + /* FIXME: no real need for a temporary node */ + +-static int cmd_indent (int argc, char **argv, void *data) ++static void* cmd_indent (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -190,11 +190,11 @@ static int cmd_indent (int argc, char ** + inputbuf[strlen (inputbuf) + 1] = 0; + inputbuf[strlen (inputbuf)] = lastbinding->key; + } +- return (int)pos; ++ return pos; + } + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); +- return (int)data; ++ return data; + } + + if (node_up (pos)) { +@@ -218,9 +218,9 @@ static int cmd_indent (int argc, char ** + snode = node_down (snode); + } + node_remove (node_down (pos)); +- docmd(pos,"tree_changed"); ++ docmd(pos, "tree_changed"); + } +- return (int) pos; ++ return pos; + } + + /* +@@ -236,13 +236,13 @@ void init_outdent_indent () + "moves the active item and the following siblings one level to the right"); + } + +-static int remove_cmd (int argc, char **argv, void *data) ++static void* remove_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); +- return (int)data; ++ return data; + } + if (node_right (pos)) { + Tbinding *c; +@@ -263,7 +263,7 @@ static int remove_cmd (int argc, char ** + pos = node_remove (pos); + docmd(pos,"tree_changed"); + } +- return (int) pos; ++ return pos; + } + + /* +@@ -277,7 +277,7 @@ void init_remove () + } + + +-static int commandline_cmd (int argc, char **argv, void *data) ++static void* commandline_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -292,7 +292,7 @@ static int commandline_cmd (int argc, ch + if (commandline[0]) + pos = docmd (pos, commandline); + } while (commandline[0] && strcmp(commandline,"q") && strcmp(commandline,"quit")); +- return (int) pos; ++ return pos; + } + + /* +@@ -305,12 +305,12 @@ void init_commandline () + "Invokes the interactive commandline in curses mode."); + } + +-static int insert_below_cmd (int argc, char **argv, void *data) ++static void* insert_below_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); +- return (int)data; ++ return data; + } + + if (node_getflag (pos, F_temp)) { +@@ -325,7 +325,7 @@ static int insert_below_cmd (int argc, c + } + inputbuf[0] = 0; + docmd(pos,"tree_changed"); +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/tree_sort.c ++++ hnb-1.9.18/src/tree_sort.c +@@ -141,7 +141,7 @@ static int cmp_descending(Node *a,Node * + return cmp_todo(b,a); + } + +-static int sort_cmd (int argc, char **argv, void *data) ++static void* sort_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + int (*cmp) (Node *a, Node *b)=cmp_todo; +@@ -155,7 +155,7 @@ static int sort_cmd (int argc, char **ar + node_mergesort (node_top (pos), nodes_down (node_top (pos)) + 1, cmp); + if (node_left (pos)) + node_left (pos)->right = node_top (pos); +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/tree_todo.c ++++ hnb-1.9.18/src/tree_todo.c +@@ -260,7 +260,7 @@ int calc_percentage_size (Node *node, in + + #include "cli.h" + +-static int toggle_todo_cmd (int argc, char **argv, void *data) ++static void* toggle_todo_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -272,15 +272,15 @@ static int toggle_todo_cmd (int argc, ch + node_unset(pos,"done"); + } + +- return (int) pos; ++ return pos; + } + +-static int toggle_done_cmd (int argc, char **argv, void *data) ++static void* toggle_done_cmd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + + if (strcmp(fixnullstring(node_get(pos,"type")),"todo")) { /* bail out if not todo info set */ +- return (int) pos; ++ return pos; + } + + if (!strcmp(fixnullstring(node_get(pos,"done")),"yes")) { /* bail out if not todo info set */ +@@ -289,7 +289,7 @@ static int toggle_done_cmd (int argc, ch + node_set(pos,"done","yes"); + } + +- return (int) pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/ui_binding.c ++++ hnb-1.9.18/src/ui_binding.c +@@ -250,14 +250,14 @@ static int string2keycode (char *str) + + int ui_current_scope = 0; + +-static int ui_context_cmd (int argc, char **argv, void *data) ++static void* ui_context_cmd (int argc, char **argv, void *data) + { + if(argc<2){ + cli_outfunf("usage: %s ",argv[0]); +- return(int)data; ++ return data; + } + ui_current_scope = string2scope (argv[1]); +- return (int) data; ++ return data; + } + + static void makebinding (int scope_no, int key, int action, char *action_name, +@@ -272,7 +272,7 @@ static void makebinding (int scope_no, i + ui_binding_count[scope_no]++; + } + +-static int ui_bind_cmd (int argc, char **argv, void *data) ++static void* ui_bind_cmd (int argc, char **argv, void *data) + { + /* char context[40];*/ + char *key; +@@ -280,7 +280,7 @@ static int ui_bind_cmd (int argc, char * + + if(argc<3){ + cli_outfunf("error in bindings %s %s %s %s\n",argv[0],argv[1],argv[2],argv[3]); +- return (int)data; ++ return data; + } + key=argv[1]; + action=argv[2]; +@@ -293,7 +293,7 @@ static int ui_bind_cmd (int argc, char * + ui_action_command, "command", action); + } + +- return (int) data; ++ return data; + } + + +@@ -395,10 +395,12 @@ char *tidy_keyname (const char *keyname) + !init_ui_binding(); + */ + +-static int dummy_cmd (int argc, char **argv, void *data) ++#if 0 ++static void* dummy_cmd (int argc, char **argv, void *data) + { +- return (int) data; ++ return data; + } ++#endif + + void init_ui_binding () + { +@@ -409,8 +411,9 @@ void init_ui_binding () + cli_add_help ("context", + "Changes context, context may be one of 'main', 'lineedit', 'nodeedit', 'confirm' or any other userdefined context."); + ++#if 0 + /* dummy commands to show the 'builtins' */ +-/* cli_add_command ("backspace", dummy_cmd, ""); ++ cli_add_command ("backspace", dummy_cmd, ""); + cli_add_help ("backspace", "erase the preceding character"); + cli_add_command ("delete", dummy_cmd, ""); + cli_add_help ("delete", "erase the following character"); +@@ -477,5 +480,5 @@ void init_ui_binding () + cli_add_command ("unbound", dummy_cmd, ""); + cli_add_help ("unbound", + "give a message indicating that the pressed key is not bound in the current context"); +-*/ ++#endif + } +--- hnb-1.9.18.orig/src/ui_cli.c ++++ hnb-1.9.18/src/ui_cli.c +@@ -49,14 +49,14 @@ static char *path_strip (char *path) + return path; + } + +-static int add (int argc,char **argv, void *data) ++static void* add (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + Node *tnode; + + if(argc==1){ + cli_outfunf("usage: %s ",argv[0]); +- return 0; ++ return pos; + } + + if (argc==2) { +@@ -65,23 +65,23 @@ static int add (int argc,char **argv, vo + + tnode = node_insert_down (node_bottom (pos)); + node_set (tnode, TEXT, argv[1]); +- return (int) pos; ++ return pos; + } + +-static int addc (int argc,char **argv, void *data) ++static void* addc (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + Node *tnode; + + if(argc==1){ + cli_outfunf("usage: %s [new subentry]",argv[0]); +- return 0; ++ return pos; + } + + tnode = node_exact_match (argv[1], pos); + if (!tnode) { + cli_outfun ("specified parent not found"); +- return (int) pos; ++ return pos; + } + + if (node_right (tnode)) { +@@ -95,30 +95,30 @@ static int addc (int argc,char **argv, v + else + node_set (tnode, TEXT, argv[2]); + +- return (int) pos; ++ return pos; + } + +-static int pwd (int argc,char **argv, void *data) ++static void* pwd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + + cli_outfun (path_strip (node2path (pos))); + cli_outfun ("\n"); +- return (int) pos; ++ return pos; + } + +-static int cd (int argc, char **argv, void *data) ++static void* cd (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + Node *tnode = pos; + + if(argc==1){ +- return (int)node_root(pos); ++ return node_root(pos); + } + + if (!strcmp (argv[1], "..")){ + if (node_left (tnode) != 0) +- return (int) (node_left (tnode)); ++ return node_left (tnode); + } + + +@@ -128,11 +128,9 @@ static int cd (int argc, char **argv, vo + } + if (!tnode) { + cli_outfun ("no such node\n"); +- return (int) pos; ++ return pos; + } +- return (int) tnode; +- +- return (int) pos; ++ return tnode; + } + + #include +@@ -151,7 +149,7 @@ static void pre_command (char *commandli + } + } + +-static int ls (int argc, char **argv, void *data) ++static void* ls (int argc, char **argv, void *data) + { + Node *pos = (Node *) data; + +@@ -188,7 +186,7 @@ static int ls (int argc, char **argv, vo + tnode = node_down (tnode); + } + } +- return (int) pos; ++ return pos; + } + + /* +@@ -216,12 +214,12 @@ void init_ui_cli (void) + + Node *docmd (Node *pos, const char *commandline) + { +- int ret; ++ Node *ret; + char *cmdline = strdup (commandline); + + ret = cli_docmd (cmdline, pos); + free (cmdline); +- return (Node *) ret; ++ return ret; + } + + Node *docmdf (Node *pos,char *format, ...){ +--- hnb-1.9.18.orig/src/ui_draw.c ++++ hnb-1.9.18/src/ui_draw.c +@@ -525,7 +525,7 @@ static struct { + + /* FIXME: make backup?,.. and make sure data is present,.., make possiblity to write back? */ + +-int display_format_cmd (int argc, char **argv, void *data) ++void* display_format_cmd (int argc, char **argv, void *data) + { + char *p = argv[1]; + int width; +@@ -533,7 +533,7 @@ int display_format_cmd (int argc, char * + int col_no = 0; + + if(argc<2){ +- return (int)data; ++ return data; + } + + do { +@@ -618,7 +618,7 @@ int display_format_cmd (int argc, char * + + col_def[col_no].type = col_terminate; + +- return (int) data; ++ return data; + } + + +@@ -775,19 +775,19 @@ void ui_draw (Node *node, char *input, i + tnode = 0; + } + } +-/* draw the currently selected item */ + ++ /* draw the currently selected item */ + line_nodeno[active_line] = node_no (node); + + if (edit_mode) { +- lines = draw_item (active_line, (int) input, node, drawmode_edit); ++ lines = draw_item (active_line, strlen(input) - 1, ++ node, drawmode_edit); + } else { +- lines = +- draw_item (active_line, strlen (input), node, +- drawmode_completion); ++ lines = draw_item (active_line, strlen (input), node, ++ drawmode_completion); + } + +-/* draw items below current item */ ++ /* draw items below current item */ + { + Node *prev_up = node; /* to aid pgup/pgdn */ + Node *tnode = down (node, node); +--- hnb-1.9.18.orig/src/ui_edit.c ++++ hnb-1.9.18/src/ui_edit.c +@@ -28,7 +28,7 @@ + #include "evilloop.h" + #include + +-static int ui_edit_cmd (int argc, char **argv, void *data) ++static void* ui_edit_cmd (int argc, char **argv, void *data) + { + Tbinding *c; + int stop = 0; +@@ -48,7 +48,7 @@ static int ui_edit_cmd (int argc, char * + if(prefs.readonly){ + cli_outfun("readonly flag set, avoiding tree change"); + ui_current_scope = tempscope; +- return (int)data; ++ return data; + } + + if (inputbuf[0]) { /* there is data in the inputbuffer,.. +@@ -67,7 +67,7 @@ static int ui_edit_cmd (int argc, char * + } + ui_current_scope = tempscope; + docmd(pos,"tree_changed"); +- return (int) pos; ++ return pos; + } + + node_backup = node_duplicate (pos); +@@ -81,7 +81,7 @@ static int ui_edit_cmd (int argc, char * + + while (!stop) { + node_set (pos, TEXT, input); +- ui_draw (pos, (char *) cursor_pos, 1); ++ ui_draw (pos, input, 1); + c = parsekey (ui_input (), ui_scope_nodeedit); + switch (c->action) { + case ui_action_right: +@@ -215,7 +215,7 @@ static int ui_edit_cmd (int argc, char * + } + node_free (node_backup); + ui_current_scope = tempscope; +- return (int) data; ++ return data; + } + + int ui_getstr_loc (char *input, int x, int y, int maxlen) +--- hnb-1.9.18.orig/src/ui_menu.c ++++ hnb-1.9.18/src/ui_menu.c +@@ -109,10 +109,10 @@ static Node *menu_do(Node *pos){ + return pos; + } + +-static int cmd_menu(int argc,char **argv,void *data){ ++static void* cmd_menu(int argc,char **argv,void *data){ + Node *pos=(Node *)data; + if(argc==1){ /* draw menu */ +- return (int)menu_do(pos); ++ return menu_do(pos); + } else if(argc==4){ + char *submenu=argv[1]; + char *label=argv[2]; +@@ -142,7 +142,7 @@ static int cmd_menu(int argc,char **argv + if(menu[col][row].width>menu[col][0].width) + menu[col][0].width=menu[col][row].width; + } +- return(int)pos; ++ return pos; + } + + /* +--- hnb-1.9.18.orig/src/ui_overlay.c ++++ hnb-1.9.18/src/ui_overlay.c +@@ -44,11 +44,11 @@ + + static char *ui_helptext[MAX_SCOPES] = { 0 }; + +-static int ui_helptext_cmd (int argc, char **argv, void *data) ++static void* ui_helptext_cmd (int argc, char **argv, void *data) + { + if(argc>1) + ui_helptext[ui_current_scope] = strdup (argv[1]); +- return (int) data; ++ return data; + } + + #define MAX_STATUS_LINES 100 +@@ -129,7 +129,7 @@ void set_status (char *message) + } + + +-static int ui_status_cmd (int argc, char **argv, void *data) ++static void* ui_status_cmd (int argc, char **argv, void *data) + { + if(argc==2 && (!strcmp(argv[1],"-c") || !strcmp(argv[1],"--clear"))){ + status_ttl=0; +@@ -138,7 +138,7 @@ static int ui_status_cmd (int argc, char + if(!ui_inited) + cli_outfun(argv[1]); + } +- return (int) data; ++ return data; + } + + +--- hnb-1.9.18.orig/src/ui_style.c ++++ hnb-1.9.18/src/ui_style.c +@@ -116,7 +116,7 @@ void ui_style_restore_color () + } + } + +-static int ui_style_cmd (int argc, char **argv, void *data) ++static void* ui_style_cmd (int argc, char **argv, void *data) + { + char *item; + char *colors; +@@ -124,7 +124,7 @@ static int ui_style_cmd (int argc, char + + if(argc!=4){ + cli_outfunf("usage: %i "); +- return (int)data; ++ return data; + } + + item=argv[1]; +@@ -137,7 +137,7 @@ static int ui_style_cmd (int argc, char + + if (style_no == -1) { + printf ("unknown style 'style [%s] %s %s'\n", item, colors, atts); +- return (int) data; ++ return data; + } + color2 = strchr (colors, '/'); + color2[0] = '\0'; +@@ -166,7 +166,7 @@ static int ui_style_cmd (int argc, char + bkgdset (' ' + COLOR_PAIR (ui_style_background)); + } + } +- return (int) data; ++ return data; + } + + /* --- hnb-1.9.18.orig/debian/patches/10_cursor_bug.patch +++ hnb-1.9.18/debian/patches/10_cursor_bug.patch @@ -0,0 +1,92 @@ +hnb (1.9.18-4) * Fix broken cursor. This bug was introduced with the previous + patch which made all callbacks return void* and made hnb + work on architectures where size of pointer is not equal to + the size of integer, e.g. many 64-bit architectures. + (Closes: #339613) + +--- hnb-1.9.18.orig/src/evilloop.c ++++ hnb-1.9.18/src/evilloop.c +@@ -146,7 +146,7 @@ Node *evilloop (Node *pos) + while (!quit_hnb) { + Tbinding *binding; + +- ui_draw (pos, inputbuf, 0); ++ ui_draw (pos, inputbuf, 0, 0); + binding = parsekey (ui_input (), ui_current_scope); + do { + +--- hnb-1.9.18.orig/src/tree_misc.c ++++ hnb-1.9.18/src/tree_misc.c +@@ -250,7 +250,7 @@ static void* remove_cmd (int argc, char + + ui_current_scope = ui_scope_confirm; + docmdf (pos, "status 'node has children, really remove?'"); +- ui_draw (pos, "", 0); ++ ui_draw (pos, "", 0, 0); + ui_current_scope = tempscope; + c = parsekey (ui_input (), ui_scope_confirm); + if (c->action == ui_action_confirm) { +@@ -285,7 +285,7 @@ static void* commandline_cmd (int argc, + + do { + strcpy (commandline, ""); +- ui_draw (pos, "", 0); ++ ui_draw (pos, "", 0, 0); + ui_getstr ("commandline interface, enter blank command to cancel", + commandline); + +--- hnb-1.9.18.orig/src/ui_draw.c ++++ hnb-1.9.18/src/ui_draw.c +@@ -691,7 +691,7 @@ extern int hnb_nodes_down; + #define MAXLINES 512 + static int line_nodeno[MAXLINES] = { 0 }; + +-void ui_draw (Node *node, char *input, int edit_mode) ++void ui_draw (Node *node, char *input, int edit_mode, int cursor_pos) + { + int lines; + +@@ -780,8 +780,8 @@ void ui_draw (Node *node, char *input, i + line_nodeno[active_line] = node_no (node); + + if (edit_mode) { +- lines = draw_item (active_line, strlen(input) - 1, +- node, drawmode_edit); ++ lines = draw_item (active_line, cursor_pos, node, ++ drawmode_edit); + } else { + lines = draw_item (active_line, strlen (input), node, + drawmode_completion); +--- hnb-1.9.18.orig/src/ui_draw.h ++++ hnb-1.9.18/src/ui_draw.h +@@ -6,7 +6,7 @@ + is owerwritten with the value input + */ + +-void ui_draw (Node *node, char *input, int edit_mode); ++void ui_draw (Node *node, char *input, int edit_mode, int cursor_pos); + + void set_status (char *message); + #endif +--- hnb-1.9.18.orig/src/ui_edit.c ++++ hnb-1.9.18/src/ui_edit.c +@@ -81,7 +81,7 @@ static void* ui_edit_cmd (int argc, char + + while (!stop) { + node_set (pos, TEXT, input); +- ui_draw (pos, input, 1); ++ ui_draw (pos, "", 1, cursor_pos); + c = parsekey (ui_input (), ui_scope_nodeedit); + switch (c->action) { + case ui_action_right: +--- hnb-1.9.18.orig/src/ui_menu.c ++++ hnb-1.9.18/src/ui_menu.c +@@ -29,7 +29,7 @@ static int xpos_forcol(int colno){ + + static void draw_menu(Node *pos, int cur_col, int cur_row){ + int row,col; +- ui_draw(pos,"",0); ++ ui_draw(pos, "", 0, 0); + + for(col=0;col in 2007. +hnb (1.9.18-6) * Fixed a character lost bug in word wrapping. Thanks to Tomáš + JanouÅ¡ek for the patch. + +--- hnb.orig/src/ui_draw.c ++++ hnb/src/ui_draw.c +@@ -157,6 +157,7 @@ static int draw_textblock (int line_star + case '\t': + case '\n': + case '\r': /* all whitespace is treated as spaces */ ++ wordwrap: + if (col + wpos + 1 >= col_end) { /* reached margin */ + if (drawmode == drawmode_edit) { + if (cursor_state == 0) +@@ -196,8 +197,12 @@ static int draw_textblock (int line_star + addstr ((char *) word); + + } +- if (data[dpos]) +- addch (' '); ++ if (data[dpos]) { ++ if (isspace(data[dpos])) ++ addch (' '); ++ else ++ addch (data[dpos]); ++ } + } + } + +@@ -226,10 +231,12 @@ static int draw_textblock (int line_star + word[wpos = 0] = 0; + break; + default: +- if (wpos < 198) { +- word[wpos++] = data[dpos]; +- word[wpos] = 0; +- } ++ if (col_start + wpos + 2 >= col_end) ++ goto wordwrap; ++ ++ word[wpos++] = data[dpos]; ++ word[wpos] = 0; ++ + break; + } + dpos++; --- hnb-1.9.18.orig/debian/patches/04_unset_done_when_toggeling_todo.patch +++ hnb-1.9.18/debian/patches/04_unset_done_when_toggeling_todo.patch @@ -0,0 +1,13 @@ +hnb (1.9.17-4) * Unset 'done' flag when toggling off a todo item. + (Closes: #231256) + +--- hnb-1.9.18.orig/src/tree_todo.c ++++ hnb-1.9.18/src/tree_todo.c +@@ -269,6 +269,7 @@ static int toggle_todo_cmd (int argc, ch + node_set(pos,"done","no"); + } else { + node_unset(pos,"type"); ++ node_unset(pos,"done"); + } + + return (int) pos; --- hnb-1.9.18.orig/debian/patches/11_makefile_doc.patch +++ hnb-1.9.18/debian/patches/11_makefile_doc.patch @@ -0,0 +1,35 @@ +hnb (1.9.18-4) * Add doc/Makefile. It is used to generate the user + documentation and can also be used to generate some + graphs for developers. + +--- /dev/null ++++ hnb-1.9.18/doc/Makefile +@@ -0,0 +1,28 @@ ++#!/usr/bin/make -f ++ ++.PHONY: all clean distclean doc doc-dev ++ ++DOC = Documentation.html ++DOCDEV = xml_states.ps cli_tokenize.ps ++ ++all: doc doc-dev ++xml_states.ps: ../src/xml.dot ++libcli/cli_tokenize.ps: ../src/libcli/cli_tokenize.dot ++ ++doc: $(DOC) ++doc-dev: $(DOCDEV) ++ ++clean: ++ $(RM) $(DOC) ++ ++distclean: clean ++ $(RM) $(DOCDEV) ++ ++%.ps: ++ dot -Tps $^ > $@ ++ ++%.html: ++ ../src/hnb -rc /dev/null $(basename $@).hnb -e "go root" "export_htmlcss $@" ++ ++%.txt: ++ ../src/hnb -rc /dev/null $(basename $@).hnb -e "go root" "export_ascii $@" --- hnb-1.9.18.orig/debian/patches/08_fix_implicitly_converted_pointer.patch +++ hnb-1.9.18/debian/patches/08_fix_implicitly_converted_pointer.patch @@ -0,0 +1,13 @@ +hnb (1.9.18-2) * Fix implicitly converted pointer. (Closes: #325352) + +--- hnb-1.9.18.orig/src/tree.h ++++ hnb-1.9.18/src/tree.h +@@ -124,6 +124,8 @@ void node_swap (Node *nodeA, Node *nodeB + */ + Node *node_recurse (Node *node); + ++Node *node_traverse_right_of (Node *stop, Node *node); ++ + /* returns the previous node, doing a recursive traversal of the tree backwards + + Returns: next back recursive node or 0 if none --- hnb-1.9.18.orig/debian/patches/series +++ hnb-1.9.18/debian/patches/series @@ -0,0 +1,18 @@ +00_fix_man_section.patch +01_quotations_instead_of_quotes.patch +02_recrusive_expand_collapse.patch +03_hnbrc.patch +04_unset_done_when_toggeling_todo.patch +05_return_null_if_node_is_null.patch +07_postscript_todo.patch +08_fix_implicitly_converted_pointer.patch +09_make_all_callbacks_return_void.patch +10_cursor_bug.patch +11_makefile_doc.patch +12_makefiles_cflags.patch +14_binary_autosave.patch +15_document_export.patch +16_refer_to_documentation_in_man.patch +17_wrap_long_words.patch +18_todo_bullet_configurable.patch +50_debian_use_sensible-browser_instead_of_w3m.patch --- hnb-1.9.18.orig/debian/patches/16_refer_to_documentation_in_man.patch +++ hnb-1.9.18/debian/patches/16_refer_to_documentation_in_man.patch @@ -0,0 +1,16 @@ +hnb (1.9.18-4) * Refer to documentation in man page. + +--- hnb-1.9.18.orig/doc/hnb.1 ++++ hnb-1.9.18/doc/hnb.1 +@@ -49,8 +49,9 @@ The default configuration file. To load + use the \fB-rc\fP command-line option. + + .SH SEE ALSO +-For more information on the usage of the program, load the tutorial or +-press \fBF1\fP in the program. ++For more information on the usage of the program, load the tutorial using ++\fBhnb \-\-tutorial\fP and consult Documentation.hnb. On Debian systems ++you can read it with \fBhnb /usr/share/doc/hnb/Documentation.hnb\fP + + hnb homepage: http://hnb.sourceforge.net + .SH AUTHOR --- hnb-1.9.18.orig/debian/patches/00_fix_man_section.patch +++ hnb-1.9.18/debian/patches/00_fix_man_section.patch @@ -0,0 +1,10 @@ +hnb (1.9.1?-?) * Put man page in proper section. + +--- hnb-1.9.18.orig/doc/hnb.1 ++++ hnb-1.9.18/doc/hnb.1 +@@ -1,4 +1,4 @@ +-.TH HNB SECTION "May 15, 2001" ++.TH HNB 1 "MAY 15, 2001" + .SH NAME + hnb \- Hierarchical notebook + .SH SYNOPSIS --- hnb-1.9.18.orig/debian/patches/03_hnbrc.patch +++ hnb-1.9.18/debian/patches/03_hnbrc.patch @@ -0,0 +1,572 @@ +hnb (1.9.17-4) * Add recursive expand/collapse to hnbrc. (Closes: #248798) +hnb (1.9.17-4) * Provide an alternate hnbrc file. (Closes: #228413) +hnb (1.9.18-4) * Workaround for missing new nodes in search mode. + (See: #405117) +hnb (1.9.18-5) * Merge hnbrc.vi into hnbrc and add some macros which change + e.g. the keybindings. Also improve the vi-like keybindings. + (Closes: #292889) +hnb (1.9.18-5) * Enable some additional editing commands in hnbrc, e.g. ^B, + ^F and ^D. +hnb (1.9.18-5) * Update alternative color scheme so that it does not assume a + terminal with dark background color anymore. +hnb (1.9.18-7) * Add an alternative bullet style to default hnbrc and + reformat hnbrc. The alternative style uses less columns + than the original style. + +--- hnb.orig/doc/hnbrc ++++ hnb/doc/hnbrc +@@ -1,59 +1,117 @@ +-# configuration file for hnb, ++# configuration file for hnb + # +-# use a tab-spacing of 4 when editing this file, or edit it thorugh +-# hnb with "hnb -a ~/.hnbrc" to take advantage of the indentation in it ++# Use tabs when editing this file, or edit it through hnb with ++# "hnb -a ~/.hnbrc" to take advantage of the indentation in it. ++# ++# There are some macros which change e.g. the keybindings or look of hnb. ++# Search for "configuration macro" in this file to find more out about them. ++# Please note that these macros must be run after they have been defined. + # +-# (please be aware that this is the configuration file for a development version, +-# things might change drastically soon,.. or perhaps later) + +-##### bullets +- # what kind of bullets are displayed before each item +- ##### samples +- #bullet_parent " -" +- #bullet_parent " *" +- #bullet_parent " ·" +- #bullet_parent_expanded " +" +- #bullet_parent_expanded " *" +- #bullet_parent_expanded " ·" +- #bullet_leaf " *" +- #bullet_leaf " -" +- bullet_leaf " ·" +- bullet_parent " +" +- bullet_parent_expanded " -" +- + ##### user interface +- ##### display format +- # defining how each node is displayed, the display string syntax is +- # interpreted as follows: +- # +- # spaces turn into real spaces, i means indentation, - means bullet, +- # d means the real data of the node, x is a temporary placeholder for +- # upcoming column-types,. (for debugging only) +- # +- # i and x can take an argument specifying how many characters wide +- # the field should be +- # +- # until further features are added, only the multiplier after +- # indentation actually does something +- # # indicates node number (actually line number when used as a folding editor) ++ ##### display format / bullets ++ # ++ # display_format: ++ # ++ # Defining how each node is displayed, the display string ++ # syntax is interpreted as follows: ++ # ++ # - Spaces turn into real spaces, i means indentation, - ++ # means bullet, d means the real data of the node, x is ++ # a temporary placeholder for upcoming column-types (for ++ # debugging only). ++ # ++ # - i and x can take an argument specifying how many ++ # characters wide the field should be. ++ # ++ # - Until further features are added, only the multiplier ++ # after indentation actually does something. # indicates ++ # the node number (actually line number when used as a ++ # folding editor). ++ # ++ # bullets: ++ # ++ # What kind of bullets are displayed before each item, ++ # possible items and their default values are: ++ # ++ # - bullet_leaf " -" ++ # - bullet_parent " +" ++ # - bullet_parent_expanded " *" ++ # - bullet_todo_parent_undone "[ ]" ++ # - bullet_todo_parent_done "[X]" ++ # - bullet_todo_leaf_undone "[ ]" ++ # - bullet_todo_leaf_done "[X]" ++ # + ##### samples +- #display_format # "i4- d" +- display_format "i4- d" ++ #display_format "i4- d" ++ #display_format "i2-d" ++ #display_format "# i4- d" ++ #display_format "#i2-d" ++ # ++ #bullet_parent " +" ++ #bullet_parent " *" ++ #bullet_parent " ·" ++ #bullet_parent_expanded " *" ++ #bullet_parent_expanded " +" ++ #bullet_parent_expanded " ·" ++ #bullet_leaf " -" ++ #bullet_leaf " *" ++ macro define bullets_standard ++ ++ display_format "i4- d" ++ ++ bullet_leaf " -" ++ bullet_parent " +" ++ bullet_parent_expanded " *" ++ bullet_todo_parent_undone "[ ]" ++ bullet_todo_parent_done "[X]" ++ bullet_todo_leaf_undone "[_]" ++ bullet_todo_leaf_done "[X]" ++ ++ end ++ ++ macro define bullets_alternate ++ ++ display_format "i2-d" ++ ++ bullet_leaf " -" ++ bullet_parent " +" ++ bullet_parent_expanded " *" ++ bullet_todo_parent_undone " !" ++ bullet_todo_parent_done " X" ++ bullet_todo_leaf_undone " !" ++ bullet_todo_leaf_done " X" ++ ++ end ++ ++ ##### configuration macro (bullets): ++ # ++ # To switch to the alternative bullet scheme enable ++ # "bullet_alternate" and disable "bullet_standard". ++ # ++ macro bullets_standard ++ #macro bullets_alternate + + ##### fixed focus +- # lock the selection bar to a position 1/3 down the screen ++ # ++ # Lock the selection bar to a position 1/3 down the screen. ++ # ++ # 1=true, 0=false. ++ # + fixedfocus "0" + +- + ##### external commands + ##### http:// handler +- # what command is executed when a user wants a action performed on a +- # entry containing an URL +- # ++ # ++ # What command is executed when a user wants a action performed ++ # on a entry containing an URL. ++ # + # * is substituted for the URL + # +- # the X ones have their error and standard output redirected to dev/null +- # and are put into the background to keep hnb running afterwards ++ # The X ones have their error and standard output redirected to ++ # dev/null and are put into the background to keep hnb running ++ # afterwards. ++ # + ##### samples + #web_command "opera -remote 'openURL(*)' > /dev/null 2>&1 &" + #web_command "netscape -remote 'openURL(*)' > /dev/null 2>&1 &" +@@ -62,27 +120,29 @@ + #web_command "mozilla -remote 'openURL(*,new-window)' > /dev/null 2>&1 &" + #web_command "konqueror * > /dev/null 2>&1 &" + #web_command "galeon -n > /dev/null 2>&1 &" +- web_command "w3m *" + #web_command "lynx *" + #web_commend "rxvt -fn fixed -rv +sb -e w3m * > /dev/null 2>&1 &" + #web_command "opera -remote 'openURL(*,new-window)' > /dev/null 2>&1 &" ++ web_command "w3m *" + + ##### mail@handler +- # what command is executed when a user wants a action performed on a +- # entry containing a mail-address +- # ++ # ++ # What command is executed when a user wants a action performed ++ # on a entry containing a mail-address. ++ # + # * is substituted for the mail-address + # +- ## samples ++ ##### samples + #mail_command "xterm -rv pine * > /dev/null 2>&1 &" + #mail_command "xterm -rv +sb -e mutt * > /dev/null 2>&1 &" + #mail_command "pine *" + mail_command "mutt *" + + ##### spell checking +- # the spell-checker used + # +- ## samples ++ # The spell-checker used. ++ # ++ ##### samples + #spell_command "aspell -c" + #spell_command "ispell -x" + #spell_command "ispell -x -damerican" +@@ -91,41 +151,58 @@ + #spell_command "ispell -x -dnynorsk" + spell_command "ispell -x" + +- + ##### file formats + ##### Default Format ++ # + # hnb, opml, xml, ascii are possible choices ++ # + format "hnb" + + ##### Remember current position in tree +- # wheter hnb remembers the current position in a file, (currently +- # supported by the hnb DTD only, but might easily be extended since +- # it fakes it with a XML comment) 1=true 0=false ++ # ++ # Whether hnb remembers the current position in a file ++ # (currently supported by the hnb DTD only, but might easily ++ # be extended since it fakes it with a XML comment). ++ # ++ # 1=true, 0=false. ++ # + savepos "1" + + ##### XML format + ##### XML Cuddling +- # When loading xml files, should data be allowed on ++ # ++ # When loading xml files, should data be allowed on + # the same line as tags? ++ # + xml_cuddle "0" ++ + ##### Autosave +- # when nodes_changed reaches above threshold, invoke autosave ++ # ++ # When nodes_changed reaches above threshold, invoke ++ # autosave. ++ # + autosave_threshold "15" + autosave_threshold_nodes_changed "0" +- +- # if change has occured but is less than threshold, save when number +- # of "ticks"/keypresses, invoke autosave ++ ++ # ++ # If change has occurred but is less than threshold, save when ++ # number of "ticks"/keypresses, invoke autosave. ++ # + autosave_timeout "50" + autosave_timer "0" +- + +- + ##### Color/style +- # color scheme configuration, syntax is: ++ # ++ # Color scheme configuration, syntax is: ++ # + # "style " +- # legal items are shown below +- # colors are: blue, cyan, green, red, magenta, yellow, black and white +- # attributes are: normal, reverse, bold, underline ++ # ++ # Legal items are shown below. ++ # ++ # Colors are: blue, cyan, green, red, magenta, yellow, black and white. ++ # ++ # Attributes are: normal, reverse, bold and underline. ++ # + + macro define 'style_standard' + style menuitem default/default reverse +@@ -138,8 +215,8 @@ + style background default/default normal + end + macro define 'style_alternate' +- style menuitem red/white normal +- style menutext black/white normal ++ style menuitem red/default normal ++ style menutext default/default normal + style parentnode default/default bold + style node default/default normal + style bullet yellow/default normal +@@ -148,14 +225,21 @@ + style background default/default normal + end + ++ ##### configuration macro (color scheme): ++ # ++ # To switch to the alternative color scheme enable ++ # "style_alternate" and disable "style_standard". ++ # + macro style_standard ++ #macro style_alternate ++ + ##### key-bindings + # +- # syntax: ++ # Syntax: + # "bind " + # +- # multiple actions can be chained together by using the virtual key ".." +- # as the following key-binding ++ # Multiple actions can be chained together by using the virtual key ++ # ".." as the following key-binding. + # + ################################################## + +@@ -197,7 +281,9 @@ + bind ^A 'action' + bind up up + bind down down +- bind left left ++ bind left right ++ bind .. left ++ bind .. left + bind right right + bind npage pagedown + bind ppage pageup +@@ -238,15 +324,76 @@ + + bind + expand + bind - collapse ++ bind ] "expand --subtree" ++ bind [ "collapse --subtree" + + bind ^Z restore_state + ++ macro define keybinding_standard ++ end ++ ++ macro define keybinding_vi ++ status "Mutt/Vi-like keybind by Osamu Aoki 2004 osamu@debian.org" ++ helptext "ESC| menu || |return| edit || |o| insert line || |s| save || |q| save&quit || |:| cmdline" ++ bind q 'context quitsave' ++ bind : 'commandline' ++ bind E 'context export' ++ bind L 'context import' ++ bind / 'macro m_search' ++ bind G 'context grab' ++ bind .. 'save_state' ++ bind A 'action' ++ bind k up ++ bind j down ++ bind h right ++ bind .. left ++ bind .. left ++ bind l right ++ bind z pagedown ++ bind Z pageup ++ bind i edit ++ bind a edit ++ bind o insert_below ++ bind .. edit ++ bind O up ++ bind .. insert_below ++ bind .. edit ++ bind T toggle_todo ++ bind D toggle_done ++ bind w save ++ bind s save ++ bind y copy ++ bind d save_state ++ bind .. cut ++ bind p paste ++ bind .. down ++ bind S save_state ++ bind .. sort ++ bind H "movenode left" ++ bind L "movenode right" ++ bind K "movenode up" ++ bind J "movenode down" ++ bind u restore_state ++ # Use "bind any ignore" instead to skip the warnings. ++ bind any unbound ++ end ++ ++ ##### configuration macro (keybindings): ++ # ++ # To switch to the alternative keybindings enable ++ # "keybinding_vi" and disable "keybinding_standard". ++ # ++ macro keybinding_standard ++ #macro keybinding_vi ++ + context nodeedit +- helptext "editing node | |ESC| revert || |return| confirm" ++ helptext "editing node | |ESC| revert || |return| confirm || |^S| split || |^J| join" + bind up up + bind down down + bind left left ++ bind ^B left + bind right right ++ bind ^F right + + bind return confirm + bind esc cancel +@@ -262,7 +409,10 @@ + bind ^E eol + bind end eol + ++ bind ^D delete + bind del delete ++ # bkill_word is currently not implemented. ++ bind ^W bkill_word + + context lineedit + helptext lineedit +@@ -270,7 +420,9 @@ + bind up up + bind down down + bind left left ++ bind ^B left + bind right right ++ bind ^F right + + bind return confirm + bind esc cancel +@@ -278,7 +430,10 @@ + + bind backspace backspace + bind backspace2 backspace ++ bind ^D delete + bind del delete ++ # bkill_word is currently not implemented. ++ bind ^W bkill_word + + bind ^A bol + bind home bol +@@ -294,7 +449,8 @@ + + bind any cancel + +- context quitsave ++ macro define 'quitsave_standard' ++ context quitsave + helptext "Save on exit? | | Y |es | J |a || | N |o || |ESC| cancel" + bind Y save + bind .. quit +@@ -314,6 +470,27 @@ + bind esc "context main" + bind any unbound + ++ end ++ ++ macro define 'quitsave_alternate' ++ context quitsave ++ helptext "Save on exit? | |return| confirm || |x| exit without saving || |ESC| cancel" ++ bind return save ++ bind .. quit ++ bind x quit ++ bind esc "context main" ++ bind any unbound ++ end ++ ++ ##### configuration macro (quit/save dialog): ++ # ++ # To switch to the alternative save/quit dialog enable ++ # "quitsave_alternate" and disable "quitsave_standard". ++ # ++ macro quitsave_standard ++ #macro quitsave_alternate ++ ++ + context spellcheck + helptext "Spellchecking | |Space| next node |ESC| cancel |F6,Return| confirm changes" + +@@ -439,6 +616,7 @@ + bind N 'search -f "$query"' + + bind return "context main" ++ bind space "context main" + + bind esc "context main" + bind .. restore_state +@@ -492,13 +670,17 @@ + bind esc 'context main' + bind any unbound + +- + ##### key related options + ##### escdelay +- # how long the program should wait before accepting that ESC(27d) is the +- # ESC key and not the start of an escape sequence +- # increase this number if you are using hnb over a slow network link +- # value given is in ms (1/1000seconds) ++ # ++ # How long the program should wait before accepting ++ # that ESC(27d) is the ESC key and not the start of an ++ # escape sequence. ++ # ++ # Increase this number if you are using hnb over a slow ++ # network. ++ # ++ # Link value given is in ms (1/1000seconds). + # + escdelay 100 + ##### menu definition +@@ -512,7 +694,7 @@ + go root + export_$format $db_file + restore_state +- end ++ end + menu "File" "revert " "revert" + menu "File" "------------" "" + menu "File" "export ^E" "context export" +@@ -526,7 +708,7 @@ + status "file: \"$db_file\" format:$format" + mem + stats +- end ++ end + menu "File" "------------" "" + menu "File" "exit ^Q" "context quitsave" + ##### edit +@@ -537,17 +719,19 @@ + menu "Edit" "---------" "" + menu "Edit" "Search ^F" "macro m_search" + ##### entry +- menu "Entry" "--------------" "" +- menu "Entry" "edit return" "edit" +- menu "Entry" "delete del" "remove" +- menu "Entry" "--------------" "" +- menu "Entry" "do action ^A" "action" +- menu "Entry" "indent >" "indent" +- menu "Entry" "outdent <" "outdent" +- menu "Entry" "toggle todo ^T" "toggle_todo" +- menu "Entry" "toggle done ^D" "toggle_done" +- menu "Entry" "expand +" "expand" +- menu "Entry" "collapse -" "collapse" ++ menu "Entry" "-------------------" "" ++ menu "Entry" "edit return" "edit" ++ menu "Entry" "delete del" "remove" ++ menu "Entry" "-------------------" "" ++ menu "Entry" "do action ^A" "action" ++ menu "Entry" "indent >" "indent" ++ menu "Entry" "outdent <" "outdent" ++ menu "Entry" "toggle todo ^T" "toggle_todo" ++ menu "Entry" "toggle done ^D" "toggle_done" ++ menu "Entry" "expand +" "expand" ++ menu "Entry" "expand subtree ]" "expand --subtree" ++ menu "Entry" "collapse -" "collapse" ++ menu "Entry" "collapse subtree [" "collapse --subtree" + ##### level + menu "Level" "------------" "" + menu "Level" "sort ^S" "sort -a" +@@ -558,6 +742,6 @@ + macro define m_about + status "hnb - hierarchical notebook http://hnb.sourceforge.net/" + status "(c) Øyvind Kolås 2001-2003 pippin@users.sourceforge.net" +- end ++ end + + macro m_about --- hnb-1.9.18.orig/debian/patches/01_quotations_instead_of_quotes.patch +++ hnb-1.9.18/debian/patches/01_quotations_instead_of_quotes.patch @@ -0,0 +1,24 @@ +hnb (1.9.17-3) * Use quotations instead of quotes. + +--- hnb-1.9.18.orig/doc/Documentation.hnb ++++ hnb-1.9.18/doc/Documentation.hnb +@@ -329,7 +329,7 @@ + + + +- quotes ++ quotations + Peoples Front To Reunite Gondwanaland: "Stop the Laurasian Separatist Movement!" + slashdot + disbelief +--- hnb-1.9.18.orig/src/tutorial.inc ++++ hnb-1.9.18/src/tutorial.inc +@@ -189,7 +189,7 @@ i(0,"sample data",0); + i(4,"http://www.vg.no/",0); + i(3,"fark.com",0); + i(4,"http://www.fark.com/",0); +- i(1,"quotes ",0); ++ i(1,"quotations ",0); + i(2,"Peoples Front To Reunite Gondwanaland: \\Stop the Laurasian Separatist Movement!\\ ",0); + i(2,"slashdot ",0); + i(3,"disbelief ",0); --- hnb-1.9.18.orig/debian/patches/50_debian_use_sensible-browser_instead_of_w3m.patch +++ hnb-1.9.18/debian/patches/50_debian_use_sensible-browser_instead_of_w3m.patch @@ -0,0 +1,28 @@ +hnb (1.9.18-4) * Use sensible-browser instead of w3m. (Closes: #396370) + +--- hnb.orig/doc/hnbrc ++++ hnb/doc/hnbrc +@@ -123,7 +123,7 @@ + #web_command "lynx *" + #web_commend "rxvt -fn fixed -rv +sb -e w3m * > /dev/null 2>&1 &" + #web_command "opera -remote 'openURL(*,new-window)' > /dev/null 2>&1 &" +- web_command "w3m *" ++ web_command "sensible-browser *" + + ##### mail@handler + # +@@ -654,11 +654,11 @@ + bind any unbound + + context user_browser +- helptext "Browser action: | |F1| w3m replace hnb |F2| w3m in rxvt |F3| Opera, new tab |F4| Mozilla new window" +- bind f1 'browser_command "w3m *"' ++ helptext "Browser action: | |F1| sensible-browser replace hnb |F2| sensible-browser in xterm |F3| Opera, new tab |F4| Mozilla new window" ++ bind f1 'browser_command "sensible-browser *"' + bind .. 'context main' + +- bind f2 'web_commend "xterm -T \"w3m spawned from hnb\" -fn fixed -rv +sb -e w3m * > /dev/null 2>&1 &"' ++ bind f2 'web_commend "xterm -T \"sensible-browser spawned from hnb\" -fn fixed -rv +sb -e sensible-browser * > /dev/null 2>&1 &"' + bind .. 'context main' + + bind f3 'web_command "opera -remote 'openURL(*,new-window)' > /dev/null 2>&1 &"' --- hnb-1.9.18.orig/debian/patches/07_postscript_todo.patch +++ hnb-1.9.18/debian/patches/07_postscript_todo.patch @@ -0,0 +1,51 @@ +hnb (1.9.18-1) * Add todo markup to postscript output. (Closes: #268968) + +--- hnb-1.9.18.orig/src/file_ps.c ++++ hnb-1.9.18/src/file_ps.c +@@ -51,12 +51,23 @@ static char *psquote[]={ + + /* *INDENT-ON* */ + +-static void ps_export_node (FILE * file, int level, int flags, char *data) ++static void ps_export_node (FILE * file, int level, Node *tnode) + { ++ char *data = fixnullstring (node_get (tnode, TEXT)); ++ char *type = node_get (tnode, "type"); + char *quoted=string_replace(data,psquote); ++ int done; ++ + indent (level, "\t"); +- fprintf (file, "( ) S 10 ss %i LM 0 a (%s ) P\n", level * 22, ++ if (type && !strcmp (type, "todo")) { ++ type = node_get (tnode, "done"); ++ done = type ? type[0] == 'y' : 0; ++ fprintf (file, "( ) S 10 ss %i LM 0 a ([%s]%s ) P\n", level * 22, ++ done ? "DONE" : "____", quoted); ++ } else { ++ fprintf (file, "( ) S 10 ss %i LM 0 a (%s ) P\n", level * 22, + quoted); ++ } + free(quoted); + } + +@@ -65,8 +76,7 @@ static int export_ps (int argc, char **a + Node *node = (Node *) data; + char *filename = argc==2?argv[1]:""; + Node *tnode; +- int level, flags, startlevel; +- char *cdata; ++ int level, startlevel; + FILE *file; + + if (!strcmp (filename, "-")) +@@ -208,9 +218,7 @@ end %% close minidict: *this is importan + + while ((tnode != 0) & (nodes_left (tnode) >= startlevel)) { + level = nodes_left (tnode) - startlevel; +- flags = node_getflags (tnode); +- cdata = fixnullstring (node_get (tnode, TEXT)); +- ps_export_node (file, level, flags, cdata); ++ ps_export_node (file, level, tnode); + if (node_up (tnode) && node_up (tnode) == node_backrecurse (tnode)) + fprintf (file, " H\n"); + --- hnb-1.9.18.orig/debian/patches/18_todo_bullet_configurable.patch +++ hnb-1.9.18/debian/patches/18_todo_bullet_configurable.patch @@ -0,0 +1,41 @@ +hnb (1.9.18-7) * Make appearance of todo bullets configurable, this patch has + been merged from lhnb. + +--- hnb.orig/src/ui_draw.c ++++ hnb/src/ui_draw.c +@@ -297,7 +297,10 @@ static int draw_spacing (int line, int c + static char bullet_leaf[4] = " ·"; + static char bullet_parent[4] = " +"; + static char bullet_parent_expanded[4] = " -"; +- ++static char bullet_todo_leaf_undone[4] = "[ ]"; ++static char bullet_todo_leaf_done[4] = "[X]"; ++static char bullet_todo_parent_undone[4] = "[ ]"; ++static char bullet_todo_parent_done[4] = "[X]"; + + + static int draw_bullet (int line, int col, int width, Node *node, +@@ -323,11 +326,11 @@ static int draw_bullet (int line, int co + break; + case 0: + if (drawmode != drawmode_test) +- addstr ("[ ]"); ++ addstr ((node_right (node)) ? bullet_todo_parent_undone : bullet_todo_leaf_undone); + break; + case 2000: + if (drawmode != drawmode_test) +- addstr ("[X]"); ++ addstr ((node_right (node)) ? bullet_todo_parent_done : bullet_todo_leaf_done); + break; + default:{ + char str[100]; +@@ -846,5 +849,8 @@ the field should be"); + cli_add_string ("bullet_leaf", bullet_leaf, ""); + cli_add_string ("bullet_parent", bullet_parent, ""); + cli_add_string ("bullet_parent_expanded", bullet_parent_expanded, ""); +- ++ cli_add_string ("bullet_todo_parent_undone", bullet_todo_parent_undone, ""); ++ cli_add_string ("bullet_todo_parent_done", bullet_todo_parent_done, ""); ++ cli_add_string ("bullet_todo_leaf_undone", bullet_todo_leaf_undone, ""); ++ cli_add_string ("bullet_todo_leaf_done", bullet_todo_leaf_done, ""); + } --- hnb-1.9.18.orig/debian/patches/12_makefiles_cflags.patch +++ hnb-1.9.18/debian/patches/12_makefiles_cflags.patch @@ -0,0 +1,22 @@ +hnb (1.9.18-4) * Correctly handle CFLAGS. Normally CPPFLAGS should be used + for preprocessor options, but this would require more lines + to be patched. + +--- hnb.orig/src/Makefile ++++ hnb/src/Makefile +@@ -1,5 +1,6 @@ + LIBS=-lncurses libcli/libcli.a +-CFLAGS=-I.. -Ilibcli -DHAVE_CONFIG_H -Wall -pedantic -g ++CFLAGS ?= -Wall -pedantic ++override CFLAGS += -I.. -Ilibcli -DHAVE_CONFIG_H + + CFILES=$(wildcard *.c) + OBJS=$(patsubst %.c,%.o,$(CFILES)) +--- hnb.orig/src/libcli/Makefile ++++ hnb/src/libcli/Makefile +@@ -1,4 +1,4 @@ +-CFLAGS = -Wall ++# CFLAGS = -Wall + + OBJS = cli.o cli_history.o cli_tokenize.o + --- hnb-1.9.18.orig/debian/patches/05_return_null_if_node_is_null.patch +++ hnb-1.9.18/debian/patches/05_return_null_if_node_is_null.patch @@ -0,0 +1,14 @@ +hnb (1.9.17-4) * Return NULL if node is NULL in node_get. (Closes: #245875) + +--- hnb-1.9.18.orig/src/node.c ++++ hnb-1.9.18/src/node.c +@@ -88,6 +88,9 @@ void node_set (Node *node, char *name, c + { + Node_AttItem *att; + ++ if (node == NULL) ++ return; ++ + att = node->attrib; + while (att) { + if (!strcmp (att->name, name)) {