Package: hnb Version: 1.9.18-3.1 Severity: normal The default format for autosave is a binary dump of the working document. Unfortunately, this does not always work very well and occasionally the recovery file would be empty. Additionally, one could not simply do a diff of the recover file and the save file in order to check for differences.
Lastly, the autosave file uses a non-standard naming convention causing CVS and Nautilus not ignore the recovery file. Something like "#filename.hnb#" would follow the more common naming convention. Attached is a patch that: * saves recovery files in hnb's native format to prevent binary corruption. * names recovery files "#file.hnb#" instead of "file.hnb_hnb_rescue" -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (700, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.14 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Versions of packages hnb depends on: ii libc6 2.3.5-6 GNU C Library: Shared libraries an ii libncurses5 5.4-9 Shared libraries for terminal hand hnb recommends no packages. -- no debconf information
diff -Naur original/hnb-1.9.18/src/autosave.c hnb-1.9.18/src/autosave.c --- original/hnb-1.9.18/src/autosave.c 2005-11-20 11:45:03.000000000 -0500 +++ hnb-1.9.18/src/autosave.c 2005-11-20 11:12:41.000000000 -0500 @@ -38,7 +38,7 @@ { 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); } diff -Naur original/hnb-1.9.18/src/file.c hnb-1.9.18/src/file.c --- original/hnb-1.9.18/src/file.c 2005-11-20 11:45:03.000000000 -0500 +++ hnb-1.9.18/src/file.c 2005-11-20 11:23:43.000000000 -0500 @@ -164,7 +164,7 @@ 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"); diff -Naur original/hnb-1.9.18/src/hnb.c hnb-1.9.18/src/hnb.c --- original/hnb-1.9.18/src/hnb.c 2003-08-26 22:50:58.000000000 -0400 +++ hnb-1.9.18/src/hnb.c 2005-11-20 11:39:11.000000000 -0500 @@ -239,7 +239,7 @@ 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 @@ { 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);