CHANGED: does no more use the external touch command to create a new
file, use perls open() instead.
CHANGED: excluded some of the help texts from the usage message and the
interactive help command to a manpage.
ADDED: new commandline flag "--encrypt" which one can use to encrypt
the mysql database password. This will be decrypted before
connecting to the db. There is also a new config file option
"encrypt_passwd" which indicates an encrypted db-password.
ADDED: another new config option "ShortCd", which can be set to "yes"
or 1 and if set, then a command like "cd 13" would jump
directly to the topic of the note with the number 13.
ADDED: now you can at any time cd back to the "root" of the
topic-structure using the command "cd /".
CHANGED: mysql.pm does now only do a table-lock on single write
accesses, no more on the whole session. This allows one to
access the same db twice or more.
FIXED: Changed README and Changelog for readability on 80 by 25
displays. And changed indentation of the note script itself.
ADDED: NOTEDB.pm - a generic module, which holds some methods, which
are used by binary.pm, mysql.pm and dbm.pm.
ADDED: NOTEDB.pm generate_search(), which allows one to
use AND, OR and various combinations of them using ( and ).
ADDED: a search does now return the 2nd line of a note if a matching
note's first line is a topic.
CHANGED: use "unshift" instead of push to add $libpath to @INC.
ADDED: a new feature, Caching of notes. supported by binary.pm and
mysql.pm. To turn it on, one need to set "Cache" in the config
to a true value.
3
0x49/CVS/Entries
Normal file
@@ -0,0 +1,3 @@
|
||||
/index.html/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
D/contents////
|
||||
D/images////
|
||||
1
0x49/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/0x49
|
||||
1
0x49/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
14
0x49/contents/CVS/Entries
Normal file
@@ -0,0 +1,14 @@
|
||||
/about/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/deutsch/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/index/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/installation/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/license/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/screenshots/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/upgrade/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/usage/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/cvs/1.2/Sat Jul 1 14:55:31 2000//
|
||||
/menu/1.2/Sat Jul 1 14:58:41 2000//
|
||||
/changelog/1.2/Sun Jul 9 22:16:25 2000//
|
||||
/version/1.2/Sun Jul 9 22:16:43 2000//
|
||||
/download/1.4/Sun Jul 9 23:03:12 2000//
|
||||
D
|
||||
1
0x49/contents/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/0x49/contents
|
||||
1
0x49/contents/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
13
0x49/contents/about
Normal file
@@ -0,0 +1,13 @@
|
||||
<h2>about note and this page</h2>
|
||||
<p>
|
||||
The author of note is Thomas Linden. if you have any questions, suggestions, votes or even flames, please feel free to
|
||||
send me an <a href="tom at daemon.de">E-mail</a>!
|
||||
<p>
|
||||
This page is hosted by <a href="http://www.consol.de">ConSol* GmbH, Germany</a> - THANKS A LOT!
|
||||
<p>
|
||||
Powered by <a href="http://www.engelschall.com/sw/eperl/">ePerl</a> and <a href="http://www.vim.org">vi</a>.
|
||||
<p>
|
||||
<a href="http://www.kernel.org"><img src="images/linux.gif" border=0></a>
|
||||
<p>
|
||||
Logo created with:<br><a href="http://www.cooltext.com"><img src="http://www.cooltext.com/images/gfx_cool.gif" border=0></a>
|
||||
|
||||
294
0x49/contents/changelog
Normal file
@@ -0,0 +1,294 @@
|
||||
<h2>changelog</h2>
|
||||
|
||||
<hr><ul>
|
||||
1.0.8:
|
||||
<li><b>FIXED</b>:<br>
|
||||
typo in noterc shipped with package may caused confusion (BLOWFISH
|
||||
instead of Blowfish).
|
||||
<li><b>CHANGED</b>:<br>
|
||||
changed the way note manages temporary filez. It uses now a random
|
||||
string instead of just it's own PID. It does also change it's umask
|
||||
to 077 and, if applicable (on ext2 filesystems) issues "chattr +s"
|
||||
which will cause the ext2 inodes to be zero'd after file deletion.
|
||||
<li><b>ADDED</b>:<br>
|
||||
A new config option allows the user to specify her own temp-directory.
|
||||
The default is still /tmp.
|
||||
</ul>
|
||||
|
||||
<hr><ul>
|
||||
1.0.7:
|
||||
<li><b>FIXED</b>:<br> there was a bug in the search expression, use now \Q and \E.
|
||||
<li><b>ADDED</b>:<br> --config <file> allows one to use another config than the default.
|
||||
</ul>
|
||||
<hr><ul>
|
||||
1.0.6:
|
||||
<li><b>FIXED</b>:<br> Forgot "PreferredEditor" config-option in the new config format.
|
||||
<li><b>FIXED</b>:<br> the interactive "cd .." command has ignored the presence of a
|
||||
"DefaultLong" setting(and search too)... thx to Peter.
|
||||
<li><b>CHANGED</b>:<br> Optimized a little bit the output routine, now it is better to read.
|
||||
<li><b>ADDED</b>:<br> sub format and appropriate config-option for text formatting capabilities.
|
||||
<li><b>CHANGED</b>:<br> changed getconfig regexp, which allows now also to use Option = Param.
|
||||
<li><b>FIXED</b>:<br> was not possible to override config-options, which are set by default to
|
||||
something.
|
||||
<li><b>ADDED</b>:<br> note chacks now, if a database os actually really encrypted and exits with
|
||||
an error if it s and the user turned off encryption. This protects her from
|
||||
destroying it's own database ..
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
1.0.5:
|
||||
<li><b>FIXED</b>:<br> the T (and t respectively) printed nothing out since 1.0.3! It does
|
||||
it now again...
|
||||
<li><b>ADDED</b>:<br> a new database backend added, NOTEDB::dbm, which uses DBM files for
|
||||
storage.
|
||||
<li><b>FIXED</b>:<br> &display-tree returns now, if there is no note, otherwise it
|
||||
would die because of an undefined refernce.
|
||||
<li><b>CHANGED</b>:<br> Changed the config file format completely. It is now no more a perl
|
||||
file, instead it is a simple plain text file which note parses.
|
||||
<li><b>CHANGED</b>:<br> Changed the way, note loads it database backend. It uses now the
|
||||
$dbdriver variable as module-name, which makes it possible easily
|
||||
to write your own backend without the need to change note itself.
|
||||
<li><b>FIXED</b>:<br> Removed Getopt::Long option "bundling", causes errors with perl
|
||||
5.6.0 and is not senceful.
|
||||
<li><b>FIXED</b>:<br> Added the Getopt::Long option "no_ignore_case". In 1.0.4 options
|
||||
were case insensitive causing -i to be interpreted as --import
|
||||
instead of --interactive ;-(((
|
||||
<li><b>ADDED</b>:<br> a new config option $DEFAULT_LIST, which causes note, \
|
||||
if turned to "LONG", to use long-listing as default. |
|
||||
But it will still be able to use short-listing if you |
|
||||
explicit specify that. | submitted by
|
||||
<li><b>FIXED</b>:<br> sub search prints now an appropriate error-message in |==> Peter Palmreuther
|
||||
case no searchstring was given instead of jumping to | thanks a lot!
|
||||
usage. |
|
||||
<li><b>CHANGED</b>:<br> Changed the text in the interactive help to reflect |
|
||||
changes of verion 1.0.3 (t and T). /
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
1.0.4:
|
||||
<li><b>CHANGED</b>:<br> Moved from @ARGV-parsing to Getopt::Long, adding options is now
|
||||
much easier and I do now understand my own code ;-)
|
||||
<li><b>ADDED</b>:<br> --raw, the "Raw Mode", which turns off any formatting of output.
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
1.0.3:
|
||||
<li><b>ADDED</b>:<br> "-" works also for --dump, but in the other direction. It causes
|
||||
note to dump to standard output instead into a file.
|
||||
<li><b>ADDED</b>:<br> you can specify - as filename for use with --import and if you want
|
||||
to create a new note. "-" stands for standardinput and it allows you
|
||||
tp pipe another commands output to note!
|
||||
<li><b>ADDED</b>:<br> you can now use an environment variable for the passphrase (when using
|
||||
encryption). If it is presen, note will not ask for a passphrase. This
|
||||
is very usefull in comination with the addition above, for use in
|
||||
scripts.
|
||||
<li><b>CHANGED</b>:<br> the interactive help screen is now coloured.
|
||||
<li><b>ADDED</b>:<br> -o commandline switch, which causes note to overwrite an existing
|
||||
database when importing data from a previous dump. Very handy if
|
||||
you want to re-initialize your db, i.e. if you changed the format.
|
||||
<li><b>ADDED</b>:<br> the long-tree-view (-T) displays now also the note-number of each
|
||||
note.
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
1.0.2:
|
||||
<li><b>ADDED</b>:<br> Topic-Tree overview command (-t or -T).
|
||||
<li><b>ADDED</b>:<br> Enhanced list command in interactive mode, you can now specify
|
||||
a topic which notes you want to see.
|
||||
<li><b>CHANGED</b>:<br> updated the help and usage sections to reflect the additions above.
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
1.0.1:
|
||||
<li><b>FIXED</b>:<br> fixed bug in NOTEDB::mysql, which caused note t store NULL values
|
||||
in db, if encryption was off. A really dump failure :-(
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
1.0.0:
|
||||
<li><b>CHANGED</b>:<br> removed install.#!/bin/sh. use now a Makefile for installation.
|
||||
<li><b>ADDED</b>:<br> Encryption support. Note can now encrypt notes using IDEA
|
||||
or DES as encryption-protocols(symetric).
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
0.9:
|
||||
<li><b>FIXED</b>:<br> There were many new bugs after my last changes *grrrrr*. fixed.
|
||||
Works now properly, with both backends!
|
||||
<li><b>FIXED</b>:<br> and another bug: recounting of numbers did not take care about
|
||||
the existing order! If you deleted note #12, then note #13 became
|
||||
not neccessarily #12! Instead it becames any other number (kind of
|
||||
randomly...).
|
||||
<li><b>CHANGED</b>:<br> NOTEDB::binary set_del function changed, it does no more require
|
||||
a temporary file for number recount. Instead it uses get_all and
|
||||
stores all notes in RAM and then rewrites the database.
|
||||
<li><b>FIXED</b>:<br> fixed the set_new call within note. It used 0 as the first param
|
||||
(number) which is not useful since we dont have support for auto-
|
||||
increment from all database backends.
|
||||
<li><b>FIXED</b>:<br> fixed the function set_recountnum in NITEDB::mysql, it was also
|
||||
incorrect :-((( 0.8 seemed to be a very bad early alpha...........
|
||||
<li><b>FIXED</b>:<br> there was a bug in NOTEDB::binary which caused not to recount note
|
||||
numbers after deleting one :-(
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
0.8:
|
||||
<li><b>ADDED</b>:<br> NOTEDB::binary. so now 0.8 is ready for shipping !
|
||||
<li><b>FIXED</b>:<br> regexp bug fixed. It was only possible to delete 2 items together
|
||||
separated by comma ("d 1,2,3,4" deleted only 1,2!).
|
||||
<li><b>ADDED</b>:<br> Some new config options which reflects the new module structure.
|
||||
So you can change your database backend without the need to
|
||||
replace the note script itself.
|
||||
<li><b>FIXED</b>:<br> the previously added feature "cd <topic>" didn't really work :-(
|
||||
<li><b>ADDED</b>:<br> NOTEDB::mysql added. Perlmodule, which I will use within
|
||||
note from now on instead of buildin functions for accessing the
|
||||
database. From now on I only need to maintain one version of
|
||||
note, since the module interface will be identical between the
|
||||
bin and sql version.
|
||||
<li><b>CHANGED</b>:<br> The SQL code does not use Mysql.pm anymore. Instead it is coded
|
||||
using the more portable DBI module. This allows one easily to
|
||||
switch to anther database, which is supported by DBI.
|
||||
<li><b>CHANGED</b>:<br> Locking. The db-table will now be locked before note accesses it.
|
||||
<li><b>FIXED</b>:<br> width of listings is now always the same independent of the string-
|
||||
length of a certain note.
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
0.7:
|
||||
<li><b>ADDED</b>:<br> one can now use the unix-like "cd" command to change to another
|
||||
topic, thus use "cd topicname" instead just typing "topicname"!
|
||||
<li><b>FIXED</b>:<br> there was a smal regex bug which maked it impossible to use such
|
||||
topics: "4 test", in such a case note just displayed note number 4
|
||||
instead of cd'ing to topic "4 test".
|
||||
<li><b>ADDED</b>:<br> a new config option "$KEEP_TIMESTAMP" allows a user to disable
|
||||
note's default behavior of updating the timestamp of a note after
|
||||
editing it.
|
||||
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
0.6:
|
||||
<li><b>FIXED</b>:<br> oops - the new suptopic feature confused the commandline-mode of
|
||||
note! quickly corrected! so subtopics also available from command-
|
||||
line.
|
||||
<li><b>FIXED</b>:<br> a small bug fiyed, it was impossible to use -D or -I from command-
|
||||
line, if $ALWAYS_INT was turned on, now it is.
|
||||
<li><b>FIXED</b>:<br> fixed problem with local/global variable $time, which confused
|
||||
the script under certain circumstances, now $time is no more global,
|
||||
it will be read in (using &getdate) locally by &new and &edit.
|
||||
<li><b>CHANGED</b>:<br> The Topic separator is no longer hardcoded, one can customize
|
||||
it using the $TopicSep variable, the default is now /, the backslash
|
||||
will no mor work!
|
||||
<li><b>CHANGED</b>:<br> use perl buildin localtime() function instead of
|
||||
GNU date, which is possibly not installed on every target
|
||||
system (i.e. win32), therefore better portability!
|
||||
<li><b>CHANGED</b>:<br> use now the strict module
|
||||
<li><b>ADDED</b>:<br> Support for subtopics added (and sub-sub-..-topics).
|
||||
<li><b>CHANGED</b>:<br> Removed the "T" command, it is now obsolete.
|
||||
<li><b>CHANGED</b>:<br> behavior of list command changed, now shows topics as well as
|
||||
notes under the current topic(if there are some).
|
||||
<li><b>CHANGED</b>:<br> The ".." command takes you now one level higher in your topic-
|
||||
structure.
|
||||
<li><b>ADDED</b>:<br> A new config option $PreferredEditor, which you can use to
|
||||
specify your own choice of editor.
|
||||
<li><b>FIXED</b>:<br> A bug at line 769 causing single note where smaller than note-
|
||||
listings
|
||||
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
|
||||
0.5:
|
||||
<li><b>ADDED</b>:<br> Topic support(requested). You can sort the various notes under
|
||||
different topics now.
|
||||
<li><b>FIXED</b>:<br> There was another bug, which caused the list command to display
|
||||
the notes with a too high value of $maxlen.
|
||||
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
|
||||
0.4.2:
|
||||
<li><b>ADDED</b>:<br> If run in interactive mode, note will at first do a list command.
|
||||
<li><b>FIXED</b>:<br> A bug caused note to save bogus timestamps after editing a note.
|
||||
<li><b>CHANGED</b>:<br> It does no more print 3 newlines before the menu in interactive mode.
|
||||
<li><b>FIXED</b>:<br> Some more vars will be resetted during each loop in interactive mode.
|
||||
$ListType.
|
||||
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
|
||||
0.4.1:
|
||||
<li><b>ADDED</b>:<br> The install.#!/bin/sh script for the mysql version is no able to install the
|
||||
required Mysql module directly from CPAN, thanks to David A. Bandel!
|
||||
<li><b>FIXED</b>:<br> The mysql version did not display notes (i.e.: "note 3" did nothing)
|
||||
<li><b>CHANGED</b>:<br> Again, the sql-format of the mysql database has been changed. Now
|
||||
there are only 3 fields, the number filed is the primary key, the id
|
||||
field in previous versions was a waste of diskspace...
|
||||
<li><b>CHANGED</b>:<br> The format of the dump-output has been changed.
|
||||
<li><b>ADDED</b>:<br> It is now possible to import previously dumped notes into the notedb
|
||||
(dumps from both versions are compatible with each other)
|
||||
<li><b>FIXED</b>:<br> the function num_bereich() had a bug, which caused ot to ignore under
|
||||
some circumstances one number (i.e. "note -d 4-13" did nothing).
|
||||
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
|
||||
0.4:
|
||||
<li><b>CHANGED</b>:<br> ok, mysql support is back again (upon requests). therefore there
|
||||
are two different version of the script in the same time with
|
||||
the same features, one for mysql and the other one for the binary
|
||||
database.
|
||||
<li><b>ADDED</b>:<br> Dump to textfile capability. Later on I want to dump it into a
|
||||
palm readable format, any help is welcome!
|
||||
<li><b>ADDED</b>:<br> interactive mode.
|
||||
<li><b>CHANGED</b>:<br> Better modularity, better code.
|
||||
<li><b>CHANGED</b>:<br> note can now run without the need of a config file. If does not
|
||||
exist, it will try to work with default values.
|
||||
|
||||
<li><b>ADDED</b>:<br> sub num_bereich(), which allows one to specify more then one
|
||||
number for deletion or displaying (i.e.: "-d 1,4,7" or "-d 4-9")
|
||||
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
|
||||
0.3:
|
||||
<li><b>CHANGED</b>:<br> it uses no more a mysql database, but a binary file instead.
|
||||
This is much faster!
|
||||
<li><b>ADDED</b>:<br> note can display the notes with colors, it is turned off by default
|
||||
|
||||
|
||||
</ul><hr><ul>
|
||||
|
||||
|
||||
0.2:
|
||||
<li><b>FIXED</b>:<br> now any occurence of ' will be masked with \' before storage
|
||||
to the mysql database.
|
||||
<li><b>FIXED</b>:<br> now numbers of notes will be recounted, if one delete one note,
|
||||
so the list of notes will everytime start with 1,2,3,...
|
||||
<li><b>CHANGED</b>:<br> the look of the list output has been changed, similar to a table
|
||||
|
||||
|
||||
</ul><hr>
|
||||
|
||||
0.1:
|
||||
INITIAL RELEASE.
|
||||
|
||||
|
||||
20
0x49/contents/cvs
Normal file
@@ -0,0 +1,20 @@
|
||||
<h2>CVS</h2>
|
||||
<p>
|
||||
|
||||
The whole note source tree is now maintained via CVS at <a href="http://sourceforge.net">sourceforge.net</a>.
|
||||
|
||||
You can browse the repository via the web:
|
||||
<br>
|
||||
<a target="newspot" href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/NOTE/?cvsroot=htnews">http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/NOTE/?cvsroot=htnews</a>.
|
||||
|
||||
<p>
|
||||
|
||||
Or you can use the <b>cvs</b> command:
|
||||
<br>
|
||||
<pre>
|
||||
cvs -d:pserver:anonymous@cvs.htnews.sourceforge.net:/cvsroot/htnews login
|
||||
|
||||
cvs -z3 -d:pserver:anonymous@cvs.htnews.sourceforge.net:/cvsroot/htnews co NOTE
|
||||
</pre>
|
||||
<br>
|
||||
When prompted for a password for anonymous, simply press the Enter key.
|
||||
19
0x49/contents/deutsch
Normal file
@@ -0,0 +1,19 @@
|
||||
<h2>Hinweise für deutsche Besucher</h2>
|
||||
note ist ein Konsolenprogram, mit dem man einfach Notizen verwalten
|
||||
kann, <20>hnlich wie bei "knotes". Es ist in Perl geschrieben. Note
|
||||
verwendet externe (mitgelieferte!) Module als Speicher-Backend, um
|
||||
die Daten zu speichern. Momentan ist ein mysql-Modul dabei, sowie
|
||||
ein "binary"-Modul, note's eigenes Datenformat und seit 1.0.5 auch ein
|
||||
DBM modul. Das mysql Modul verwendet Perls Standard Modul DBI
|
||||
und ist damit f<>r alle g<>ngigen DBMS verwendbar.
|
||||
Seit Version 1.0.0 wird Verschl<68>sselung unterst<73>tzt(IDEA oder DES),
|
||||
man kann also durchaus auch sensible Daten speichern.
|
||||
<p>
|
||||
Die Dokumentation für <b>note</b> liegt leider nur in englisch vor. Trotzdem müssen Deutsche
|
||||
nicht ganz leer ausgehen :-)
|
||||
<p>
|
||||
Hannes Lau hat auf seiner <a href="http://home.debitel.net/user/hannes.lau/Linux-Text.htm#Notizen">Homepage</a> eine kurze Beschreibung bereitgestellt (Tausend Dank!).
|
||||
<p>
|
||||
Eine ausf<73>hrliche Beschreibung des Programmes ist ausserdem im
|
||||
<a href="http://www.linux-magazin.de">LinuxMagazin 5/2000</a> S. 106 erschienen (allerdings basierend auf einer
|
||||
<EFBFBD>lteren Version...)!<br> *stolzsei* ;-)
|
||||
17
0x49/contents/download
Normal file
@@ -0,0 +1,17 @@
|
||||
<h2>downloads</h2>
|
||||
<p>
|
||||
Here you can find the <b>note</b> package for free download. Follow the installation instructions in the
|
||||
README file provided with the package or read the <a href="install.html">online version</a>.
|
||||
<p>
|
||||
newest: <a href="ftp://ftp.daemon.de/pub/note/note-1.0.8.tar.gz">note-1.0.8.tar.gz</a><br>
|
||||
<a href="ftp://ftp.daemon.de/pub/note/note-1.0.7.tar.gz">note-1.0.7.tar.gz</a><br>
|
||||
<a href="ftp://ftp.daemon.de/pub/note/note-1.0.6.tar.gz">note-1.0.6.tar.gz</a><br>
|
||||
<a href="ftp://ftp.daemon.de/pub/note/note-1.0.5.tar.gz">note-1.0.5.tar.gz</a><br>
|
||||
<a href="ftp://ftp.daemon.de/pub/note/README.txt">read the README</a><br>
|
||||
<a href="ftp://ftp.daemon.de/pub/note/Changelog.txt">read the Changelog</a><br>
|
||||
|
||||
<hr>
|
||||
If you encounter any problems with the site above, try to use one of the following mirrors:<p>
|
||||
<a href="ftp://www.0x49.org/pub/scip/note/">ftp://www.0x49.org/pub/scip/note/</a>
|
||||
<br>
|
||||
<a href="http://sourceforge.net/project/filelist.php?group_id=656">http://sourceforge.net/project/filelist.php?group_id=656</a>
|
||||
49
0x49/contents/index
Normal file
@@ -0,0 +1,49 @@
|
||||
<h3>welcome to the homepage of <I>note</I> by <a href="mailto: tom at daemon.de">Thomas Linden</a></h3>
|
||||
<I>note</I> is a small console program written in perl, which allows
|
||||
you to manage notes similar to programs like "knotes" from
|
||||
commandline. Note can use different database-backends for
|
||||
notes-storage. It ships with a DBI-based mysql-module(which
|
||||
can also be used for other by DBI supported DBMS) and another
|
||||
module, which uses a binary file for storage and a DBM module.<br>
|
||||
Note supports since version 1.0.0 encryption(IDEA or DES)!<p>
|
||||
Here is a brief list of it's features:
|
||||
|
||||
<ul><li> Three different database backends, mysql(DBI), dbm, binary(bin file).
|
||||
</li><li> Commandline interface using the standard perl module
|
||||
Getopt::Long, which allows you to use short or long
|
||||
command-line options.
|
||||
</li><li> Interactive interface(pure ascii), the following functions
|
||||
are available in interactive mode: list, display, topic,
|
||||
delete, edit, help.
|
||||
</li><li> Highly confiurable using a perlish configfile ~/.noterc.
|
||||
although it is configurable it is not required, note can
|
||||
run without a configfile using useful default presets.
|
||||
</li><li> Colourized output is supported using ASCII Escape-Sequences.
|
||||
</li><li> The user can customize the color for each item.
|
||||
</li><li> Data can be stored in various different database backends,
|
||||
since all database access is excluded from the program itself
|
||||
in perl modules.
|
||||
</li><li> Notes can be deleted, edited and you can search trough your notes.
|
||||
</li><li> Notes can be categorized. Each category(topic) can contain multiple
|
||||
notes and even more sup-topics. There is no limitation about
|
||||
sub topics.
|
||||
</li><li> You can view all notes in a list and it is possible only to view
|
||||
notes under a certain topic.
|
||||
</li><li> There is a tree-view, which allows you to get an overview of your
|
||||
topic-hierarchy.
|
||||
</li><li> Notes can be encrypted using DES or IDEA algorythms and Crypt::CBC.
|
||||
</li><li> You can dump the contents of your note database into a plain text
|
||||
file, which can later be imported. Imports can be appended or it can
|
||||
</li><li>verwrite an existing database (-o).
|
||||
</li><li> Note has scripting capabilities, you can create a new note by piping
|
||||
another commands output to note, you can also import a notedump from
|
||||
stdin as well es duming to stdout instead a file. Additional, there
|
||||
is an option --raw available, which prints everything out completely
|
||||
without formatting.
|
||||
</li><li> It can be installed without root-privileges.
|
||||
</li><li> Last, a while ago a user stated: "... it simply does, what it says ..."
|
||||
</li></ul>
|
||||
|
||||
<p>
|
||||
<I>note</I> is released under the terms of the <a href="license.html"><b>Gnu Public License(GPL)</b></a>
|
||||
and is therefore free Software.
|
||||
42
0x49/contents/installation
Normal file
@@ -0,0 +1,42 @@
|
||||
<h2>installation of note</h2>
|
||||
<p>
|
||||
Unpack the tar-ball and issue the command:<br>
|
||||
$ perl Makefile.PL<br>
|
||||
It will ask you a few questions about file destinations.
|
||||
The script will find itself the proper destinations for
|
||||
the files. So, if you agree with it, simply press ENTER.
|
||||
However, you may decide to use other destinations. In this
|
||||
case, enter it, when asked. This maybe usefull, if you are
|
||||
installing it in your ome-directory and if you are not root!
|
||||
<p>
|
||||
For installation instructions for the mysql database installation
|
||||
see mysql/README.
|
||||
<p>
|
||||
If want to use another SQL database, i.e. postgresql then set
|
||||
the option "DbDriver" to the name of the responding DBI-driver
|
||||
and create a symlink of this name like this:
|
||||
<br> /usr/lib/perl5/siteperl/NOTEDB $ ln -s mysql.pm oracle.pm
|
||||
<br> The functionality is the same, but not the name!
|
||||
<p>
|
||||
The default binary file backend does not need any special installation
|
||||
procedure, you need only to spceify a filename in your config file.
|
||||
<p>
|
||||
The DBM backend(NOTEDB::dbm) requires the existence of a directory,
|
||||
which you must specify in your config using the option "DbName".
|
||||
<p>
|
||||
|
||||
|
||||
<b>Configuration</b>
|
||||
|
||||
This version of note doesn't neccessarily need
|
||||
a configuration file. But you can have one and change
|
||||
some default values. Take a look to the file config/noterc
|
||||
provided with this tarball. There are detailed instructions
|
||||
about every available parameter.
|
||||
<br> Simply copy this file into your home-directory and name it
|
||||
.noterc
|
||||
If you decide not to use the default database backend (a binary
|
||||
file), you will *need* a configuration!
|
||||
|
||||
|
||||
|
||||
342
0x49/contents/license
Normal file
@@ -0,0 +1,342 @@
|
||||
<pre>
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
</pre>
|
||||
19
0x49/contents/menu
Normal file
@@ -0,0 +1,19 @@
|
||||
<img src="images/note.jpg" border=0>
|
||||
<HR SIZE="1" NOSHADE="1">
|
||||
<a href="index.html">home</a><p>
|
||||
<a href="installation.html">installation</a><p>
|
||||
<a href="usage.html">usage</a><p>
|
||||
<a href="upgrade.html">upgrade</a><p>
|
||||
<a href="changelog.html">changelog</a><p>
|
||||
<a href="download.html">download</a><p>
|
||||
<a href="license.html">license</a><p>
|
||||
<a href="cvs.html">cvs</a><p>
|
||||
<a href="screenshots.html">screenshots</a><p>
|
||||
<a href="deutsch.html">deutsch</a><p>
|
||||
<a href="about.html">about</a><p>
|
||||
<HR SIZE="1" NOSHADE="1">
|
||||
<center><font size=-2>last updated 02.07.2000</font>
|
||||
<p>
|
||||
<img src="images/anybrow.gif" alt="best viewed with any browser">
|
||||
</center>
|
||||
|
||||
16
0x49/contents/screenshots
Normal file
@@ -0,0 +1,16 @@
|
||||
<h2>screenshots</h2>
|
||||
|
||||
Yes there are also screenshots of note available :-)
|
||||
<br>
|
||||
Simply click on a tumbnail to enlarge the image!
|
||||
<p>
|
||||
<a href="images/note.gif">Linux</a>
|
||||
<br><a href="images/note-linux.gif"><img src="images/note_linux_small.png" border=0></a>
|
||||
<p>
|
||||
<a href="images/note-win32.gif">Win32</a>
|
||||
<br><a href="images/note-win32.gif"><img src="images/note_win32_small.png" border=0></a>
|
||||
<p>
|
||||
<a href="images/note-be.jpg">BeOS</a>
|
||||
<br><a href="images/note-be.jpg"><img src="images/note_be_small.png" border=0></a>
|
||||
<p>
|
||||
and finally here a <a href="http://home.debitel.net/user/hannes.lau/Desktop.htm">desktop</a> of a user with note running.
|
||||
45
0x49/contents/upgrade
Normal file
@@ -0,0 +1,45 @@
|
||||
<h2>upgrade from previous version of note to 1.0.x</h2>
|
||||
<p>
|
||||
In any case: BACKUP your existing note database!!!!!!!
|
||||
The format has not changed, but some default values
|
||||
(see the new config file-sample). Use this command
|
||||
to save your note database with your *old* version
|
||||
of note:<br>
|
||||
"note -D"<br>
|
||||
This works with both the mysql and the binary version.
|
||||
<p>
|
||||
You need to reedit your configfile. Please refer to the
|
||||
sample config in config/noterc.
|
||||
<p>
|
||||
<hr>
|
||||
<p>
|
||||
This version of note has now encryption support build in.
|
||||
If you decide to use it, you need to re-initialize your
|
||||
note database. That's why, because your current database
|
||||
is unencrypted and *if* you want to secure your data, you
|
||||
need to secure everything. That means, your existing data
|
||||
must be encrypted before you can use this new capability!
|
||||
<p>
|
||||
Follow this steps:
|
||||
<ul>
|
||||
<li> backup existing db:
|
||||
<br> $ note -D
|
||||
<li> backup the db:
|
||||
<br> $ cp .notedb .notedb.save
|
||||
or (for mysql users!):
|
||||
<br> $ cp -r /usr/local/mysql/data/notedb ~/notedb.mysql.save
|
||||
<li> go into note and delete all existing notes:
|
||||
<br> $ note -d 1-20 (or however)
|
||||
<li> now upgrade your note installation:
|
||||
<br> $ perl Makefile.PL; make install
|
||||
<li> re-configure note. Turn $USE_CRYPT on by setting it
|
||||
to "YES".
|
||||
<li> re-initialize your database:
|
||||
<br> $ note -I note.dump.2323 (or whatever)<br>
|
||||
note will prompt you for a passphrase. It will be used
|
||||
by Crypt::CBC for encrypting your data.
|
||||
</ul>
|
||||
From now on, your data is encrypted. You will need the passphrase
|
||||
you set above for decrypting it! So - don't forget it!
|
||||
|
||||
|
||||
350
0x49/contents/usage
Normal file
@@ -0,0 +1,350 @@
|
||||
<h2>usage of note</h2>
|
||||
<p>
|
||||
<a href="#desc">1. Description</a><p>
|
||||
<a href="#topics">2. Topics</a><p>
|
||||
<a href="#format">3. Formatting of note-text</a><p>
|
||||
<a href="#script">4. Scripting</a><p>
|
||||
<a href="#dbformat">5. Binary DB</a><p>
|
||||
<a href="#sqlformat">6. Mysql DB</a><p>
|
||||
<a href="#dumpformat">7. Dump Format</a><p>
|
||||
<a href="#security">8. Security</a><p>
|
||||
<hr>
|
||||
<p>
|
||||
<a name="#desc">
|
||||
<h4>Decription</h4>
|
||||
|
||||
If you don't know, how to run note, try "note -h" first.
|
||||
It will tell you all available commandline options.
|
||||
<p>
|
||||
To create a new note, simply run "note". You can enter
|
||||
the note (the length is by default limited to 4096 bytes,
|
||||
which you can change from your config file if you are using
|
||||
the binary backend, therwise there is no limitation).
|
||||
End by typing a . on a line itself. note will tell you the
|
||||
number of the note.
|
||||
<p>
|
||||
If you want to view the note, type "note 1", if the notenumber
|
||||
was 1.
|
||||
<p>
|
||||
If you want to get an overview of all notes, type "note -l".
|
||||
You will get a list of all notes, containing the number,
|
||||
the first line and the creation date. If topic-support is
|
||||
turned on (which is by default), then all subtopics under the
|
||||
current topic will be displayed first.
|
||||
<br> If you want to get a listing of all
|
||||
If you want to see the timestamps, use "-L" instead of "-l".
|
||||
Read more about topics below in the section "Topics".
|
||||
You can also specify the topic which notes you want to see:
|
||||
"-l mytopic" does the trick.
|
||||
<br> Additional, you might want to get an overview of your topic-
|
||||
strcture. You can use the command "-t" in this case, which
|
||||
will display a tree-view of your tpic-structure. You can
|
||||
use the command "-T" if you want to see the notes under each
|
||||
topic too. "-T" will also show the number of each note.
|
||||
<p>
|
||||
To edit a certain note, type "note -e 1". It will invoke your
|
||||
editor (vi or pico). You can edit it, after saving, note
|
||||
will store the changed note to the database.
|
||||
<p>
|
||||
Of course you can drop a certain note: "note -d 1" deletes
|
||||
note number 1. If a note in the middle or the beginning of
|
||||
the database will be deleted, note will recount the other
|
||||
existent notes. For example there are 3 notes, number 1, 2
|
||||
and 3. If you delete number 2, then number 3 will become
|
||||
number 2.
|
||||
<br> You can also make use of the extended delete-syntax:
|
||||
To delete note 1 and 2, use "-d 1,2"
|
||||
To delete note 1,2 and 3, use "-d 1-3".
|
||||
<p>
|
||||
If you cannot remember, which note you are looking for, you
|
||||
can use the search capability of note: "note -s <searchstring>".
|
||||
note will search the whole note database case insensitive for
|
||||
an occurence of this string and tell you the number and first-
|
||||
line it have.
|
||||
<p>
|
||||
Instead of using note from the commandline you can use the
|
||||
interactive mode. Run note with "note -i". If you need assistance
|
||||
type "?" or "h" at the ">" prompt. The interactive mode
|
||||
provides you the most functions of note.
|
||||
<p>
|
||||
You can also dump the contents of your note-database into a
|
||||
ASCII-textfile(-D). You can use this file later to import it into
|
||||
your note-database(-I). This is usefull, if you want quickly trans-
|
||||
fer your notes from one host to another (i.e. you could mail
|
||||
your note-dump form your office to home and import it there
|
||||
for further use).
|
||||
<br> The dumps from the two versions of note are in the same format.
|
||||
Using dumps it is also possible to reinitialize your database. You
|
||||
can use the "-o" switch whcih causes note to overwrite your existing
|
||||
database. This is very handy if you changed heavily your config. And
|
||||
it is required, if you changed: encryption, db-driver, (binary-format)
|
||||
and the password. You can use the following command for reinitializing:
|
||||
<br> $ note -D - | note -o -I -
|
||||
<br> What the hell, does it?! Step by step:
|
||||
<ul>
|
||||
<li> "note -D -" creates a note-database dump and prints it out
|
||||
to stantdard output.
|
||||
<li> "|" this is the shell's pipe command. It takes the output
|
||||
of the left program and gives it to the right program as standard
|
||||
input.
|
||||
<li> "note -o -I -" imports a note-database dump from standard input
|
||||
and overwrites an existing database.
|
||||
</ul>
|
||||
Before you use the "-o" switch, I consider yuo to make a backup!
|
||||
|
||||
<p>
|
||||
|
||||
<a href="#top">top</a><p><p><a name="topics">
|
||||
<h4>Topics</h4>
|
||||
|
||||
If topic-support is turned on (which is by default), the various
|
||||
notes are sorted under various topics. There is no special database
|
||||
field for the topic. Instead the topic will be stored right in the
|
||||
note.
|
||||
<br> If the first line of your note contains some text bordered by slashes
|
||||
(or whatever you prefer, set "TopicSeparator" in your config! default is slash),
|
||||
then note will consider it as the topic of this certain note. For examle:
|
||||
<br> /TodoList/
|
||||
<br> If you are using topics, no data after the topic is allowed, if there
|
||||
is any text, note will consider it as a subtopic! Therefore, don't for-
|
||||
get to put a newline after the topic-line.
|
||||
<p>
|
||||
If you are in interactive mode, you can "cd" to a different note simply
|
||||
by typing it's name at the command-prompt, or you can use the well-known
|
||||
syntax "cd topic".
|
||||
<br> The list-command will only show you notes under this topic. If you create
|
||||
a new note, it will automagically inserted under the current topic (note
|
||||
will prepend the string "/topicname/" to the text of your note).
|
||||
<p>
|
||||
You can create at any time from any point a new topic. Just create a new
|
||||
note and type the name of the new topic bordered by slashes (or TopicSeparator)
|
||||
at the first line of this note. After saving, there will be available a
|
||||
new topic with one note in it.
|
||||
<p>
|
||||
You can create as many subtopics as you like, the format is similar to a
|
||||
filesystem-path. An example, say, you want to create such a structure:
|
||||
<p>
|
||||
<pre>
|
||||
(root - top level)
|
||||
|
|
||||
|----test
|
||||
| |----subtopic
|
||||
| | |--note 1
|
||||
| | |--note 2
|
||||
| |
|
||||
| |--note 4
|
||||
|
|
||||
|--note 3
|
||||
</pre>
|
||||
<p>
|
||||
Then you may create those 4 new notes:
|
||||
<br>
|
||||
<pre>
|
||||
--- snip ---
|
||||
/test/subtopic/
|
||||
note 1
|
||||
--- snip ---
|
||||
/test/subtopic/
|
||||
note 2
|
||||
--- snip ---
|
||||
note 3
|
||||
--- snip ---
|
||||
/test/
|
||||
note 4
|
||||
--- snip ---
|
||||
</pre><br>
|
||||
I hope, you got the point ;-)
|
||||
<p>
|
||||
|
||||
|
||||
If a note does not contain the "magic" /topic/ construction on the first
|
||||
line, it will be listed under the "root" of note, that is the point you are
|
||||
at the startup of note.
|
||||
<p>
|
||||
You can subsequently move a note without a topic to a certain topic. Simply
|
||||
edit it and insert at the first line the above mentioned construction.
|
||||
<p>
|
||||
Note: Please don't forget the prepending and appending a slash of a topic.
|
||||
You will get strange results without it!
|
||||
|
||||
|
||||
<p>
|
||||
|
||||
<a href="#top">top</a><p><p><a name="format">
|
||||
<h4>Formatting of notes</h4>
|
||||
|
||||
Another very nice feature is the possibility to format the note-text (as much as
|
||||
shell allows it). First, you can use the note-internal "magic-strings" for color-
|
||||
izing. Those strings looks much like HTML:
|
||||
i<br> "<green>here is a green line of text</green> no more green."
|
||||
As you see, the beginning of another color starts with a tag(kinda) of the color
|
||||
<colorname> and ens with an end tag </colorname>.
|
||||
<p>
|
||||
The following colors are available:
|
||||
black, red, green, yellow, blue, magenta, cyan and white.
|
||||
<p>
|
||||
Beside colorizing text, you can also create bold or underlined text! If you decide
|
||||
to use this (additional) feature, you need to set the Config-Option "FormatNotes"
|
||||
to 1 which turns it on.
|
||||
<br> Usage is very straightforward, if a word (a word is defined as some text with at least
|
||||
one space surrounded) is between a magic mark-character. Here are the available
|
||||
things, you can do:
|
||||
<pre>
|
||||
bold: **word**
|
||||
underlined: __word__
|
||||
inverse: {{word}}
|
||||
</pre>
|
||||
The text will be formatted using the actually note-color.
|
||||
<p>
|
||||
|
||||
|
||||
<a href="#top">top</a><p><p><a name="script">
|
||||
<h4>Scripting</h4>
|
||||
|
||||
Since version 1.0.3 there are some additions which allows you to use note in
|
||||
scripts, without user-interaction. You might run a special script as cronjob,
|
||||
which adds a note under a certain topic every week. Or the like.
|
||||
<p>
|
||||
Here are the possibilies you have:
|
||||
<p>
|
||||
You can add a new note through a pipe, another commands output becomes
|
||||
note's input:
|
||||
<br> $ cat /var/spool/news/daily | note -
|
||||
<br> This command adds the content of a file "daily" as a new note. Note the dash.
|
||||
it stands for "Standard Input". Note will be completely silent and it will not
|
||||
ask for something.
|
||||
<p>
|
||||
Suppose you are using encryption. You might wonder, how note will get your
|
||||
passphrase? The solution: You need to set up an environment variable which
|
||||
contains the password:
|
||||
<br> $ export NOTE_PASSWD=secret
|
||||
<br> If the variable is present, note will not ask you for a passphrase!
|
||||
<p>
|
||||
Another thingy you might find useful is the -r (--raw) command-line flag. This
|
||||
turns note into raw mode , which means it will only print the
|
||||
data without any formatting. Raw mode is available for list and display,
|
||||
since it makes no sense, interactive mode doe not support raw mode.
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
<a href="#top">top</a><p><p><a name="dbformat">
|
||||
<h4>Format of the notedb (binary backend)</h4>
|
||||
|
||||
The database where the notes are stored is a binary fixed record length file
|
||||
of the following format:
|
||||
It consists of three fixed length fields per entry. The fields
|
||||
have the following types:
|
||||
<ul>
|
||||
<li> Number: Integer (1 byte)
|
||||
<li> Note: String (default 1024 bytes)
|
||||
<li> Time: String (default 64 bytes)
|
||||
</ul>
|
||||
You can change the sizes of the fields "Note" and "Time" in
|
||||
the configfile "~/.noterc". If it does not exist, the above
|
||||
defaults will be used.
|
||||
<br> If the data to be stored is smaller then the size of the field,
|
||||
it will be filled with ZERO's ("\0"). The Note and the Time
|
||||
fields will be uuencoded before storage. Of course, this is
|
||||
no security, never mind...
|
||||
|
||||
<p>
|
||||
|
||||
<a href="#top">top</a><p><p><a name="sqlformat">
|
||||
<h4>The note-database (mysql backend)</h4>
|
||||
|
||||
The sql-database for the mysql version has the following design:
|
||||
<pre>
|
||||
+--------+---------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+--------+---------+------+-----+---------+----------------+
|
||||
| number | int(10) | | PRI | 0 | auto_increment |
|
||||
| note | text | YES | | NULL | |
|
||||
| date | text | YES | | NULL | |
|
||||
+--------+---------+------+-----+---------+----------------+
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
|
||||
<a href="#top">top</a><p><p><a name="dumpformat">
|
||||
<h4>Format of the ASCII-dump file (note -D)</h4>
|
||||
|
||||
The dump of a note-database (if you use note -D) has the following
|
||||
format:
|
||||
<pre>
|
||||
--- snip ---
|
||||
Number: 1
|
||||
Timestamp: 14.01.2000 00:25:01
|
||||
This is a sample text
|
||||
in a sample note.
|
||||
|
||||
Number: 2
|
||||
Timestamp: 14.01.2000 02:37:40
|
||||
And this is another sample
|
||||
of a note.
|
||||
--- snip ---
|
||||
</pre>
|
||||
<p> You can reimport a dump into your note-database with "note -I <file>"
|
||||
Existing notes will not overwritten, note will append the imported
|
||||
data to your note-database.
|
||||
<p>
|
||||
|
||||
|
||||
<a href="#top">top</a><p><p><a name="security">
|
||||
<h4>Security</h4>
|
||||
|
||||
If you are using the MySQL driver, refer to the mysql
|
||||
manual for more informations about security of mysql databases:
|
||||
http://www.mysql.org/Manual_chapter/manual_Privilege_system.html
|
||||
<p>
|
||||
If you are using notes proprietary binary driver, then
|
||||
the permission 0600 of the file "~/.notedb" is strongly required!
|
||||
<p>
|
||||
Additional, you can turn on encryption from the config file.
|
||||
Simply set UseEncryption to 1. Please note, that you need
|
||||
to decide, if you want to use encryption before the first use
|
||||
of note! If have already a note database and want to "migrate"
|
||||
to encryption, I suggest you to follow the directions in the
|
||||
file UPGRADE!
|
||||
<p>
|
||||
You can choose from different encryption algorythms. The default
|
||||
is IDEA, but DES or BLOWFISH is also possible. You need to have
|
||||
installed the following additional perl-modules on your system:
|
||||
<ul>
|
||||
<li> MD5
|
||||
<li> Crypt::IDEA
|
||||
<li> Crypt::DES
|
||||
<li> Crypt::CBC
|
||||
</ul>
|
||||
After turning on encryption, note will ask you for a passphrase
|
||||
everytime it runs! It will *not* store this passphrase!
|
||||
So, don't forget it! Be careful!
|
||||
<p>
|
||||
Once note have encrypted some data using this passphrase, you
|
||||
cannot simply switch to another passphrase, because all data
|
||||
within the database needs to be encrypted using the same passphrase!
|
||||
If you want to change the passphrase for any reason, please read
|
||||
the file UPGRADE and follow it's directions!
|
||||
<br> Someday I will add a "change passwd" function, which will do all
|
||||
these things for you. Someday, I said...
|
||||
For now you can use the "re-initialze database" functionality, mentioned
|
||||
earlier in the "Usage" section (at the end of the section).
|
||||
<p>
|
||||
Note: To make sure, the encrypted data can be stored properly,
|
||||
it will be uuencoded after encryption.
|
||||
<p>
|
||||
Note: *If* you forgot your passphrase and *if* you don't have
|
||||
a backup of your database without encryption, PLEASE
|
||||
don't bother me with "helpme" emails! If you don't know
|
||||
the phrase, then the data can't be decrypted. Even if it
|
||||
is possible - I am not responsible for that!
|
||||
<p>
|
||||
Note: How does note know, if the passphrase was incorrect? It uses the
|
||||
specified phrase and encodes at least one note (the first one)
|
||||
and checks if the decrypted timestamp field matches the following
|
||||
expression: "^\d+\.\d+". Translated from perl to human:
|
||||
the timestamp must begin with minimum one digit (possibly more),
|
||||
followed by one dot, followed by minimum one digit (possibly more).
|
||||
Chances are bad, that a wrong passphrase will cause a timestamp
|
||||
matching the rule above. If you have other experiences, please
|
||||
drop me a mail!
|
||||
1
0x49/contents/version
Normal file
@@ -0,0 +1 @@
|
||||
1.0.8
|
||||
14
0x49/images/CVS/Entries
Normal file
@@ -0,0 +1,14 @@
|
||||
/anybrow.gif/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/button.gif/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/gproc.jpg/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/linux.gif/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/msfree.gif/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/note-be.jpg/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/note-linux.gif/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/note-win32.gif/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/note.jpg/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/note_be_small.png/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/note_linux_small.png/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/note_win32_small.png/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
/notes.png/1.1.1.1/Sat Jul 1 14:40:51 2000//
|
||||
D
|
||||
1
0x49/images/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/0x49/images
|
||||
1
0x49/images/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
BIN
0x49/images/anybrow.gif
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
0x49/images/button.gif
Normal file
|
After Width: | Height: | Size: 948 B |
BIN
0x49/images/gproc.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
0x49/images/linux.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
0x49/images/msfree.gif
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
0x49/images/note-be.jpg
Normal file
|
After Width: | Height: | Size: 222 KiB |
BIN
0x49/images/note-linux.gif
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
0x49/images/note-win32.gif
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
0x49/images/note.jpg
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
0x49/images/note_be_small.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
0x49/images/note_linux_small.png
Normal file
|
After Width: | Height: | Size: 997 B |
BIN
0x49/images/note_win32_small.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
0x49/images/notes.png
Normal file
|
After Width: | Height: | Size: 760 B |
86
0x49/index.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<?
|
||||
# ePerl
|
||||
my $me = $0;
|
||||
$me =~ s(^.*/)();
|
||||
my $src = $me;
|
||||
$src =~ s/\.html$//;
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="description" content="www.0x49.org - the home of the console note program">
|
||||
<meta name="keywords" content="note, notes, notizen, console, perl, textmode, opensource, free">
|
||||
<meta name="author" content="Thomas Linden">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>www.0x49.org - the note homepage (<? print $src ?>)</title>
|
||||
<!--
|
||||
THE CONTENTS OF THESE WEBPAGES ARE PROTECTED BY COPYRIGHT LAW!
|
||||
|
||||
COPYRIGHT (C) 2000 THOMAS LINDEN, MUNICH.
|
||||
ALL RIGHTS RESERVED.
|
||||
-->
|
||||
</head>
|
||||
<body link="#000099" vlink="#000099">
|
||||
<br>
|
||||
<TABLE cellspacing="0" cellpadding="0" width="100%" border="0" bgcolor="cornflowerblue">
|
||||
<TR>
|
||||
<TD>
|
||||
<TABLE cellspacing="2" cellpadding="2" width="100%" border="0" bgcolor="#FFFFFF">
|
||||
<TR BGCOLOR="cornflowerblue" align="center">
|
||||
<TD colspan=2 align=right>
|
||||
<SPAN class=titlebar><font face="helvetica" color="#fffff"><b>note
|
||||
<?
|
||||
# ePerl
|
||||
open VERSION, "contents/version" || die $!;
|
||||
my $version = <VERSION>;
|
||||
close VERSION;
|
||||
chomp $version;
|
||||
print $version;
|
||||
?>
|
||||
homepage</b></font></SPAN>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR align=left>
|
||||
<TD width=15% bgcolor="beige" valign="top">
|
||||
<font face="helvetica" >
|
||||
<?
|
||||
# ePerl
|
||||
open MENU, "contents/menu" || die $!;
|
||||
my @menu = <MENU>;
|
||||
close MENU;
|
||||
foreach (@menu) {
|
||||
if(/\Q$me\E/) {
|
||||
print "<b>$_</b>";
|
||||
}
|
||||
else {
|
||||
print;
|
||||
}
|
||||
}
|
||||
?>
|
||||
</font>
|
||||
<p> </p>
|
||||
</TD>
|
||||
<TD valign="top">
|
||||
<TABLE WIDTH="90%" ALIGN="CENTER" VALIGN="TOP">
|
||||
<TR>
|
||||
<TD>
|
||||
<?
|
||||
# ePerl
|
||||
$src = "contents/$src";
|
||||
open SRC, "$src" || die $!;
|
||||
my @lines = <SRC>;
|
||||
print @lines;
|
||||
close SRC;
|
||||
?>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
</body>
|
||||
</html>
|
||||
12
CVS/Entries
Normal file
@@ -0,0 +1,12 @@
|
||||
/Makefile.PL/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/UPGRADE/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/note/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
/stresstest.sh/1.1.1.1/Sat Jul 1 14:40:50 2000//
|
||||
D/0x49////
|
||||
D/NOTEDB////
|
||||
D/bin////
|
||||
D/config////
|
||||
D/mysql////
|
||||
/Changelog/1.2/Sun Jul 9 22:08:40 2000//
|
||||
/VERSION/1.2/Sun Jul 9 22:10:55 2000//
|
||||
/README/1.2/Sun Jul 9 22:37:00 2000//
|
||||
1
CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE
|
||||
272
Changelog
@@ -1,127 +1,188 @@
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.1.0:
|
||||
CHANGED: does no more use the external touch command to create a new
|
||||
file, use perls open() instead.
|
||||
CHANGED: excluded some of the help texts from the usage message and the
|
||||
interactive help command to a manpage.
|
||||
ADDED: new commandline flag "--encrypt" which one can use to encrypt
|
||||
the mysql database password. This will be decrypted before
|
||||
connecting to the db. There is also a new config file option
|
||||
"encrypt_passwd" which indicates an encrypted db-password.
|
||||
ADDED: another new config option "ShortCd", which can be set to "yes"
|
||||
or 1 and if set, then a command like "cd 13" would jump
|
||||
directly to the topic of the note with the number 13.
|
||||
ADDED: now you can at any time cd back to the "root" of the
|
||||
topic-structure using the command "cd /".
|
||||
CHANGED: mysql.pm does now only do a table-lock on single write
|
||||
accesses, no more on the whole session. This allows one to
|
||||
access the same db twice or more.
|
||||
FIXED: Changed README and Changelog for readability on 80 by 25
|
||||
displays. And changed indentation of the note script itself.
|
||||
ADDED: NOTEDB.pm - a generic module, which holds some methods, which
|
||||
are used by binary.pm, mysql.pm and dbm.pm.
|
||||
ADDED: NOTEDB.pm generate_search(), which allows one to
|
||||
use AND, OR and various combinations of them using ( and ).
|
||||
ADDED: a search does now return the 2nd line of a note if a matching
|
||||
note's first line is a topic.
|
||||
CHANGED: use "unshift" instead of push to add $libpath to @INC.
|
||||
ADDED: a new feature, Caching of notes. supported by binary.pm and
|
||||
mysql.pm. To turn it on, one need to set "Cache" in the config
|
||||
to a true value.
|
||||
|
||||
================================================================================
|
||||
|
||||
1.0.9: jumped directly to 1.1.0, too many additions.
|
||||
|
||||
================================================================================
|
||||
|
||||
1.0.8:
|
||||
FIXED: typo in noterc shipped with package may caused confusion
|
||||
(BLOWFISH instead of Blowfish).
|
||||
CHANGED: changed the way note manages temporary filez. It uses now a
|
||||
random string instead of just it's own PID. It does also change
|
||||
it's umask to 077 and, if applicable (on ext2 filesystems)
|
||||
issues "chattr +s" which will cause the ext2 inodes to be
|
||||
zero'd after file deletion.
|
||||
ADDED: A new config option allows the user to specify her own
|
||||
temp-directory. The default is still /tmp.
|
||||
|
||||
================================================================================
|
||||
|
||||
1.0.7:
|
||||
FIXED: there was a bug in the search expression, use now \Q and \E.
|
||||
ADDED: --config <file> allows one to use another config than the default.
|
||||
ADDED: --config <file> allows one to use another config than the
|
||||
default.
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.0.6:
|
||||
FIXED: there were some odd bugs in commandline parsing, some options were unavailable.
|
||||
FIXED: there were some odd bugs in commandline parsing, some options
|
||||
were unavailable.
|
||||
FIXED: Forgot "PreferredEditor" config-option in the new config format.
|
||||
FIXED: the interactive "cd .." command has ignored the presence of a
|
||||
"DefaultLong" setting(and search too)... thx to Peter.
|
||||
CHANGED: Optimized a little bit the output routine, now it is better to read.
|
||||
ADDED: sub format and appropriate config-option for text formatting capabilities.
|
||||
CHANGED: changed getconfig regexp, which allows now also to use Option = Param.
|
||||
FIXED: was not possible to override config-options, which are set by default to
|
||||
something.
|
||||
ADDED: note chacks now, if a database os actually really encrypted and exits with
|
||||
an error if it s and the user turned off encryption. This protects her from
|
||||
destroying it's own database ..
|
||||
CHANGED: Optimized a little bit the output routine, now it is better to
|
||||
read.
|
||||
ADDED: sub format and appropriate config-option for text formatting
|
||||
capabilities.
|
||||
CHANGED: changed getconfig regexp, which allows now also to use
|
||||
Option = Param.
|
||||
FIXED: was not possible to override config-options, which are set by
|
||||
default to something.
|
||||
ADDED: note checks now, if a database os actually really encrypted and
|
||||
exits with an error if it s and the user turned off encryption.
|
||||
This protects her from destroying it's own database ..
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.0.5:
|
||||
FIXED: the T (and t respectively) printed nothing out since 1.0.3! It does
|
||||
it now again...
|
||||
ADDED: a new database backend added, NOTEDB::dbm, which uses DBM files for
|
||||
storage.
|
||||
FIXED: the T (and t respectively) printed nothing out since 1.0.3!
|
||||
It does it now again...
|
||||
ADDED: a new database backend added, NOTEDB::dbm, which uses DBM
|
||||
files for storage.
|
||||
FIXED: &display-tree returns now, if there is no note, otherwise it
|
||||
would die because of an undefined refernce.
|
||||
CHANGED: Changed the config file format completely. It is now no more a perl
|
||||
file, instead it is a simple plain text file which note parses.
|
||||
CHANGED: Changed the way, note loads it database backend. It uses now the
|
||||
$dbdriver variable as module-name, which makes it possible easily
|
||||
to write your own backend without the need to change note itself.
|
||||
CHANGED: Changed the config file format completely. It is now no more
|
||||
a perl file, instead it is a simple plain text file which note
|
||||
parses.
|
||||
CHANGED: Changed the way, note loads it database backend. It uses now
|
||||
the $dbdriver variable as module-name, which makes it possible
|
||||
easily to write your own backend without the need to change
|
||||
note itself.
|
||||
FIXED: Removed Getopt::Long option "bundling", causes errors with perl
|
||||
5.6.0 and is not senceful.
|
||||
FIXED: Added the Getopt::Long option "no_ignore_case". In 1.0.4 options
|
||||
were case insensitive causing -i to be interpreted as --import
|
||||
instead of --interactive ;-(((
|
||||
ADDED: a new config option $DEFAULT_LIST, which causes note, \
|
||||
if turned to "LONG", to use long-listing as default. |
|
||||
But it will still be able to use short-listing if you |
|
||||
explicit specify that. | submitted by
|
||||
FIXED: sub search prints now an appropriate error-message in |==> Peter Palmreuther
|
||||
case no searchstring was given instead of jumping to | thanks a lot!
|
||||
usage. |
|
||||
CHANGED: Changed the text in the interactive help to reflect |
|
||||
changes of verion 1.0.3 (t and T). /
|
||||
|
||||
==================================================================================
|
||||
Thanks to Peter Palmreuter for the following fixed/additions:
|
||||
ADDED: a new config option $DEFAULT_LIST, which causes note,
|
||||
if turned to "LONG", to use long-listing as default.
|
||||
But it will still be able to use short-listing if you
|
||||
explicit specify that.
|
||||
FIXED: sub search prints now an appropriate error-message in
|
||||
case no searchstring was given instead of jumping to
|
||||
usage.
|
||||
CHANGED: Changed the text in the interactive help to reflect
|
||||
changes of verion 1.0.3 (t and T).
|
||||
|
||||
================================================================================
|
||||
|
||||
1.0.4:
|
||||
CHANGED: Moved from @ARGV-parsing to Getopt::Long, adding options is now
|
||||
much easier and I do now understand my own code ;-)
|
||||
ADDED: --raw, the "Raw Mode", which turns off any formatting of output.
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.0.3:
|
||||
ADDED: "-" works also for --dump, but in the other direction. It causes
|
||||
note to dump to standard output instead into a file.
|
||||
ADDED: you can specify - as filename for use with --import and if you want
|
||||
to create a new note. "-" stands for standardinput and it allows you
|
||||
tp pipe another commands output to note!
|
||||
ADDED: you can now use an environment variable for the passphrase (when using
|
||||
encryption). If it is presen, note will not ask for a passphrase. This
|
||||
is very usefull in comination with the addition above, for use in
|
||||
scripts.
|
||||
ADDED: you can specify - as filename for use with --import and if you
|
||||
want to create a new note. "-" stands for standardinput and
|
||||
it allows you to pipe another commands output to note!
|
||||
ADDED: you can now use an environment variable for the passphrase
|
||||
(when using encryption). If it is present, note will not ask
|
||||
for a passphrase. This is very useful in comination with the
|
||||
addition above, for use in scripts.
|
||||
CHANGED: the interactive help screen is now coloured.
|
||||
ADDED: -o commandline switch, which causes note to overwrite an existing
|
||||
database when importing data from a previous dump. Very handy if
|
||||
you want to re-initialize your db, i.e. if you changed the format.
|
||||
ADDED: the long-tree-view (-T) displays now also the note-number of each
|
||||
note.
|
||||
ADDED: -o commandline switch, which causes note to overwrite an
|
||||
existing database when importing data from a previous dump.
|
||||
Very handy if you want to re-initialize your db, i.e. if you
|
||||
changed the format.
|
||||
ADDED: the long-tree-view (-T) displays now also the note-number of
|
||||
each note.
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.0.2:
|
||||
ADDED: Topic-Tree overview command (-t or -T).
|
||||
ADDED: Enhanced list command in interactive mode, you can now specify
|
||||
a topic which notes you want to see.
|
||||
CHANGED: updated the help and usage sections to reflect the additions above.
|
||||
CHANGED: updated the help and usage sections to reflect the additions
|
||||
above.
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.0.1:
|
||||
FIXED: fixed bug in NOTEDB::mysql, which caused note t store NULL values
|
||||
in db, if encryption was off. A really dump failure :-(
|
||||
FIXED: fixed bug in NOTEDB::mysql, which caused note to store NULL
|
||||
values in db, if encryption was off. A really dump failure :-(
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
1.0.0:
|
||||
CHANGED: removed install.sh. use now a Makefile for installation.
|
||||
ADDED: Encryption support. Note can now encrypt notes using IDEA
|
||||
or DES as encryption-protocols(symetric).
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
0.9:
|
||||
FIXED: There were many new bugs after my last changes *grrrrr*. fixed.
|
||||
Works now properly, with both backends!
|
||||
FIXED: and another bug: recounting of numbers did not take care about
|
||||
the existing order! If you deleted note #12, then note #13 became
|
||||
not neccessarily #12! Instead it becames any other number (kind of
|
||||
randomly...).
|
||||
the existing order! If you deleted note #12, then note #13
|
||||
became not neccessarily #12! Instead it becames any other
|
||||
number (kind of randomly...).
|
||||
CHANGED: NOTEDB::binary set_del function changed, it does no more require
|
||||
a temporary file for number recount. Instead it uses get_all and
|
||||
stores all notes in RAM and then rewrites the database.
|
||||
FIXED: fixed the set_new call within note. It used 0 as the first param
|
||||
(number) which is not useful since we dont have support for auto-
|
||||
increment from all database backends.
|
||||
(number) which is not useful since we dont have support for
|
||||
autoincrement from all database backends.
|
||||
FIXED: fixed the function set_recountnum in NITEDB::mysql, it was also
|
||||
incorrect :-((( 0.8 seemed to be a very bad early alpha...........
|
||||
FIXED: there was a bug in NOTEDB::binary which caused not to recount note
|
||||
numbers after deleting one :-(
|
||||
incorrect :-((( 0.8 seemed to be a very bad early alpha...
|
||||
FIXED: there was a bug in NOTEDB::binary which caused not to recount
|
||||
note numbers after deleting one :-(
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
0.8:
|
||||
ADDED: NOTEDB::binary. so now 0.8 is ready for shipping !
|
||||
FIXED: regexp bug fixed. It was only possible to delete 2 items together
|
||||
FIXED: regexp bug fixed. It was only possible to delete 2 items
|
||||
together
|
||||
separated by comma ("d 1,2,3,4" deleted only 1,2!).
|
||||
ADDED: Some new config options which reflects the new module structure.
|
||||
So you can change your database backend without the need to
|
||||
@@ -135,40 +196,42 @@ ADDED: NOTEDB::mysql added. Perlmodule, which I will use within
|
||||
CHANGED: The SQL code does not use Mysql.pm anymore. Instead it is coded
|
||||
using the more portable DBI module. This allows one easily to
|
||||
switch to anther database, which is supported by DBI.
|
||||
CHANGED: Locking. The db-table will now be locked before note accesses it.
|
||||
FIXED: width of listings is now always the same independent of the string-
|
||||
length of a certain note.
|
||||
CHANGED: Locking. The db-table will now be locked before note accesses
|
||||
it.
|
||||
FIXED: width of listings is now always the same independent of the
|
||||
stringlength of a certain note.
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
0.7:
|
||||
ADDED: one can now use the unix-like "cd" command to change to another
|
||||
topic, thus use "cd topicname" instead just typing "topicname"!
|
||||
FIXED: there was a smal regex bug which maked it impossible to use such
|
||||
topics: "4 test", in such a case note just displayed note number 4
|
||||
instead of cd'ing to topic "4 test".
|
||||
FIXED: there was a smal regex bug which maked it impossible to use
|
||||
such topics: "4 test", in such a case note just displayed note
|
||||
number 4 instead of cd'ing to topic "4 test".
|
||||
ADDED: a new config option "$KEEP_TIMESTAMP" allows a user to disable
|
||||
note's default behavior of updating the timestamp of a note after
|
||||
editing it.
|
||||
note's default behavior of updating the timestamp of a note
|
||||
after editing it.
|
||||
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
0.6:
|
||||
FIXED: oops - the new suptopic feature confused the commandline-mode of
|
||||
note! quickly corrected! so subtopics also available from command-
|
||||
line.
|
||||
FIXED: a small bug fiyed, it was impossible to use -D or -I from command-
|
||||
line, if $ALWAYS_INT was turned on, now it is.
|
||||
note! quickly corrected! so subtopics also available from
|
||||
commandline.
|
||||
FIXED: a small bug fiyed, it was impossible to use -D or -I from
|
||||
commandline, if $ALWAYS_INT was turned on, now it is.
|
||||
FIXED: fixed problem with local/global variable $time, which confused
|
||||
the script under certain circumstances, now $time is no more global,
|
||||
it will be read in (using &getdate) locally by &new and &edit.
|
||||
the script under certain circumstances, now $time is no more
|
||||
global, it will be read in (using &getdate) locally by &new
|
||||
and &edit.
|
||||
CHANGED: The Topic separator is no longer hardcoded, one can customize
|
||||
it using the $TopicSep variable, the default is now /, the backslash
|
||||
will no mor work!
|
||||
it using the $TopicSep variable, the default is now /, the
|
||||
backslash will no more work!
|
||||
CHANGED: use perl buildin localtime() function instead of
|
||||
GNU date, which is possibly not installed on every target
|
||||
system (i.e. win32), therefore better portability!
|
||||
@@ -186,7 +249,7 @@ FIXED: A bug at line 769 causing single note where smaller than note-
|
||||
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
|
||||
@@ -198,47 +261,53 @@ FIXED: There was another bug, which caused the list command to display
|
||||
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
|
||||
0.4.2:
|
||||
ADDED: If run in interactive mode, note will at first do a list command.
|
||||
ADDED: If run in interactive mode, note will at first do a list
|
||||
command.
|
||||
FIXED: A bug caused note to save bogus timestamps after editing a note.
|
||||
CHANGED: It does no more print 3 newlines before the menu in interactive mode.
|
||||
FIXED: Some more vars will be resetted during each loop in interactive mode.
|
||||
$ListType.
|
||||
CHANGED: It does no more print 3 newlines before the menu in interactive
|
||||
mode.
|
||||
FIXED: Some more vars will be resetted during each loop in interactive
|
||||
mode. $ListType.
|
||||
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
|
||||
0.4.1:
|
||||
ADDED: The install.sh script for the mysql version is no able to install the
|
||||
required Mysql module directly from CPAN, thanks to David A. Bandel!
|
||||
FIXED: The mysql version did not display notes (i.e.: "note 3" did nothing)
|
||||
CHANGED: Again, the sql-format of the mysql database has been changed. Now
|
||||
there are only 3 fields, the number filed is the primary key, the id
|
||||
field in previous versions was a waste of diskspace...
|
||||
ADDED: The install.sh script for the mysql version is no able to
|
||||
install the required Mysql module directly from CPAN, thanks
|
||||
to David A. Bandel!
|
||||
FIXED: The mysql version did not display notes (i.e.: "note 3" did
|
||||
nothing)
|
||||
CHANGED: Again, the sql-format of the mysql database has been changed.
|
||||
Now there are only 3 fields, the number filed is the primary
|
||||
key, the id field in previous versions was a waste of
|
||||
diskspace...
|
||||
CHANGED: The format of the dump-output has been changed.
|
||||
ADDED: It is now possible to import previously dumped notes into the notedb
|
||||
ADDED: It is now possible to import previously dumped notes into the
|
||||
notedb
|
||||
(dumps from both versions are compatible with each other)
|
||||
FIXED: the function num_bereich() had a bug, which caused ot to ignore under
|
||||
some circumstances one number (i.e. "note -d 4-13" did nothing).
|
||||
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
|
||||
0.4:
|
||||
CHANGED: ok, mysql support is back again (upon requests). therefore there
|
||||
are two different version of the script in the same time with
|
||||
the same features, one for mysql and the other one for the binary
|
||||
database.
|
||||
the same features, one for mysql and the other one for the
|
||||
binary database.
|
||||
ADDED: Dump to textfile capability. Later on I want to dump it into a
|
||||
palm readable format, any help is welcome!
|
||||
ADDED: interactive mode.
|
||||
@@ -250,17 +319,18 @@ ADDED: sub num_bereich(), which allows one to specify more then one
|
||||
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
|
||||
0.3:
|
||||
CHANGED: it uses no more a mysql database, but a binary file instead.
|
||||
This is much faster!
|
||||
ADDED: note can display the notes with colors, it is turned off by default
|
||||
ADDED: note can display the notes with colors, it is turned off by
|
||||
default
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
|
||||
0.2:
|
||||
@@ -271,7 +341,7 @@ FIXED: now numbers of notes will be recounted, if one delete one note,
|
||||
CHANGED: the look of the list output has been changed, similar to a table
|
||||
|
||||
|
||||
==================================================================================
|
||||
================================================================================
|
||||
|
||||
0.1:
|
||||
INITIAL RELEASE.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# NOTEDB::mysql and NOTEDB::binary are internals
|
||||
# of note.
|
||||
#
|
||||
# $Id: Makefile.PL,v 1.1 2000/04/17 17:38:49 thomas Exp thomas $
|
||||
# $Id: Makefile.PL,v 1.1.1.1 2000/07/01 14:40:50 zarahg Exp $
|
||||
#
|
||||
# check for the existence of optional modules:
|
||||
sub chk_mod
|
||||
@@ -86,17 +86,22 @@ $install = `which install`;
|
||||
|
||||
open M, "> Makefile" || die $!;
|
||||
print M qq~BIN = bin/note
|
||||
MAN = note.1
|
||||
LIBS = NOTEDB/mysql.pm NOTEDB/binary.pm NOTEDB/dbm.pm
|
||||
CORE = NOTEDB.pm
|
||||
INSTBIN = $BINDIR
|
||||
INSTLIB = $LIBDIR
|
||||
INSTMAN = /usr/man/man1
|
||||
INSTALL = $install
|
||||
all:
|
||||
\@echo "done. Type make install.\\n"
|
||||
|
||||
install:
|
||||
\$(INSTALL) -m 755 \$(CORE) \$(INSTLIB)
|
||||
\$(INSTALL) -d -m 755 \$(INSTLIB)/NOTEDB
|
||||
\$(INSTALL) -m 755 \$(LIBS) \$(INSTLIB)/NOTEDB
|
||||
\$(INSTALL) -m 755 \$(BIN) \$(INSTBIN)
|
||||
\$(INSTALL) -m 644 \$(MAN) \$(INSTMAN)
|
||||
~;
|
||||
|
||||
print "Type \"make install\" to install all files.\n\n";
|
||||
|
||||
213
NOTEDB.pm
Normal file
@@ -0,0 +1,213 @@
|
||||
#
|
||||
# this is a generic module, used by note database
|
||||
# backend modules.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Copyright (c) 2000 Thomas Linden <tom@daemon.de>
|
||||
|
||||
|
||||
package NOTEDB;
|
||||
|
||||
BEGIN {
|
||||
# make sure, it works, otherwise encryption
|
||||
# is not supported on this system!
|
||||
eval { require Crypt::CBC; };
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
else {
|
||||
$NOTEDB::crypt_supported = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub no_crypt {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
|
||||
|
||||
sub use_crypt {
|
||||
my($this,$key,$method) = @_;
|
||||
if($NOTEDB::crypt_supported == 1) {
|
||||
eval {
|
||||
$cipher = new Crypt::CBC($key, $method);
|
||||
};
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported == 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
print "warning: Crypt::CBC not supported by system!\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub use_cache {
|
||||
#
|
||||
# this sub turns on cache support
|
||||
#
|
||||
my $this = shift;
|
||||
$this->{use_cache} = 1;
|
||||
$this->{changed} = 1;
|
||||
}
|
||||
|
||||
sub cache {
|
||||
#
|
||||
# store the whole db as hash
|
||||
# if use_cache is turned on
|
||||
#
|
||||
my $this = shift;
|
||||
if ($this->{use_cache}) {
|
||||
my %res = @_;
|
||||
%{$this->{cache}} = %res;
|
||||
}
|
||||
}
|
||||
|
||||
sub unchanged {
|
||||
#
|
||||
# return true if $this->{changed} is true, this will
|
||||
# be set to true by writing subs using $this->changed().
|
||||
#
|
||||
my $this = shift;
|
||||
return 0 if(!$this->{use_cache});
|
||||
if ($this->{changed}) {
|
||||
$this->{changed} = 0;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
print "%\n";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub changed {
|
||||
#
|
||||
# turn on $this->{changed}
|
||||
# this will be used by update or create subs.
|
||||
#
|
||||
my $this = shift;
|
||||
$this->{changed} = 1;
|
||||
}
|
||||
|
||||
|
||||
sub generate_search {
|
||||
#
|
||||
# get user input and create perlcode ready for eval
|
||||
# sample input:
|
||||
# "ann.a OR eg???on AND u*do$"
|
||||
# resulting output:
|
||||
# "$match = 1 if(/ann\.a/i or /eg...on/i and /u.*do\$/i );
|
||||
#
|
||||
my($this, $string) = @_;
|
||||
|
||||
my $case = "i";
|
||||
|
||||
if ($string =~ /^\/.+?\/$/) {
|
||||
return $string;
|
||||
}
|
||||
elsif (!$string) {
|
||||
return "/^/";
|
||||
}
|
||||
|
||||
# we will get a / in front of the first word too!
|
||||
$string = " " . $string . " ";
|
||||
|
||||
# check for apostrophs
|
||||
$string =~ s/(?<=\s)(\(??)("[^"]+"|\S+)(\)??)(?=\s)/$1 . $this->check_exact($2) . $3/ge;
|
||||
|
||||
# remove odd spaces infront of and after <20>and<6E> and <20>or<6F>
|
||||
$string =~ s/\s\s*(AND|OR)\s\s*/ $1 /g;
|
||||
|
||||
# remove odd spaces infront of <20>(<28> and after <20>)<29>
|
||||
$string =~ s/(\s*\()/\(/g;
|
||||
$string =~ s/(\)\s*)/\)/g;
|
||||
|
||||
# remove first and last space so it will not masked!
|
||||
$string =~ s/^\s//;
|
||||
$string =~ s/\s$//;
|
||||
|
||||
# mask spaces if not infront of or after <20>and<6E> and <20>or<6F>
|
||||
$string =~ s/(?<!AND)(?<!OR)(\s+?)(?!AND|OR)/'\s' x length($1)/ge;
|
||||
|
||||
# add first space again
|
||||
$string = " " . $string;
|
||||
|
||||
# lowercase AND and OR
|
||||
$string =~ s/(\s??OR\s??|\s??AND\s??)/\L$1\E/g;
|
||||
|
||||
# surround brackets with at least one space
|
||||
$string =~ s/(?<!\\)(\)|\()/ $1 /g;
|
||||
|
||||
# surround strings with slashes
|
||||
$string =~ s/(?<=\s)(\S+)/ $this->check_or($1, $case) /ge;
|
||||
|
||||
# remove slashes on <20>and<6E> and <20>or<6F>
|
||||
$string =~ s/\/(and|or)\/$case/$1/g;
|
||||
|
||||
# remove spaces inside /string/ constructs
|
||||
$string =~ s/(?<!and)(?<!or)\s*\//\//g;
|
||||
|
||||
$string =~ s/\/\s*(?!and|or)/\//g;
|
||||
|
||||
return qq(\$match = 1 if($string););
|
||||
}
|
||||
|
||||
sub check_or {
|
||||
#
|
||||
# surrounds string with slashes if it is not
|
||||
# <20>and<6E> or <20>or<6F>
|
||||
#
|
||||
my($this, $str, $case) = @_;
|
||||
if ($str =~ /^\s*(or|and)\s*$/) {
|
||||
return " $str ";
|
||||
}
|
||||
elsif ($str =~ /(?<!\\)[)(]/) {
|
||||
return $str;
|
||||
}
|
||||
else {
|
||||
return " \/$str\/$case ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub check_exact {
|
||||
#
|
||||
# helper for generate_search()
|
||||
# masks special chars if string
|
||||
# not inside ""
|
||||
#
|
||||
my($this, $str) = @_;
|
||||
|
||||
my %globs = (
|
||||
'*' => '.*',
|
||||
'?' => '.',
|
||||
'[' => '[',
|
||||
']' => ']',
|
||||
'+' => '\+',
|
||||
'.' => '\.',
|
||||
'$' => '\$',
|
||||
'@' => '\@',
|
||||
);
|
||||
|
||||
# mask backslash
|
||||
$str =~ s/\\/\\\\/g;
|
||||
|
||||
if ($str =~ /^"/ && $str =~ /"$/) {
|
||||
# mask bracket-constructs
|
||||
$str =~ s/(\(|\))/\\$1/g;
|
||||
}
|
||||
$str =~ s/(.)/$globs{$1} || "$1"/ge;
|
||||
|
||||
$str =~ s/^"//;
|
||||
$str =~ s/"$//;
|
||||
|
||||
# mask spaces
|
||||
$str =~ s/\s/\\s/g;
|
||||
return $str;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
5
NOTEDB/CVS/Entries
Normal file
@@ -0,0 +1,5 @@
|
||||
/README/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/binary.pm/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/dbm.pm/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/mysql.pm/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
D
|
||||
1
NOTEDB/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/NOTEDB
|
||||
1
NOTEDB/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
100
NOTEDB/binary.pm
@@ -1,25 +1,18 @@
|
||||
#!/usr/bin/perl
|
||||
# $Id: binary.pm,v 1.6 2000/06/25 19:48:00 scip Exp scip $
|
||||
# $Id: binary.pm,v 1.1.1.1 2000/07/01 14:40:52 zarahg Exp $
|
||||
# Perl module for note
|
||||
# binary database backend. see docu: perldoc NOTEDB::binary
|
||||
#
|
||||
package NOTEDB;
|
||||
|
||||
use strict;
|
||||
use Data::Dumper;
|
||||
use IO::Seekable;
|
||||
|
||||
package NOTEDB;
|
||||
use NOTEDB;
|
||||
|
||||
use Fcntl qw(LOCK_EX LOCK_UN);
|
||||
BEGIN {
|
||||
# make sure, it works, although encryption
|
||||
# not supported on this system!
|
||||
eval { require Crypt::CBC; };
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
else {
|
||||
$NOTEDB::crypt_supported = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Globals:
|
||||
my ($NOTEDB, $sizeof, $typedef,$version);
|
||||
@@ -48,12 +41,12 @@ sub new
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
my $TYPEDEF = "i a$MAX_NOTE a$MAX_TIME";
|
||||
my $SIZEOF = length pack($TYPEDEF, () );
|
||||
|
||||
$sizeof = $SIZEOF;
|
||||
$typedef = $TYPEDEF;
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
@@ -67,24 +60,7 @@ sub version {
|
||||
return $version;
|
||||
}
|
||||
|
||||
sub no_crypt {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
|
||||
sub use_crypt {
|
||||
my($this,$key,$method) = @_;
|
||||
if($NOTEDB::crypt_supported == 1) {
|
||||
eval {
|
||||
$cipher = new Crypt::CBC($key, $method);
|
||||
};
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported == 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
print "warning: Crypt::CBC not supported by system!\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub set_del_all
|
||||
{
|
||||
@@ -94,8 +70,7 @@ sub set_del_all
|
||||
}
|
||||
|
||||
|
||||
sub get_single
|
||||
{
|
||||
sub get_single {
|
||||
my($this, $num) = @_;
|
||||
my($address, $note, $date, $buffer, $n, $t, $buffer, );
|
||||
|
||||
@@ -119,8 +94,12 @@ sub get_single
|
||||
|
||||
sub get_all
|
||||
{
|
||||
my($this, $num, $note, $date, %res);
|
||||
my $this = shift;
|
||||
my($num, $note, $date, %res);
|
||||
|
||||
if ($this->unchanged) {
|
||||
return %{$this->{cache}};
|
||||
}
|
||||
open NOTE, "+<$NOTEDB" or die "could not open $NOTEDB\n";
|
||||
flock NOTE, LOCK_EX;
|
||||
my($buffer, $t, $n);
|
||||
@@ -135,14 +114,23 @@ sub get_all
|
||||
flock NOTE, LOCK_UN;
|
||||
close NOTE;
|
||||
|
||||
$this->cache(%res);
|
||||
return %res;
|
||||
}
|
||||
|
||||
|
||||
sub get_nextnum
|
||||
{
|
||||
my($this, $num, $te, $me, $buffer);
|
||||
my $this = shift;
|
||||
my($num, $te, $me, $buffer);
|
||||
|
||||
if ($this->unchanged) {
|
||||
$num = 1;
|
||||
foreach (keys %{$this->{cache}}) {
|
||||
$num++;
|
||||
}
|
||||
return $num;
|
||||
}
|
||||
open NOTE, "+<$NOTEDB" or die "could not open $NOTEDB\n";
|
||||
flock NOTE, LOCK_EX;
|
||||
|
||||
@@ -160,7 +148,28 @@ sub get_nextnum
|
||||
sub get_search
|
||||
{
|
||||
my($this, $searchstring) = @_;
|
||||
my($buffer, $num, $note, $date, %res, $t, $n);
|
||||
my($buffer, $num, $note, $date, %res, $t, $n, $match);
|
||||
|
||||
my $regex = $this->generate_search($searchstring);
|
||||
eval $regex;
|
||||
if ($@) {
|
||||
print "invalid expression: \"$searchstring\"!\n";
|
||||
return;
|
||||
}
|
||||
$match = 0;
|
||||
|
||||
if ($this->unchanged) {
|
||||
foreach my $num (keys %{$this->{cache}}) {
|
||||
$_ = $this->{cache}{$num}->{note};
|
||||
eval $regex;
|
||||
if ($match) {
|
||||
$res{$num}->{note} = $this->{cache}{$num}->{note};
|
||||
$res{$num}->{date} = $this->{cache}{$num}->{date}
|
||||
}
|
||||
$match = 0;
|
||||
}
|
||||
return %res;
|
||||
}
|
||||
|
||||
open NOTE, "+<$NOTEDB" or die "could not open $NOTEDB\n";
|
||||
flock NOTE, LOCK_EX;
|
||||
@@ -171,11 +180,14 @@ sub get_search
|
||||
($num, $note, $date) = unpack($typedef, $buffer);
|
||||
$n = ude($note);
|
||||
$t = ude($date);
|
||||
if($n =~ /\Q$searchstring\E/i)
|
||||
$_ = $n;
|
||||
eval $regex;
|
||||
if($match)
|
||||
{
|
||||
$res{$num}->{'note'} = $n;
|
||||
$res{$num}->{'date'} = $t;
|
||||
}
|
||||
$match = 0;
|
||||
}
|
||||
flock NOTE, LOCK_UN;
|
||||
close NOTE;
|
||||
@@ -203,6 +215,8 @@ sub set_edit
|
||||
|
||||
flock NOTE, LOCK_UN;
|
||||
close NOTE;
|
||||
|
||||
$this->changed;
|
||||
}
|
||||
|
||||
|
||||
@@ -220,6 +234,8 @@ sub set_new
|
||||
|
||||
flock NOTE, LOCK_UN;
|
||||
close NOTE;
|
||||
|
||||
$this->changed;
|
||||
}
|
||||
|
||||
|
||||
@@ -249,6 +265,9 @@ sub set_del
|
||||
}
|
||||
flock NOTE, LOCK_UN;
|
||||
close NOTE;
|
||||
|
||||
$this->changed;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -274,6 +293,9 @@ sub set_recountnums
|
||||
}
|
||||
flock NOTE, LOCK_UN;
|
||||
close NOTE;
|
||||
|
||||
$this->changed;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -306,6 +328,10 @@ sub ude
|
||||
return $T;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1; # keep this!
|
||||
|
||||
__END__
|
||||
|
||||
@@ -1,25 +1,15 @@
|
||||
#!/usr/bin/perl
|
||||
# $Id: dbm.pm,v 1.2 2000/06/25 19:51:11 scip Exp scip $
|
||||
# $Id: dbm.pm,v 1.1.1.1 2000/07/01 14:40:52 zarahg Exp $
|
||||
# Perl module for note
|
||||
# DBM database backend. see docu: perldoc NOTEDB::dbm
|
||||
#
|
||||
|
||||
use DB_File;
|
||||
#use Data::Dumper;
|
||||
use NOTEDB;
|
||||
use strict;
|
||||
package NOTEDB;
|
||||
|
||||
BEGIN {
|
||||
# make sure, it works, although encryption
|
||||
# not supported on this system!
|
||||
eval { require Crypt::CBC; };
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
else {
|
||||
$NOTEDB::crypt_supported = 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Globals:
|
||||
my ($dbm_dir, $notefile, $timefile, $version, $cipher, %note, %date);
|
||||
@@ -52,25 +42,6 @@ sub version {
|
||||
return $version;
|
||||
}
|
||||
|
||||
sub no_crypt {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
|
||||
sub use_crypt {
|
||||
my($this, $key, $method) = @_;
|
||||
if($NOTEDB::crypt_supported == 1) {
|
||||
eval {
|
||||
$cipher = new Crypt::CBC($key, $method);
|
||||
};
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported == 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
print "warning: Crypt::CBC not supported by system!\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub get_single
|
||||
{
|
||||
@@ -104,13 +75,23 @@ sub get_nextnum
|
||||
sub get_search
|
||||
{
|
||||
my($this, $searchstring) = @_;
|
||||
my($num, $note, $date, %res);
|
||||
my($num, $note, $date, %res, $match);
|
||||
|
||||
my $regex = $this->generate_search($searchstring);
|
||||
eval $regex;
|
||||
if ($@) {
|
||||
print "invalid expression: \"$searchstring\"!\n";
|
||||
return;
|
||||
}
|
||||
$match = 0;
|
||||
foreach $num (sort {$a <=> $b} keys %date) {
|
||||
if (ude($note{$num}) =~ /\Q$searchstring\E/i) {
|
||||
$_ = ude($note{$num});
|
||||
eval $regex;
|
||||
if ($match) {
|
||||
$res{$num}->{'note'} = ude($note{$num});
|
||||
$res{$num}->{'date'} = ude($date{$num});
|
||||
}
|
||||
$match = 0;
|
||||
}
|
||||
|
||||
return %res;
|
||||
@@ -196,6 +177,8 @@ sub ude
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
1; # keep this!
|
||||
|
||||
__END__
|
||||
|
||||
151
NOTEDB/mysql.pm
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/perl
|
||||
# $Id: mysql.pm,v 1.5 2000/06/25 19:50:43 scip Exp scip $
|
||||
# $Id: mysql.pm,v 1.1.1.1 2000/07/01 14:40:52 zarahg Exp $
|
||||
# Perl module for note
|
||||
# mysql database backend. see docu: perldoc NOTEDB::binary
|
||||
#
|
||||
@@ -7,21 +7,10 @@
|
||||
use DBI;
|
||||
use strict;
|
||||
use Data::Dumper;
|
||||
use NOTEDB;
|
||||
|
||||
package NOTEDB;
|
||||
|
||||
BEGIN {
|
||||
# make sure, it works, although encryption
|
||||
# not supported on this system!
|
||||
eval { require Crypt::CBC; };
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
else {
|
||||
$NOTEDB::crypt_supported = 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Globals:
|
||||
my ($DB, $table, $fnum, $fnote, $fdate, $version, $cipher);
|
||||
$table = "note";
|
||||
@@ -35,7 +24,6 @@ my $sql_getsingle = "SELECT $fnote,$fdate FROM $table WHERE $fnum = ?";
|
||||
my $sql_all = "SELECT $fnum,$fnote,$fdate FROM $table";
|
||||
my $sql_nextnum = "SELECT max($fnum) FROM $table";
|
||||
my $sql_incrnum = "SELECT $fnum FROM $table ORDER BY $fnum";
|
||||
my $sql_search = "SELECT DISTINCT $fnum,$fnote,$fdate FROM $table WHERE $fnote LIKE ?";
|
||||
|
||||
my $sql_setnum = "UPDATE $table SET $fnum = ? WHERE $fnum = ?";
|
||||
my $sql_edit = "UPDATE $table SET $fnote = ?, $fdate = ? WHERE $fnum = ?";
|
||||
@@ -57,11 +45,6 @@ sub new
|
||||
my $database = "DBI:$dbdriver:$dbname;host=$dbhost";
|
||||
|
||||
$DB = DBI->connect($database, $dbuser, $dbpasswd) || die DBI->errstr();
|
||||
|
||||
# LOCK the database!
|
||||
my $lock = $DB->prepare("LOCK TABLES $table WRITE") || die $DB->errstr();
|
||||
$lock->execute() || die $DB->errstr();
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
@@ -69,37 +52,33 @@ sub new
|
||||
sub DESTROY
|
||||
{
|
||||
# clean the desk!
|
||||
my $unlock = $DB->prepare("UNLOCK TABLES") || die $DB->errstr;
|
||||
$unlock->execute() || die $DB->errstr();
|
||||
$DB->disconnect || die $DB->errstr;
|
||||
}
|
||||
|
||||
|
||||
sub lock {
|
||||
my($this) = @_;
|
||||
# LOCK the database!
|
||||
my $lock = $DB->prepare("LOCK TABLES $table WRITE") || die $DB->errstr();
|
||||
$lock->execute() || die $DB->errstr();
|
||||
}
|
||||
|
||||
|
||||
sub unlock {
|
||||
my($this) = @_;
|
||||
my $unlock = $DB->prepare("UNLOCK TABLES") || die $DB->errstr;
|
||||
$unlock->execute() || die $DB->errstr();
|
||||
$DB->disconnect || die $DB->errstr;
|
||||
}
|
||||
|
||||
|
||||
sub version {
|
||||
return $version;
|
||||
}
|
||||
|
||||
sub no_crypt {
|
||||
$NOTEDB::crypt_supported = 0;
|
||||
}
|
||||
|
||||
sub use_crypt {
|
||||
my($this, $key, $method) = @_;
|
||||
if($NOTEDB::crypt_supported == 1) {
|
||||
eval {
|
||||
$cipher = new Crypt::CBC($key, $method);
|
||||
};
|
||||
if($@) {
|
||||
$NOTEDB::crypt_supported == 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
print "warning: Crypt::CBC not supported by system!\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub get_single
|
||||
{
|
||||
sub get_single {
|
||||
my($this, $num) = @_;
|
||||
|
||||
my($note, $date);
|
||||
my $statement = $DB->prepare($sql_getsingle) || die $DB->errstr();
|
||||
|
||||
@@ -114,7 +93,13 @@ sub get_single
|
||||
|
||||
sub get_all
|
||||
{
|
||||
my($this, $num, $note, $date, %res);
|
||||
my $this = shift;
|
||||
my($num, $note, $date, %res);
|
||||
|
||||
if ($this->unchanged) {
|
||||
return %{$this->{cache}};
|
||||
}
|
||||
|
||||
my $statement = $DB->prepare($sql_all) || die $DB->errstr();
|
||||
|
||||
$statement->execute || die $DB->errstr();
|
||||
@@ -124,6 +109,8 @@ sub get_all
|
||||
$res{$num}->{'note'} = ude($note);
|
||||
$res{$num}->{'date'} = ude($date);
|
||||
}
|
||||
|
||||
$this->cache(%res);
|
||||
return %res;
|
||||
}
|
||||
|
||||
@@ -131,6 +118,14 @@ sub get_all
|
||||
sub get_nextnum
|
||||
{
|
||||
my($this, $num);
|
||||
if ($this->unchanged) {
|
||||
$num = 1;
|
||||
foreach (keys %{$this->{cache}}) {
|
||||
$num++;
|
||||
}
|
||||
return $num;
|
||||
}
|
||||
|
||||
my $statement = $DB->prepare($sql_nextnum) || die $DB->errstr();
|
||||
|
||||
$statement->execute || die $DB->errstr();
|
||||
@@ -144,30 +139,35 @@ sub get_nextnum
|
||||
sub get_search
|
||||
{
|
||||
my($this, $searchstring) = @_;
|
||||
my($num, $note, $date, %res);
|
||||
if($NOTEDB::crypt_supported != 1) {
|
||||
$searchstring = "\%$searchstring\%";
|
||||
my $statement = $DB->prepare($sql_search) || die $DB->errstr();
|
||||
$statement->execute($searchstring) || die $DB->errstr();
|
||||
$statement->bind_columns(undef, \($num, $note, $date))
|
||||
|| die $DB->errstr();
|
||||
while($statement->fetch) {
|
||||
$res{$num}->{'note'} = $note;
|
||||
$res{$num}->{'date'} = $date;
|
||||
}
|
||||
my($num, $note, $date, %res, $match);
|
||||
|
||||
my $regex = $this->generate_search($searchstring);
|
||||
eval $regex;
|
||||
if ($@) {
|
||||
print "invalid expression: \"$searchstring\"!\n";
|
||||
return;
|
||||
}
|
||||
$match = 0;
|
||||
|
||||
my %data;
|
||||
if ($this->unchanged) {
|
||||
%data = %{$this->{cache}};
|
||||
}
|
||||
else {
|
||||
my %res = $this->get_all();
|
||||
foreach $num (sort { $a <=> $b } keys %res) {
|
||||
$note = ude($res{$num}->{'note'});
|
||||
$date = ude($res{$num}->{'date'});
|
||||
if($note =~ /\Q$searchstring\E/i)
|
||||
{
|
||||
$res{$num}->{'note'} = $note;
|
||||
$res{$num}->{'date'} = $date;
|
||||
}
|
||||
}
|
||||
%data = $this->get_all();
|
||||
}
|
||||
foreach $num (sort { $a <=> $b } keys %data) {
|
||||
$note = ude($data{$num}->{'note'});
|
||||
$date = ude($data{$num}->{'date'});
|
||||
$_ = $note;
|
||||
eval $regex;
|
||||
if($match) {
|
||||
$res{$num}->{'note'} = $note;
|
||||
$res{$num}->{'date'} = $date;
|
||||
}
|
||||
$match = 0;
|
||||
}
|
||||
|
||||
return %res;
|
||||
}
|
||||
|
||||
@@ -178,23 +178,27 @@ sub set_edit
|
||||
{
|
||||
my($this, $num, $note, $date) = @_;
|
||||
|
||||
$this->lock;
|
||||
my $statement = $DB->prepare($sql_edit) || die $DB->errstr();
|
||||
|
||||
$note =~ s/'/\'/g;
|
||||
$note =~ s/\\/\\\\/g;
|
||||
$statement->execute(uen($note), uen($date), $num) || die $DB->errstr();
|
||||
$this->unlock;
|
||||
$this->changed;
|
||||
}
|
||||
|
||||
|
||||
sub set_new
|
||||
{
|
||||
my($this, $num, $note, $date) = @_;
|
||||
|
||||
$this->lock;
|
||||
my $statement = $DB->prepare($sql_insertnew) || die $DB->errstr();
|
||||
|
||||
$note =~ s/'/\'/g;
|
||||
$note =~ s/\\/\\\\/g;
|
||||
$statement->execute($num, uen($note), uen($date)) || die $DB->errstr();
|
||||
$this->unlock;
|
||||
$this->changed;
|
||||
}
|
||||
|
||||
|
||||
@@ -203,6 +207,7 @@ sub set_del
|
||||
my($this, $num) = @_;
|
||||
my($note, $date, $T);
|
||||
|
||||
$this->lock;
|
||||
($note, $date) = $this->get_single($num);
|
||||
|
||||
return "ERROR" if ($date !~ /^\d/);
|
||||
@@ -210,6 +215,8 @@ sub set_del
|
||||
# delete record!
|
||||
my $statement = $DB->prepare($sql_del) || die $DB->errstr();
|
||||
$statement->execute($num) || die $DB->errstr();
|
||||
$this->unlock;
|
||||
$this->changed;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -217,14 +224,19 @@ sub set_del
|
||||
sub set_del_all
|
||||
{
|
||||
my($this) = @_;
|
||||
$this->lock;
|
||||
my $statement = $DB->prepare($sql_del_all) || die $DB->errstr();
|
||||
$statement->execute() || die $DB->errstr();
|
||||
$this->unlock;
|
||||
$this->changed;
|
||||
return;
|
||||
}
|
||||
|
||||
sub set_recountnums
|
||||
{
|
||||
sub set_recountnums {
|
||||
my $this = shift;
|
||||
|
||||
$this->lock;
|
||||
|
||||
my(@count, $i, $num, $setnum, $pos);
|
||||
$setnum = 1;
|
||||
$pos=0; $i=0; @count = ();
|
||||
@@ -237,13 +249,14 @@ sub set_recountnums
|
||||
$count[$i] = $num;
|
||||
$i++;
|
||||
}
|
||||
|
||||
# now recount them!
|
||||
my $sub_statement = $DB->prepare($sql_setnum) || die $DB->errstr();
|
||||
for($pos=0;$pos<$i;$pos++) {
|
||||
$setnum = $pos +1;
|
||||
$sub_statement->execute($setnum,$count[$pos]) || die $DB->errstr();
|
||||
}
|
||||
$this->unlock;
|
||||
$this->changed;
|
||||
}
|
||||
|
||||
sub uen
|
||||
|
||||
189
README
@@ -1,4 +1,4 @@
|
||||
note 1.0.8 by Thomas Linden, 11/07/2000
|
||||
note 1.0.9 by Thomas Linden, 08/08/2000
|
||||
=======================================
|
||||
|
||||
Introduction
|
||||
@@ -72,8 +72,11 @@ Features
|
||||
stdin as well es duming to stdout instead a file. Additional, there
|
||||
is an option --raw available, which prints everything out completely
|
||||
without formatting.
|
||||
o for better performance, note can cache the database for listings
|
||||
or searching.
|
||||
o It can be installed without root-privileges.
|
||||
o Last, a while ago a user stated: "... it simply does, what it says ..."
|
||||
o Last, a while ago a user stated: "... it simply does, what it
|
||||
says ..."
|
||||
|
||||
|
||||
|
||||
@@ -189,6 +192,18 @@ Usage
|
||||
note will search the whole note database case insensitive for
|
||||
an occurence of this string and tell you the number and first-
|
||||
line it have.
|
||||
You can extend the searchstring using B<AND>, B<OR> ( and ) and
|
||||
shell-like wildcards:
|
||||
|
||||
$ note -s "moses AND lenin"
|
||||
|
||||
or:
|
||||
|
||||
$ note -s "(mike OR arnold) AND (jackson OR schwarzenegger)"
|
||||
|
||||
If note finds a note, which first line is a topic, then it will
|
||||
display it's second line.
|
||||
These rules apply for the interactive search too.
|
||||
|
||||
Instead of using note from the commandline you can use the
|
||||
interactive mode. Run note with "note -i". If you need assistance
|
||||
@@ -212,10 +227,10 @@ Usage
|
||||
o "note -D -" creates a note-database dump and prints it out
|
||||
to stantdard output.
|
||||
o "|" this is the shell's pipe command. It takes the output
|
||||
of the left program and gives it to the right program as standard
|
||||
input.
|
||||
o "note -o -I -" imports a note-database dump from standard input
|
||||
and overwrites an existing database.
|
||||
of the left program and gives it to the right program as
|
||||
standard input.
|
||||
o "note -o -I -" imports a note-database dump from standard
|
||||
input and overwrites an existing database.
|
||||
Before you use the "-o" switch, I consider yuo to make a backup!
|
||||
|
||||
|
||||
@@ -229,8 +244,9 @@ Topics
|
||||
field for the topic. Instead the topic will be stored right in the
|
||||
note.
|
||||
If the first line of your note contains some text bordered by slashes
|
||||
(or whatever you prefer, set "TopicSeparator" in your config! default is slash),
|
||||
then note will consider it as the topic of this certain note. For examle:
|
||||
(or whatever you prefer, set "TopicSeparator" in your config! default
|
||||
is slash), then note will consider it as the topic of this certain
|
||||
note. For examle:
|
||||
/TodoList/
|
||||
If you are using topics, no data after the topic is allowed, if there
|
||||
is any text, note will consider it as a subtopic! Therefore, don't for-
|
||||
@@ -239,17 +255,24 @@ Topics
|
||||
If you are in interactive mode, you can "cd" to a different note simply
|
||||
by typing it's name at the command-prompt, or you can use the well-known
|
||||
syntax "cd topic".
|
||||
The list-command will only show you notes under this topic. If you create
|
||||
a new note, it will automagically inserted under the current topic (note
|
||||
will prepend the string "/topicname/" to the text of your note).
|
||||
The list-command will only show you notes under this topic. If you
|
||||
create a new note, it will automagically inserted under the current
|
||||
topic (note will prepend the string "/topicname/" to the text of your
|
||||
note).
|
||||
You can use some enhanced capabilities of the cd command. If you turn on
|
||||
the "ShortCd" parameter in your configuration, then you can cd to a
|
||||
note number (and thus - to it's topic) i.e. "cd 13" jumps to the topic
|
||||
of the note number 13. You can always go one level up using the "cd .."
|
||||
command and you can go to the top-level topic using "cd /".
|
||||
|
||||
You can create at any time from any point a new topic. Just create a new
|
||||
note and type the name of the new topic bordered by slashes (or TopicSeparator)
|
||||
at the first line of this note. After saving, there will be available a
|
||||
new topic with one note in it.
|
||||
note and type the name of the new topic bordered by slashes (or
|
||||
TopicSeparator) at the first line of this note. After saving, there
|
||||
will be available a new topic with one note in it.
|
||||
|
||||
You can create as many subtopics as you like, the format is similar to a
|
||||
filesystem-path. An example, say, you want to create such a structure:
|
||||
You can create as many subtopics as you like, the format is similar to
|
||||
a filesystem-path. An example, say, you want to create such a
|
||||
structure:
|
||||
|
||||
(root - top level)
|
||||
|
|
||||
@@ -281,14 +304,15 @@ Topics
|
||||
|
||||
|
||||
If a note does not contain the "magic" /topic/ construction on the first
|
||||
line, it will be listed under the "root" of note, that is the point you are
|
||||
at the startup of note.
|
||||
line, it will be listed under the "root" of note, that is the point
|
||||
you are at the startup of note.
|
||||
|
||||
You can subsequently move a note without a topic to a certain topic. Simply
|
||||
edit it and insert at the first line the above mentioned construction.
|
||||
You can subsequently move a note without a topic to a certain topic.
|
||||
Simply edit it and insert at the first line the above mentioned
|
||||
construction.
|
||||
|
||||
Note: Please don't forget the prepending and appending a slash of a topic.
|
||||
You will get strange results without it!
|
||||
Note: Please don't forget the prepending and appending a slash of a
|
||||
topic. You will get strange results without it!
|
||||
|
||||
|
||||
|
||||
@@ -296,22 +320,22 @@ Topics
|
||||
Formatting of notes
|
||||
===================
|
||||
|
||||
Another very nice feature is the possibility to format the note-text (as much as
|
||||
shell allows it). First, you can use the note-internal "magic-strings" for color-
|
||||
izing. Those strings looks much like HTML:
|
||||
Another very nice feature is the possibility to format the note-text
|
||||
(as much as shell allows it). First, you can use the note-internal
|
||||
"magic-strings" for colorizing. Those strings looks much like HTML:
|
||||
"<green>here is a green line of text</green> no more green."
|
||||
As you see, the beginning of another color starts with a tag(kinda) of the color
|
||||
<colorname> and ens with an end tag </colorname>.
|
||||
As you see, the beginning of another color starts with a tag(kinda) of
|
||||
the color <colorname> and ens with an end tag </colorname>.
|
||||
|
||||
The following colors are available:
|
||||
black, red, green, yellow, blue, magenta, cyan and white.
|
||||
|
||||
Beside colorizing text, you can also create bold or underlined text! If you decide
|
||||
to use this (additional) feature, you need to set the Config-Option "FormatNotes"
|
||||
to 1 which turns it on.
|
||||
Usage is very straightforward, if a word (a word is defined as some text with at least
|
||||
one space surrounded) is between a magic mark-character. Here are the available
|
||||
things, you can do:
|
||||
Beside colorizing text, you can also create bold or underlined text! If
|
||||
you decide to use this (additional) feature, you need to set the
|
||||
Config-Option "FormatNotes" to 1 which turns it on.
|
||||
Usage is very straightforward, if a word (a word is defined as some
|
||||
text with at least one space surrounded) is between a magic mark-
|
||||
character. Here are the available things, you can do:
|
||||
|
||||
bold: **word**
|
||||
underlined: __word__
|
||||
@@ -322,30 +346,54 @@ Formatting of notes
|
||||
|
||||
|
||||
|
||||
Cache
|
||||
=====
|
||||
|
||||
If you have many notes stored in your database then you might
|
||||
find the cache feature useful. Chaching is currently supported
|
||||
by the binary and the mysql backend. Set the configuration
|
||||
parameter "Cache" to "1" or "yes" to turn caching on.
|
||||
Note will then use an internal copy of your notes-database for
|
||||
the list/search/tree commands instead of every time accessing
|
||||
the physically database. If something changed (i.e. you edited
|
||||
a note or added a new one) then the database will be used and
|
||||
the cache will be updated.
|
||||
A "%" character at the top left of the screen indicates that
|
||||
the cache is in use.
|
||||
I consider you not to use the cache feature if you are using
|
||||
multiple instances of note using the same database.
|
||||
The cache is turned off by default.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Scripting
|
||||
=========
|
||||
|
||||
Since version 1.0.3 there are some additions which allows you to use note in
|
||||
scripts, without user-interaction. You might run a special script as cronjob,
|
||||
which adds a note under a certain topic every week. Or the like.
|
||||
Since version 1.0.3 there are some additions which allows you to use
|
||||
note in scripts, without user-interaction. You might run a special
|
||||
script as cronjob, which adds a note under a certain topic every week.
|
||||
Or the like.
|
||||
|
||||
Here are the possibilies you have:
|
||||
|
||||
You can add a new note through a pipe, another commands output becomes
|
||||
note's input:
|
||||
$ cat /var/spool/news/daily | note -
|
||||
This command adds the content of a file "daily" as a new note. Note the dash.
|
||||
it stands for "Standard Input". Note will be completely silent and it will not
|
||||
ask for something.
|
||||
This command adds the content of a file "daily" as a new note. Note
|
||||
the dash - it stands for "Standard Input". Note will be completely
|
||||
silent and it will not ask for something.
|
||||
|
||||
Suppose you are using encryption. You might wonder, how note will get your
|
||||
passphrase? The solution: You need to set up an environment variable which
|
||||
contains the password:
|
||||
Suppose you are using encryption. You might wonder, how note will get
|
||||
your passphrase? The solution: You need to set up an environment
|
||||
variable which contains the password:
|
||||
$ export NOTE_PASSWD=secret
|
||||
If the variable is present, note will not ask you for a passphrase!
|
||||
|
||||
Another thingy you might find useful is the -r (--raw) command-line flag. This
|
||||
turns note into raw mode , which means it will only print the
|
||||
Another thingy you might find useful is the -r (--raw) command-line
|
||||
flag. This turns note into raw mode , which means it will only print the
|
||||
data without any formatting. Raw mode is available for list and display,
|
||||
since it makes no sense, interactive mode doe not support raw mode.
|
||||
|
||||
@@ -356,8 +404,8 @@ Scripting
|
||||
Format of the notedb (binary backend)
|
||||
=====================================
|
||||
|
||||
The database where the notes are stored is a binary fixed record length file
|
||||
of the following format:
|
||||
The database where the notes are stored is a binary fixed record length
|
||||
file of the following format:
|
||||
It consists of three fixed length fields per entry. The fields
|
||||
have the following types:
|
||||
o Number: Integer (1 byte)
|
||||
@@ -441,6 +489,20 @@ Security
|
||||
everytime it runs! It will *not* store this passphrase!
|
||||
So, don't forget it! Be careful!
|
||||
|
||||
If you are using the mysql backend and if your mysql database
|
||||
requires a password then you can store an encrypted version of
|
||||
your mysql password instead of the cleartext one.
|
||||
You need to turn on the config-parameter "encrypt_passwd" (set it
|
||||
to 1). Then you need to create an encrypted string from your
|
||||
mysql-password using note's commandline option --encrypt <string>.
|
||||
Note will ask you for a passphrase which will be used to encrypt
|
||||
the mysql-password. This passphrase must be exactly the same as
|
||||
you use for mysql itself. That means you need to use encryption.
|
||||
The string you get from this command must be saved in your config
|
||||
file as attribute to "DbPasswd". Later on note will decrypt that
|
||||
string using the supplied note-passphrase (that's why it must be
|
||||
the same used for encrypt) and pass the result to the mysql server.
|
||||
|
||||
Once note have encrypted some data using this passphrase, you
|
||||
cannot simply switch to another passphrase, because all data
|
||||
within the database needs to be encrypted using the same passphrase!
|
||||
@@ -465,30 +527,48 @@ Security
|
||||
and checks if the decrypted timestamp field matches the following
|
||||
expression: "^\d+\.\d+". Translated from perl to human:
|
||||
the timestamp must begin with minimum one digit (possibly more),
|
||||
followed by one dot, followed by minimum one digit (possibly more).
|
||||
followed by one dot, followed by minimum one digit (possibly
|
||||
more).
|
||||
Chances are bad, that a wrong passphrase will cause a timestamp
|
||||
matching the rule above. If you have other experiences, please
|
||||
drop me a mail!
|
||||
|
||||
For the paranoid: do not use the cache-feature, 'cause note stores a
|
||||
copy of your note database in RAM if cache support is turned on.
|
||||
This means an attacker could access your (unencrypted!) notes.
|
||||
|
||||
|
||||
Comments
|
||||
========
|
||||
|
||||
You can send any comments to Thomas Linden <tom@daemon.de>.
|
||||
If you find a bug or if you have a suggestion for improvement of the script
|
||||
feel free to send me a patch ;-)
|
||||
If you find a bug or if you have a suggestion for improvement of the
|
||||
script feel free to send me a patch ;-)
|
||||
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This script comes with absolutely NO WARRANTY. It is distributed under the
|
||||
terms of the GNU General Public License. Use it at your own risk :-)
|
||||
This script comes with absolutely NO WARRANTY. It is distributed under
|
||||
the terms of the GNU General Public License. Use it at your own risk :-)
|
||||
You can read the complete GPL at: http://www.gnu.org/copyleft/gpl.html
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Recources
|
||||
=========
|
||||
|
||||
The command-line options and all commands of the interactive mode are
|
||||
described in the supplied note(1) manpage.
|
||||
You may also refer to the note website http://www.0x49.org.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Author and Copyright
|
||||
====================
|
||||
|
||||
@@ -506,12 +586,13 @@ Contributors / Credits
|
||||
Jens Heunemann <jens.heunemann@consol.de> - sub tree.
|
||||
Peter Palmreuther - various additions.
|
||||
|
||||
And many other people who sended bug reports, feature requests. If you feel that
|
||||
I forgot your name in this list, then please send me an email and I'll add you.
|
||||
And many other people who sent bug reports, feature requests. If you
|
||||
feel that I forgot your name in this list, then please send me an email
|
||||
and I'll add you.
|
||||
|
||||
|
||||
|
||||
Last changed
|
||||
============
|
||||
|
||||
11/07/2000
|
||||
08/08/2000
|
||||
|
||||
4
TODO
@@ -1 +1,3 @@
|
||||
- dump to palm compatible format (!) any help out there?
|
||||
o mysql.pm und dbm.pm generate_search testen!
|
||||
o Website anpassen
|
||||
o Announcement on freshmeat.
|
||||
|
||||
2
bin/CVS/Entries
Normal file
@@ -0,0 +1,2 @@
|
||||
/note/1.3/Fri Jul 21 06:41:25 2000//
|
||||
D
|
||||
1
bin/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/bin
|
||||
1
bin/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
19
bin/system_and.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
*** note Mon Jul 10 00:10:03 2000
|
||||
--- _note Fri Jul 21 08:38:22 2000
|
||||
***************
|
||||
*** 635,641 ****
|
||||
$editor = &find_editor;
|
||||
if($editor)
|
||||
{
|
||||
! system "touch", $TEMP && die $!;
|
||||
system "chattr", "+s", $TEMP; # ignore errors, since only on ext2 supported!
|
||||
system $editor, $TEMP;
|
||||
}
|
||||
--- 635,641 ----
|
||||
$editor = &find_editor;
|
||||
if($editor)
|
||||
{
|
||||
! system "touch", $TEMP and die $!;
|
||||
system "chattr", "+s", $TEMP; # ignore errors, since only on ext2 supported!
|
||||
system $editor, $TEMP;
|
||||
}
|
||||
2
config/CVS/Entries
Normal file
@@ -0,0 +1,2 @@
|
||||
/noterc/1.3/Sun Jul 9 22:37:15 2000//
|
||||
D
|
||||
1
config/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/config
|
||||
1
config/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
@@ -42,6 +42,8 @@ DbDriver binary
|
||||
#FieldNumber number
|
||||
#FieldNote note
|
||||
#FieldDate date
|
||||
# uncomment for using an encrypted password, generate it with note "--encrypt"
|
||||
#encrypt_passwd 1
|
||||
#### specific end ###
|
||||
|
||||
|
||||
@@ -152,7 +154,16 @@ TempDirectory /home/you/tmp
|
||||
|
||||
|
||||
|
||||
# You can jump to a topic by typing "cd 13" in interactive mode.
|
||||
# You need to set thi soption to 1 if you want to use this feature.
|
||||
ShortCd 0
|
||||
|
||||
|
||||
|
||||
# note can use a cached copy of the note database for list/tree/search
|
||||
# this is currently only supported by the binary and the mysql backends
|
||||
# set it to 1 to turn it on, the default is 0 (off)
|
||||
Cache 0
|
||||
# That's all about it for now.
|
||||
# If you still have any questiosn, please feel free to contact
|
||||
# me by email: Thomas Linden <tom@daemon.de>
|
||||
|
||||
154
config/rc
Normal file
@@ -0,0 +1,154 @@
|
||||
comments start with #, empty lines will be ignored.
|
||||
1 turns an option on, 0 turns it off.
|
||||
An option consists of an atribute-value pair separated
|
||||
by minimum one space (more spaces and/or tabs are allowed)
|
||||
|
||||
|
||||
Your home directory, better do not change it!
|
||||
can be an environment variable or a path
|
||||
Home $ENV{'HOME'}
|
||||
|
||||
|
||||
specify the path, where the NOTEDB lib directory
|
||||
resides. This will only used if it is not
|
||||
installed inside the perl-lib directory structure!
|
||||
LibPath /usr/local/lib
|
||||
|
||||
|
||||
you need to decide which database backend you want
|
||||
to use. Please refer to the corresponding documentation
|
||||
for closer information about the certain backend!
|
||||
Currently supported types: "binary", "dbm" or "mysql".
|
||||
You must also edit/uncomment one section below for the
|
||||
backend you want to use!
|
||||
DbDriver binary
|
||||
|
||||
|
||||
backend specific settings for sql backend
|
||||
DbHost localhost
|
||||
DbUser you
|
||||
DbPasswd
|
||||
DbName mynotes
|
||||
DbTable note
|
||||
FieldNumber number
|
||||
FieldNote note
|
||||
FieldDate date
|
||||
use an encrypted password, generate it with note "--encrypt_passwd"
|
||||
encrypt_passwd 1
|
||||
#### specific end ###
|
||||
|
||||
|
||||
backend specific settings for binary(default) backend
|
||||
NoteDb ~/.notedb
|
||||
Define the maximum bytes fields can have in a
|
||||
note-entry. Do not change MaxTimeByte to less than 64!
|
||||
|
||||
MaxNoteByte 4096
|
||||
MaxTimeByte 64
|
||||
#### specific end ###
|
||||
|
||||
|
||||
backend specific settings for DBM backend
|
||||
this must be an existing directory!
|
||||
#DbName /home/you/.notedbm
|
||||
#### specific end ###
|
||||
|
||||
You can use encryption with note, that means notes and
|
||||
timestamps will be stored encrypted. This is supported
|
||||
by every db-backend.
|
||||
Set to 1 to turn it on. The Default is 0 (off)
|
||||
UseEncryption 0
|
||||
|
||||
Specify the encryption protocol. The appropriate perl
|
||||
module needs to be installed. Possible velues are
|
||||
IDEA, DES or Blowfish, the default is IDEA.
|
||||
CryptMethod IDEA
|
||||
|
||||
|
||||
You can run note always in interactive mode by simply
|
||||
typing "note". Set this option to 1 to turn it on.
|
||||
The default is 0 (off).
|
||||
AlwaysInteractive 0
|
||||
|
||||
|
||||
In interactive mode, note issues a list command if you
|
||||
simply hit enter. By turning this on, it will issue a
|
||||
longlist command instead if you hit just enter.
|
||||
The default is 0 (off)
|
||||
DefaultLong 0
|
||||
|
||||
|
||||
|
||||
You can use an external editor everytime from note instead
|
||||
of STDIN for creating new notes. Set to 1 to turn it on.
|
||||
The default is 0 (off).
|
||||
AlwaysEditor 0
|
||||
|
||||
|
||||
uncomment and edit it, if you want to use another
|
||||
editor than the default $EDITOR or as fallback vi.
|
||||
#PreferredEditor emacs
|
||||
|
||||
|
||||
If you dont prefer that note updates the timestamp of a
|
||||
note after editing, turn this on. It will
|
||||
keep the original timestamp if this option is set.
|
||||
The default is 0(off), to turn it on set to 1.
|
||||
KeepTimeStamp 0
|
||||
|
||||
|
||||
You can specify your own topic separator here.
|
||||
the default topic separator is a normal slash: "/"
|
||||
see README for details about topics!
|
||||
TopicSeparator /
|
||||
|
||||
|
||||
The maximum width for displaying a note, in CHARS.
|
||||
Depends on your screen-size. You can set it to
|
||||
"auto", if you wish that note sould determine the
|
||||
available size, but it experimental, be aware!
|
||||
MaxLen 30
|
||||
|
||||
|
||||
note can use colors for output, set this option to
|
||||
1, if you don't want it, or if your terminal does
|
||||
not support it, set to 0. The default is 1 (on).
|
||||
UseColors 1
|
||||
|
||||
|
||||
Color-definitions of the various items. Will only
|
||||
take effect, if "UseColors" is turned on!
|
||||
BorderColor BLACK
|
||||
NumberColor blue
|
||||
NoteColor green
|
||||
TimeColor black
|
||||
TopicColor BLACK
|
||||
The following colors are available:
|
||||
black, red, green, yellow, blue, magenta, cyan and white.
|
||||
for bold color write it uppercase (BLACK will be bold black)
|
||||
for underlined color append an underscore (blue_ will be underlined blue)
|
||||
for inverted color append an "I" (greenI will be inverted green)
|
||||
|
||||
|
||||
Additional to colors, you can also do a little bit of formatting your
|
||||
notes (bold, underlined, italic), see README!
|
||||
You need to set this Option to 1, if you decide to make use of this
|
||||
capabily
|
||||
FormatText 1
|
||||
|
||||
|
||||
You might specify your own directory for temporary files.
|
||||
note needs to create some temp files during editing of notes.
|
||||
You could protect this directory using the command: chmod 700 directory.
|
||||
The default is /tmp
|
||||
TempDirectory /home/you/tmp
|
||||
|
||||
|
||||
|
||||
You can jump to a topic by typing "cd 13" in interactive mode.
|
||||
You need to set thi soption to 1 if you want to use this feature.
|
||||
ShortCd 0
|
||||
|
||||
That's all about it for now.
|
||||
If you still have any questiosn, please feel free to contact
|
||||
me by email: Thomas Linden <tom@daemon.de>
|
||||
5
mysql/CVS/Entries
Normal file
@@ -0,0 +1,5 @@
|
||||
/README/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/install.sh/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/permissions/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
/sql/1.1.1.1/Sat Jul 1 14:40:52 2000//
|
||||
D
|
||||
1
mysql/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
NOTE/mysql
|
||||
1
mysql/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
zarahg@cvs.htnews.sourceforge.net:/cvsroot/htnews
|
||||
5
note
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/perl
|
||||
# $Id: note,v 1.27 2000/05/16 23:51:35 thomas Exp thomas $
|
||||
# $Id: note,v 1.1.1.1 2000/07/01 14:40:50 zarahg Exp $
|
||||
#
|
||||
#
|
||||
# note - console notes management with database and encryption support.
|
||||
@@ -1560,6 +1560,9 @@ sub getconfig
|
||||
__END__
|
||||
#
|
||||
# $Log: note,v $
|
||||
# Revision 1.1.1.1 2000/07/01 14:40:50 zarahg
|
||||
# initial import
|
||||
#
|
||||
# Revision 1.27 2000/05/16 23:51:35 thomas
|
||||
# fixed many option-parsing related bugd!
|
||||
#
|
||||
|
||||
636
note.1
Normal file
@@ -0,0 +1,636 @@
|
||||
.rn '' }`
|
||||
''' $RCSfile$$Revision$$Date$
|
||||
'''
|
||||
''' $Log$
|
||||
'''
|
||||
.de Sh
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Ip
|
||||
.br
|
||||
.ie \\n(.$>=3 .ne \\$3
|
||||
.el .ne 3
|
||||
.IP "\\$1" \\$2
|
||||
..
|
||||
.de Vb
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
'''
|
||||
'''
|
||||
''' Set up \*(-- to give an unbreakable dash;
|
||||
''' string Tr holds user defined translation string.
|
||||
''' Bell System Logo is used as a dummy character.
|
||||
'''
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ie n \{\
|
||||
.ds -- \(*W-
|
||||
.ds PI pi
|
||||
.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
.ds L" ""
|
||||
.ds R" ""
|
||||
''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
|
||||
''' \*(L" and \*(R", except that they are used on ".xx" lines,
|
||||
''' such as .IP and .SH, which do another additional levels of
|
||||
''' double-quote interpretation
|
||||
.ds M" """
|
||||
.ds S" """
|
||||
.ds N" """""
|
||||
.ds T" """""
|
||||
.ds L' '
|
||||
.ds R' '
|
||||
.ds M' '
|
||||
.ds S' '
|
||||
.ds N' '
|
||||
.ds T' '
|
||||
'br\}
|
||||
.el\{\
|
||||
.ds -- \(em\|
|
||||
.tr \*(Tr
|
||||
.ds L" ``
|
||||
.ds R" ''
|
||||
.ds M" ``
|
||||
.ds S" ''
|
||||
.ds N" ``
|
||||
.ds T" ''
|
||||
.ds L' `
|
||||
.ds R' '
|
||||
.ds M' `
|
||||
.ds S' '
|
||||
.ds N' `
|
||||
.ds T' '
|
||||
.ds PI \(*p
|
||||
'br\}
|
||||
.\" If the F register is turned on, we'll generate
|
||||
.\" index entries out stderr for the following things:
|
||||
.\" TH Title
|
||||
.\" SH Header
|
||||
.\" Sh Subsection
|
||||
.\" Ip Item
|
||||
.\" X<> Xref (embedded
|
||||
.\" Of course, you have to process the output yourself
|
||||
.\" in some meaninful fashion.
|
||||
.if \nF \{
|
||||
.de IX
|
||||
.tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
.nr % 0
|
||||
.rr F
|
||||
.\}
|
||||
.TH note 1 "note version 1.1.0" "10/Aug/2000" "Documentation"
|
||||
.UC
|
||||
.if n .hy 0
|
||||
.if n .na
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.de CQ \" put $1 in typewriter font
|
||||
.ft CW
|
||||
'if n "\c
|
||||
'if t \\&\\$1\c
|
||||
'if n \\&\\$1\c
|
||||
'if n \&"
|
||||
\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
|
||||
'.ft R
|
||||
..
|
||||
.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
|
||||
. \" AM - accent mark definitions
|
||||
.bd B 3
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds ? ?
|
||||
. ds ! !
|
||||
. ds /
|
||||
. ds q
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
|
||||
. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
|
||||
.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
|
||||
.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
|
||||
.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
.ds oe o\h'-(\w'o'u*4/10)'e
|
||||
.ds Oe O\h'-(\w'O'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds v \h'-1'\o'\(aa\(ga'
|
||||
. ds _ \h'-1'^
|
||||
. ds . \h'-1'.
|
||||
. ds 3 3
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
. ds oe oe
|
||||
. ds Oe OE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.SH "NAME"
|
||||
note \- a perl script for maintaining notes.
|
||||
.SH "SYNPOPSIS"
|
||||
note [options] [ number [,number...]]
|
||||
.SH "DESCRIPTION"
|
||||
\fBnote\fR is a small console program written in perl, which allows
|
||||
you to manage notes similar to programs like \*(L"knotes\*(R" but from
|
||||
the commandline. Note can use different database-backends for
|
||||
notes-storage. It ships with a DBI\-based mysql-\fImodule\fR\|(which
|
||||
can also be used for other by DBI supported DBMS), another
|
||||
module, which uses a binary file for storage and a DBM module.
|
||||
Note supports since version 1.0.0 \fIencryption\fR\|(IDEA or DES)!
|
||||
.SH "OPTIONS"
|
||||
.Ip "\fI\-c, --config file\fR" 5
|
||||
Use another config file than the default ~/.noterc.
|
||||
.Ip "\fI\-l, --list [topic]\fR" 5
|
||||
Lists all existing notes. If no topic were specified,
|
||||
it will display a list of all existing topics.
|
||||
See the section \fI\s-1TOPICS\s0\fR for details about topics.
|
||||
.Ip "\fI\-L, --longlist [topic]\fR" 5
|
||||
The same as \fI\-l\fR but prints also the timestamp of the notes.
|
||||
.Ip "\fI\-t, --topic\fR" 5
|
||||
Prints a list of all topics as a tree.
|
||||
.Ip "\fI\-T, --longtopic\fR" 5
|
||||
Prints the topic-tree with the notes under each topic.
|
||||
.Ip "\fI\-s, --search string\fR" 5
|
||||
Searches for <string> trough the notes database. See the section
|
||||
\fI\s-1SEARCHING\s0\fR for details about the search engine.
|
||||
.Ip "\fI\-e, --edit number\fR" 5
|
||||
Edit the note with the number <number> using your default editor
|
||||
or the one you specified in the config file.
|
||||
.Ip "\fI\-d, --delete number\fR" 5
|
||||
Delete the note with the number <number>. You can delete multiple notes
|
||||
with one command. \*(L"1-4\*(R" deletes the notes 1,2,3,4. And \*(L"1,5,7\*(R" deletes
|
||||
the specified ones.
|
||||
.Ip "\fI\-D, --Dump [file | \-]\fR" 5
|
||||
Dumps all notes to the textfile <file>. If <file> is a \*(L"\-\*(R" it will
|
||||
be printed out to standard output (\s-1STDOUT\s0).
|
||||
.Ip "\fI\-I, --Import file | \-\fR" 5
|
||||
Imports a previously dumped textfile into the
|
||||
note database. Data will be appended by default.
|
||||
You can also specify a dash \fInote \-I \-\fR instead of a <file>,
|
||||
which causes note, silently to read in a dump from \s-1STDIN\s0.
|
||||
.Ip "\fI\-o, --overwrite\fR" 5
|
||||
Only suitable for use with --Import. Overwrites an
|
||||
existing notedb. Use with care.
|
||||
.Ip "\fI\-r, --raw\fR" 5
|
||||
Raw mode, output will not be formatted. Works not in interactive
|
||||
mode, only on cmd-line for list and display. That means, no colors
|
||||
will be used and no lines or titles.
|
||||
.Ip "\fI\-i, --interactive\fR" 5
|
||||
Start note in interactive mode. See the section \fI\s-1INTERACTIVE\s0 \s-1MODE\s0\fR
|
||||
for details on this mode.
|
||||
|
||||
.Ip "\fI--encrypt cleartext\fR" 5
|
||||
Encrypt the given clear text string. You would need that if you want to
|
||||
store the mysql password not in cleartext in the \fIconfig\fR\|(if you are using
|
||||
the mysql backend!).
|
||||
.Ip "\fI\-h, --help\fR" 5
|
||||
Display this help screen.
|
||||
.Ip "\fI\-v, --version\fR" 5
|
||||
Display the version number.
|
||||
.Ip "\fB\-\fR" 5
|
||||
If you run note just with one dash: \fBnote \-\fR, then it will read in a new
|
||||
note from \s-1STDIN\s0 until \s-1EOF\s0. This makes it possible to pipe text into a new note, i.e.:
|
||||
.Sp
|
||||
.Vb 1
|
||||
\& cat sometextfile | note -
|
||||
.Ve
|
||||
.SH "USAGE"
|
||||
.Sh "\s-1GENERAL\s0 \s-1USAGE\s0"
|
||||
If you don't know, how to run note, try \*(L"note \-h\*(R" first.
|
||||
It will tell you all available commandline options.
|
||||
.PP
|
||||
To create a new note, simply run \*(L"note\*(R". You can enter
|
||||
the note (the length is by default limited to 4096 bytes,
|
||||
which you can change from your config file if you are using
|
||||
the binary backend, therwise there is no limitation).
|
||||
End by typing a . on a line itself. note will tell you the
|
||||
number of the note.
|
||||
.PP
|
||||
If you want to view the note, type \*(L"note 1\*(R", if the notenumber
|
||||
was 1.
|
||||
.PP
|
||||
If you want to get an overview of all notes, type \*(L"note \-l\*(R".
|
||||
You will get a list of all notes, containing the number,
|
||||
the first line and the creation date. If topic-support is
|
||||
turned on (which is by default), then all subtopics under the
|
||||
current topic will be displayed first.
|
||||
If you want to get a listing of all
|
||||
If you want to see the timestamps, use \*(L"\-L\*(R" instead of \*(L"\-l\*(R".
|
||||
Read more about topics below in the section \*(L"Topics\*(R".
|
||||
You can also specify the topic which notes you want to see:
|
||||
\*(L"\-l mytopic\*(R" does the trick.
|
||||
Additional, you might want to get an overview of your topic-
|
||||
strcture. You can use the command \*(L"\-t\*(R" in this case, which
|
||||
will display a tree-view of your tpic-structure. You can
|
||||
use the command \*(L"\-T\*(R" if you want to see the notes under each
|
||||
topic too. \*(L"\-T\*(R" will also show the number of each note.
|
||||
.PP
|
||||
To edit a certain note, type \*(L"note \-e 1\*(R". It will invoke your
|
||||
editor (vi or pico). You can edit it, after saving, note
|
||||
will store the changed note to the database.
|
||||
.PP
|
||||
Of course you can drop a certain note: \*(L"note \-d 1\*(R" deletes
|
||||
note number 1. If a note in the middle or the beginning of
|
||||
the database will be deleted, note will recount the other
|
||||
existent notes. For example there are 3 notes, number 1, 2
|
||||
and 3. If you delete number 2, then number 3 will become
|
||||
number 2.
|
||||
You can also make use of the extended delete-syntax:
|
||||
To delete note 1 and 2, use \*(L"\-d 1,2\*(R"
|
||||
To delete note 1,2 and 3, use \*(L"\-d 1-3\*(R".
|
||||
.Sh "\s-1SEARCHING\s0"
|
||||
If you cannot remember, which note you are looking for, you
|
||||
can use the search capability of note: \*(L"note \-s <searchstring>\*(R".
|
||||
note will search the whole note database case insensitive for
|
||||
an occurence of this string and tell you the number and first-
|
||||
line it has.
|
||||
.PP
|
||||
You can extend the searchstring using \fB\s-1AND\s0\fR, \fB\s-1OR\s0\fR ( and ) and
|
||||
shell-like wildcards:
|
||||
.PP
|
||||
.Vb 1
|
||||
\& $ note -s "moses AND lenin"
|
||||
.Ve
|
||||
or:
|
||||
.PP
|
||||
.Vb 1
|
||||
\& $ note -s "(mike OR arnold) AND (jackson OR schwarzenegger)"
|
||||
.Ve
|
||||
If note finds a note, which first line is a topic, then it will
|
||||
display it's second line.
|
||||
.PP
|
||||
These rules apply for the interactive search too.
|
||||
.Sh "\s-1TOPICS\s0"
|
||||
If topic-support is turned on (which is by default), the various
|
||||
notes are sorted under various topics. There is no special database
|
||||
field for the topic. Instead the topic will be stored right in the
|
||||
note.
|
||||
If the first line of your note contains some text bordered by slashes
|
||||
(or whatever you prefer, set \*(L"TopicSeparator\*(R" in your config! default
|
||||
is slash), then note will consider it as the topic of this certain
|
||||
note. For examle:
|
||||
.PP
|
||||
.Vb 1
|
||||
\& B</TodoList/>
|
||||
.Ve
|
||||
If you are using topics, no data after the topic is allowed, if there
|
||||
is any text, note will consider it as a subtopic! Therefore, don't for-
|
||||
get to put a newline after the topic-line.
|
||||
.PP
|
||||
The list-command will only show you notes under this topic. If you
|
||||
create a new note, it will automagically inserted under the current
|
||||
topic (note will prepend the string \*(L"/topicname/\*(R" to the text of your
|
||||
note).
|
||||
.PP
|
||||
You can create at any time from any point a new topic. Just create a new
|
||||
note and type the name of the new topic bordered by slashes (or
|
||||
TopicSeparator) at the first line of this note. After saving, there
|
||||
will be available a new topic with one note in it.
|
||||
.PP
|
||||
You can create as many subtopics as you like, the format is similar to
|
||||
a filesystem-path. An example, say, you want to create such a
|
||||
structure:
|
||||
.PP
|
||||
.Vb 10
|
||||
\& (root - top level)
|
||||
\& |
|
||||
\& |----test
|
||||
\& | |----subtopic
|
||||
\& | | |--note 1
|
||||
\& | | |--note 2
|
||||
\& | |
|
||||
\& | |--note 4
|
||||
\& |
|
||||
\& |--note 3
|
||||
.Ve
|
||||
Then you may create those 4 new notes:
|
||||
.PP
|
||||
.Vb 12
|
||||
\& --- snip ---
|
||||
\& /test/subtopic/
|
||||
\& note 1
|
||||
\& --- snip ---
|
||||
\& /test/subtopic/
|
||||
\& note 2
|
||||
\& --- snip ---
|
||||
\& note 3
|
||||
\& --- snip ---
|
||||
\& /test/
|
||||
\& note 4
|
||||
\& --- snip ---
|
||||
.Ve
|
||||
I hope, you got the point ;\-)
|
||||
.PP
|
||||
If a note does not contain the \*(L"magic\*(R" /topic/ construction on the first
|
||||
line, it will be listed under the \*(L"root\*(R" of note, that is the point
|
||||
you are at the startup of note.
|
||||
.PP
|
||||
You can subsequently move a note without a topic to a certain topic.
|
||||
Simply edit it and insert at the first line the above mentioned
|
||||
construction.
|
||||
.PP
|
||||
Note: Please don't forget the prepending and appending a slash of a
|
||||
topic. You will get strange results without it!
|
||||
.Sh "\s-1INTERACTIVE\s0 \s-1MODE\s0"
|
||||
If you start note with the commandline flag \fB\-i\fR, then it starts
|
||||
with an interactive interface.
|
||||
It will start with a listing under the default top-topic ("/").
|
||||
You can enter the name of a topic to change to that topic. This works
|
||||
similar to a filesystem structure. The current topic will be
|
||||
displayed on the top of the screen.
|
||||
.PP
|
||||
The following commands are available:
|
||||
.Ip "\fBL [topic]\fR" 5
|
||||
This command lists all notes with a timestamp. If you specify a topic, it
|
||||
will only list the notes under this topic. If you are under a certain subtopic,
|
||||
then it will only display the notes under this topic.
|
||||
.Ip "\fBl [topic]\fR" 5
|
||||
This commands behaves similar to \fBL\fR but it does not display the timestamp.
|
||||
You can achieve the same result by simply pressing enter at any time.
|
||||
.Ip "\fBN\fR" 5
|
||||
You can create a new note by simply pressing \fBN\fR or \fBn\fR. You favorite
|
||||
editor will be started and you can enter your note text. If you are already
|
||||
under a topic then this new note will automatically go to this topic.
|
||||
note adds an aditional line to the top of the note with the topic. But
|
||||
you can of course specify your own topic.
|
||||
.Sp
|
||||
Note will tell you which number it has assigned to the newly created note.
|
||||
.Ip "\fBE number\fR" 5
|
||||
By entering \fBE\fR or \fBe\fR and a note-number you can edit an existing note
|
||||
using your favorite editor. This way you can also move an existing note
|
||||
from one topic to another one by editing the first line of the note.
|
||||
.Ip "\fBD number\fR" 5
|
||||
\fBE\fR or \fBe\fR deletes one or more existing \fInote\fR\|(s). It requires a note number
|
||||
or a set of note numbers. 1-5 and 1,7,9 are possible values.
|
||||
After one or more notes has been deleted note will recount all remaining notes.
|
||||
Say if you delete 1 and 2, then 3 will become 1, 4 will become 5 and so forth.
|
||||
.Ip "\fBS [expression]\fR" 5
|
||||
You can search for the occurence of a text in your notes-database with the
|
||||
command \fBS\fR or \fBs\fR. If you omit an expression note will ask you for one.
|
||||
.Ip "\fBT\fR" 5
|
||||
This prints a tree-view of your topic-structure. \fBT\fR displays the tree with
|
||||
notes, \fBt\fR displays just the topics without notes.
|
||||
.Ip "\fBcd topic\fR" 5
|
||||
Change the actual topic under which you are. This works identical like just
|
||||
entering the topic but it has some advantages. You can enter \fBcd ..\fR if
|
||||
you want to go one level up in the topic-structure. And you can enter \fBcd /\fR
|
||||
to go to the top of the structure.
|
||||
Additional it is possible to enter a note-number instead of a topic name.
|
||||
For this feature to be active you need to set the config option \fBShortCd\fR
|
||||
to \fB1\fR or \fByes\fR. If you use a number and the note with this number is
|
||||
under a certain topic then you will \*(L"cd\*(R" to this topic. This allows you
|
||||
to do kind of jumps over multiple levels of topics.
|
||||
.Ip "\fB? or h\fR" 5
|
||||
Display a short help screen.
|
||||
.Ip "\fBQ\fR" 5
|
||||
Quit note.
|
||||
.Sh "\s-1BACKUP\s0"
|
||||
You can also dump the contents of your note-database into a
|
||||
\s-1ASCII\s0\-\fItextfile\fR\|(\fI\-D\fR). You can use this file later to import it into
|
||||
your note-\fIdatabase\fR\|(\-I). This is usefull, if you want quickly trans-
|
||||
fer your notes from one host to another (i.e. you could mail
|
||||
your note-dump form your office to home and import it there
|
||||
for further use).
|
||||
.PP
|
||||
The dumps from the two versions of note are in the same format.
|
||||
Using dumps it is also possible to reinitialize your database. You
|
||||
can use the \*(L"\-o\*(R" switch whcih causes note to overwrite your existing
|
||||
database. This is very handy if you changed heavily your config. And
|
||||
it is required, if you changed: encryption, db-driver, (binary-format)
|
||||
and the password. You can use the following command for reinitializing:
|
||||
.PP
|
||||
.Vb 1
|
||||
\& $ note -D - | note -o -I -
|
||||
.Ve
|
||||
What the hell, does this do?! Step by step:
|
||||
.Ip "\(bu" 5
|
||||
\fBnote \-D \-\fR creates a note-database dump and prints it out
|
||||
to stantdard output.
|
||||
.Ip "\(bu" 5
|
||||
\fB|\fR this is the shell's pipe command. It takes the output
|
||||
of the left program and gives it to the right program as
|
||||
standard input.
|
||||
.Ip "\(bu" 5
|
||||
\fBnote \-o \-I \-\fR imports a note-database dump from standard
|
||||
input and overwrites an existing database.
|
||||
.PP
|
||||
Before you use the \fB\-o\fR switch, I consider you to make a backup!
|
||||
.Sh "\s-1FORMATING\s0"
|
||||
Another very nice feature is the possibility to format the note-text
|
||||
(as much as shell allows it). First, you can use the note-internal
|
||||
\*(L"magic-strings\*(R" for colorizing. Those strings looks much like \s-1HTML\s0:
|
||||
\*(L"<green>here is a green line of text</green> no more green.\*(R"
|
||||
As you see, the beginning of another color starts with a \fItag\fR\|(kinda) of
|
||||
the color <colorname> and ens with an end tag </colorname>.
|
||||
.PP
|
||||
The following colors are available:
|
||||
black, red, green, yellow, blue, magenta, cyan and white.
|
||||
.PP
|
||||
Beside colorizing text, you can also create bold or underlined text! If
|
||||
you decide to use this (additional) feature, you need to set the
|
||||
Config-Option \*(L"FormatNotes\*(R" to 1 which turns it on.
|
||||
Usage is very straightforward, if a word (a word is defined as some
|
||||
text with at least one space surrounded) is between a magic mark-
|
||||
character. Here are the available things, you can do:
|
||||
.PP
|
||||
.Vb 3
|
||||
\& bold: **word**
|
||||
\& underlined:__word__
|
||||
\& inverse:{{word}}
|
||||
.Ve
|
||||
The text will be formatted using the actually note-color.
|
||||
.SH "ENCRYPTION"
|
||||
You can turn on encryption from the config file.
|
||||
Simply set UseEncryption to 1. Please note, that you need
|
||||
to decide, if you want to use encryption before the first use
|
||||
of note! If have already a note database and want to \*(L"migrate\*(R"
|
||||
to encryption, I suggest you to follow the directions in the
|
||||
file UPGRADE!
|
||||
.PP
|
||||
You can choose from different encryption algorythms. The default
|
||||
is IDEA, but DES or BLOWFISH is also possible. You need to have
|
||||
installed the following additional perl-modules on your system:
|
||||
MD5
|
||||
Crypt::IDEA
|
||||
Crypt::DES
|
||||
Crypt::CBC
|
||||
.PP
|
||||
After turning on encryption, note will ask you for a passphrase
|
||||
everytime it runs! It will *not* store this passphrase!
|
||||
So, don't forget it! Be careful!
|
||||
.SH "CONFIGURATION"
|
||||
You can use a configuration file with note but it is not required.
|
||||
Note will use default values if there is no config.
|
||||
.PP
|
||||
The default config file is \fB~/.noterc\fR. You may specify another
|
||||
one with the commandline flag \fI--config\fR.
|
||||
.PP
|
||||
Comments start with #, empty lines will be ignored.
|
||||
1 turns an option on, 0 turns it off.
|
||||
An option consists of an atribute-value pair separated
|
||||
by minimum one space (more spaces and/or tabs are allowed).
|
||||
.PP
|
||||
For a detailed explanation of each possible parameter take a look
|
||||
at the supplied sample configuration file in \fBconfig/noterc\fR.
|
||||
.SH "SEE ALSO"
|
||||
See the usage guide in the README or visit the note website:
|
||||
http://www.0x49.org.
|
||||
.SH "AUTHOR"
|
||||
Thomas Linden <tom@daemon.de>
|
||||
|
||||
.rn }` ''
|
||||
.IX Title "NOTE 1"
|
||||
.IX Name "note - a perl script for maintaining notes."
|
||||
|
||||
.IX Header "NAME"
|
||||
|
||||
.IX Header "SYNPOPSIS"
|
||||
|
||||
.IX Header "DESCRIPTION"
|
||||
|
||||
.IX Header "OPTIONS"
|
||||
|
||||
.IX Item "\fI\-c, --config file\fR"
|
||||
|
||||
.IX Item "\fI\-l, --list [topic]\fR"
|
||||
|
||||
.IX Item "\fI\-L, --longlist [topic]\fR"
|
||||
|
||||
.IX Item "\fI\-t, --topic\fR"
|
||||
|
||||
.IX Item "\fI\-T, --longtopic\fR"
|
||||
|
||||
.IX Item "\fI\-s, --search string\fR"
|
||||
|
||||
.IX Item "\fI\-e, --edit number\fR"
|
||||
|
||||
.IX Item "\fI\-d, --delete number\fR"
|
||||
|
||||
.IX Item "\fI\-D, --Dump [file | \-]\fR"
|
||||
|
||||
.IX Item "\fI\-I, --Import file | \-\fR"
|
||||
|
||||
.IX Item "\fI\-o, --overwrite\fR"
|
||||
|
||||
.IX Item "\fI\-r, --raw\fR"
|
||||
|
||||
.IX Item "\fI\-i, --interactive\fR"
|
||||
|
||||
.IX Item "\fI--encrypt cleartext\fR"
|
||||
|
||||
.IX Item "\fI\-h, --help\fR"
|
||||
|
||||
.IX Item "\fI\-v, --version\fR"
|
||||
|
||||
.IX Item "\fB\-\fR"
|
||||
|
||||
.IX Header "USAGE"
|
||||
|
||||
.IX Subsection "\s-1GENERAL\s0 \s-1USAGE\s0"
|
||||
|
||||
.IX Subsection "\s-1SEARCHING\s0"
|
||||
|
||||
.IX Subsection "\s-1TOPICS\s0"
|
||||
|
||||
.IX Subsection "\s-1INTERACTIVE\s0 \s-1MODE\s0"
|
||||
|
||||
.IX Item "\fBL [topic]\fR"
|
||||
|
||||
.IX Item "\fBl [topic]\fR"
|
||||
|
||||
.IX Item "\fBN\fR"
|
||||
|
||||
.IX Item "\fBE number\fR"
|
||||
|
||||
.IX Item "\fBD number\fR"
|
||||
|
||||
.IX Item "\fBS [expression]\fR"
|
||||
|
||||
.IX Item "\fBT\fR"
|
||||
|
||||
.IX Item "\fBcd topic\fR"
|
||||
|
||||
.IX Item "\fB? or h\fR"
|
||||
|
||||
.IX Item "\fBQ\fR"
|
||||
|
||||
.IX Subsection "\s-1BACKUP\s0"
|
||||
|
||||
.IX Item "\(bu"
|
||||
|
||||
.IX Item "\(bu"
|
||||
|
||||
.IX Item "\(bu"
|
||||
|
||||
.IX Subsection "\s-1FORMATING\s0"
|
||||
|
||||
.IX Header "ENCRYPTION"
|
||||
|
||||
.IX Header "CONFIGURATION"
|
||||
|
||||
.IX Header "SEE ALSO"
|
||||
|
||||
.IX Header "AUTHOR"
|
||||
|
||||
501
note.pod
Normal file
@@ -0,0 +1,501 @@
|
||||
=head1 NAME
|
||||
|
||||
note - a perl script for maintaining notes.
|
||||
|
||||
|
||||
=head1 SYNPOPSIS
|
||||
|
||||
note [options] [ number [,number...]]
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
B<note> is a small console program written in perl, which allows
|
||||
you to manage notes similar to programs like "knotes" but from
|
||||
the commandline. Note can use different database-backends for
|
||||
notes-storage. It ships with a DBI-based mysql-module(which
|
||||
can also be used for other by DBI supported DBMS), another
|
||||
module, which uses a binary file for storage and a DBM module.
|
||||
Note supports since version 1.0.0 encryption(IDEA or DES)!
|
||||
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
|
||||
=over
|
||||
|
||||
=item I<-c, --config file>
|
||||
|
||||
Use another config file than the default ~/.noterc.
|
||||
|
||||
|
||||
=item I<-l, --list [topic]>
|
||||
|
||||
Lists all existing notes. If no topic were specified,
|
||||
it will display a list of all existing topics.
|
||||
See the section I<TOPICS> for details about topics.
|
||||
|
||||
=item I<-L, --longlist [topic]>
|
||||
|
||||
The same as I<-l> but prints also the timestamp of the notes.
|
||||
|
||||
|
||||
=item I<-t, --topic>
|
||||
|
||||
Prints a list of all topics as a tree.
|
||||
|
||||
|
||||
=item I<-T, --longtopic>
|
||||
|
||||
Prints the topic-tree with the notes under each topic.
|
||||
|
||||
|
||||
=item I<-s, --search string>
|
||||
|
||||
Searches for <string> trough the notes database. See the section
|
||||
I<SEARCHING> for details about the search engine.
|
||||
|
||||
|
||||
=item I<-e, --edit number>
|
||||
|
||||
Edit the note with the number <number> using your default editor
|
||||
or the one you specified in the config file.
|
||||
|
||||
|
||||
=item I<-d, --delete number>
|
||||
|
||||
Delete the note with the number <number>. You can delete multiple notes
|
||||
with one command. "1-4" deletes the notes 1,2,3,4. And "1,5,7" deletes
|
||||
the specified ones.
|
||||
|
||||
|
||||
=item I<-D, --Dump [file | -]>
|
||||
|
||||
Dumps all notes to the textfile <file>. If <file> is a "-" it will
|
||||
be printed out to standard output (STDOUT).
|
||||
|
||||
|
||||
=item I<-I, --Import file | ->
|
||||
|
||||
Imports a previously dumped textfile into the
|
||||
note database. Data will be appended by default.
|
||||
You can also specify a dash I<note -I -> instead of a <file>,
|
||||
which causes note, silently to read in a dump from STDIN.
|
||||
|
||||
|
||||
=item I<-o, --overwrite>
|
||||
|
||||
Only suitable for use with --Import. Overwrites an
|
||||
existing notedb. Use with care.
|
||||
|
||||
|
||||
=item I<-r, --raw>
|
||||
|
||||
Raw mode, output will not be formatted. Works not in interactive
|
||||
mode, only on cmd-line for list and display. That means, no colors
|
||||
will be used and no lines or titles.
|
||||
|
||||
|
||||
=item I<-i, --interactive>
|
||||
|
||||
Start note in interactive mode. See the section I<INTERACTIVE MODE>
|
||||
for details on this mode.
|
||||
|
||||
|
||||
=item I<--encrypt cleartext>
|
||||
|
||||
Encrypt the given clear text string. You would need that if you want to
|
||||
store the mysql password not in cleartext in the config(if you are using
|
||||
the mysql backend!).
|
||||
|
||||
|
||||
=item I<-h, --help>
|
||||
|
||||
Display this help screen.
|
||||
|
||||
|
||||
=item I<-v, --version>
|
||||
|
||||
Display the version number.
|
||||
|
||||
|
||||
=item B<->
|
||||
|
||||
If you run note just with one dash: B<note ->, then it will read in a new
|
||||
note from STDIN until EOF. This makes it possible to pipe text into a new note, i.e.:
|
||||
|
||||
cat sometextfile | note -
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 USAGE
|
||||
|
||||
=head2 GENERAL USAGE
|
||||
|
||||
If you don't know, how to run note, try "note -h" first.
|
||||
It will tell you all available commandline options.
|
||||
|
||||
To create a new note, simply run "note". You can enter
|
||||
the note (the length is by default limited to 4096 bytes,
|
||||
which you can change from your config file if you are using
|
||||
the binary backend, therwise there is no limitation).
|
||||
End by typing a . on a line itself. note will tell you the
|
||||
number of the note.
|
||||
|
||||
If you want to view the note, type "note 1", if the notenumber
|
||||
was 1.
|
||||
|
||||
If you want to get an overview of all notes, type "note -l".
|
||||
You will get a list of all notes, containing the number,
|
||||
the first line and the creation date. If topic-support is
|
||||
turned on (which is by default), then all subtopics under the
|
||||
current topic will be displayed first.
|
||||
If you want to get a listing of all
|
||||
If you want to see the timestamps, use "-L" instead of "-l".
|
||||
Read more about topics below in the section "Topics".
|
||||
You can also specify the topic which notes you want to see:
|
||||
"-l mytopic" does the trick.
|
||||
Additional, you might want to get an overview of your topic-
|
||||
strcture. You can use the command "-t" in this case, which
|
||||
will display a tree-view of your tpic-structure. You can
|
||||
use the command "-T" if you want to see the notes under each
|
||||
topic too. "-T" will also show the number of each note.
|
||||
|
||||
To edit a certain note, type "note -e 1". It will invoke your
|
||||
editor (vi or pico). You can edit it, after saving, note
|
||||
will store the changed note to the database.
|
||||
|
||||
Of course you can drop a certain note: "note -d 1" deletes
|
||||
note number 1. If a note in the middle or the beginning of
|
||||
the database will be deleted, note will recount the other
|
||||
existent notes. For example there are 3 notes, number 1, 2
|
||||
and 3. If you delete number 2, then number 3 will become
|
||||
number 2.
|
||||
You can also make use of the extended delete-syntax:
|
||||
To delete note 1 and 2, use "-d 1,2"
|
||||
To delete note 1,2 and 3, use "-d 1-3".
|
||||
|
||||
|
||||
|
||||
=head2 SEARCHING
|
||||
|
||||
If you cannot remember, which note you are looking for, you
|
||||
can use the search capability of note: "note -s <searchstring>".
|
||||
note will search the whole note database case insensitive for
|
||||
an occurence of this string and tell you the number and first-
|
||||
line it has.
|
||||
|
||||
You can extend the searchstring using B<AND>, B<OR> ( and ) and
|
||||
shell-like wildcards:
|
||||
|
||||
$ note -s "moses AND lenin"
|
||||
|
||||
or:
|
||||
|
||||
$ note -s "(mike OR arnold) AND (jackson OR schwarzenegger)"
|
||||
|
||||
If note finds a note, which first line is a topic, then it will
|
||||
display it's second line.
|
||||
|
||||
These rules apply for the interactive search too.
|
||||
|
||||
|
||||
|
||||
|
||||
=head2 TOPICS
|
||||
|
||||
If topic-support is turned on (which is by default), the various
|
||||
notes are sorted under various topics. There is no special database
|
||||
field for the topic. Instead the topic will be stored right in the
|
||||
note.
|
||||
If the first line of your note contains some text bordered by slashes
|
||||
(or whatever you prefer, set "TopicSeparator" in your config! default
|
||||
is slash), then note will consider it as the topic of this certain
|
||||
note. For examle:
|
||||
|
||||
B</TodoList/>
|
||||
|
||||
If you are using topics, no data after the topic is allowed, if there
|
||||
is any text, note will consider it as a subtopic! Therefore, don't for-
|
||||
get to put a newline after the topic-line.
|
||||
|
||||
The list-command will only show you notes under this topic. If you
|
||||
create a new note, it will automagically inserted under the current
|
||||
topic (note will prepend the string "/topicname/" to the text of your
|
||||
note).
|
||||
|
||||
You can create at any time from any point a new topic. Just create a new
|
||||
note and type the name of the new topic bordered by slashes (or
|
||||
TopicSeparator) at the first line of this note. After saving, there
|
||||
will be available a new topic with one note in it.
|
||||
|
||||
You can create as many subtopics as you like, the format is similar to
|
||||
a filesystem-path. An example, say, you want to create such a
|
||||
structure:
|
||||
|
||||
(root - top level)
|
||||
|
|
||||
|----test
|
||||
| |----subtopic
|
||||
| | |--note 1
|
||||
| | |--note 2
|
||||
| |
|
||||
| |--note 4
|
||||
|
|
||||
|--note 3
|
||||
|
||||
Then you may create those 4 new notes:
|
||||
|
||||
--- snip ---
|
||||
/test/subtopic/
|
||||
note 1
|
||||
--- snip ---
|
||||
/test/subtopic/
|
||||
note 2
|
||||
--- snip ---
|
||||
note 3
|
||||
--- snip ---
|
||||
/test/
|
||||
note 4
|
||||
--- snip ---
|
||||
|
||||
I hope, you got the point ;-)
|
||||
|
||||
If a note does not contain the "magic" /topic/ construction on the first
|
||||
line, it will be listed under the "root" of note, that is the point
|
||||
you are at the startup of note.
|
||||
|
||||
You can subsequently move a note without a topic to a certain topic.
|
||||
Simply edit it and insert at the first line the above mentioned
|
||||
construction.
|
||||
|
||||
Note: Please don't forget the prepending and appending a slash of a
|
||||
topic. You will get strange results without it!
|
||||
|
||||
|
||||
|
||||
|
||||
=head2 INTERACTIVE MODE
|
||||
|
||||
If you start note with the commandline flag B<-i>, then it starts
|
||||
with an interactive interface.
|
||||
It will start with a listing under the default top-topic ("/").
|
||||
You can enter the name of a topic to change to that topic. This works
|
||||
similar to a filesystem structure. The current topic will be
|
||||
displayed on the top of the screen.
|
||||
|
||||
The following commands are available:
|
||||
|
||||
=over
|
||||
|
||||
=item B<L [topic]>
|
||||
|
||||
This command lists all notes with a timestamp. If you specify a topic, it
|
||||
will only list the notes under this topic. If you are under a certain subtopic,
|
||||
then it will only display the notes under this topic.
|
||||
|
||||
=item B<l [topic]>
|
||||
|
||||
This commands behaves similar to B<L> but it does not display the timestamp.
|
||||
You can achieve the same result by simply pressing enter at any time.
|
||||
|
||||
|
||||
=item B<N>
|
||||
|
||||
You can create a new note by simply pressing B<N> or B<n>. You favorite
|
||||
editor will be started and you can enter your note text. If you are already
|
||||
under a topic then this new note will automatically go to this topic.
|
||||
note adds an aditional line to the top of the note with the topic. But
|
||||
you can of course specify your own topic.
|
||||
|
||||
Note will tell you which number it has assigned to the newly created note.
|
||||
|
||||
=item B<E number>
|
||||
|
||||
By entering B<E> or B<e> and a note-number you can edit an existing note
|
||||
using your favorite editor. This way you can also move an existing note
|
||||
from one topic to another one by editing the first line of the note.
|
||||
|
||||
|
||||
=item B<D number>
|
||||
|
||||
B<E> or B<e> deletes one or more existing note(s). It requires a note number
|
||||
or a set of note numbers. 1-5 and 1,7,9 are possible values.
|
||||
After one or more notes has been deleted note will recount all remaining notes.
|
||||
Say if you delete 1 and 2, then 3 will become 1, 4 will become 5 and so forth.
|
||||
|
||||
|
||||
=item B<S [expression]>
|
||||
|
||||
You can search for the occurence of a text in your notes-database with the
|
||||
command B<S> or B<s>. If you omit an expression note will ask you for one.
|
||||
|
||||
|
||||
=item B<T>
|
||||
|
||||
This prints a tree-view of your topic-structure. B<T> displays the tree with
|
||||
notes, B<t> displays just the topics without notes.
|
||||
|
||||
|
||||
=item B<cd topic>
|
||||
|
||||
Change the actual topic under which you are. This works identical like just
|
||||
entering the topic but it has some advantages. You can enter B<cd ..> if
|
||||
you want to go one level up in the topic-structure. And you can enter B<cd />
|
||||
to go to the top of the structure.
|
||||
Additional it is possible to enter a note-number instead of a topic name.
|
||||
For this feature to be active you need to set the config option B<ShortCd>
|
||||
to B<1> or B<yes>. If you use a number and the note with this number is
|
||||
under a certain topic then you will "cd" to this topic. This allows you
|
||||
to do kind of jumps over multiple levels of topics.
|
||||
|
||||
=item B<? or h>
|
||||
|
||||
Display a short help screen.
|
||||
|
||||
|
||||
=item B<Q>
|
||||
|
||||
Quit note.
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
=head2 BACKUP
|
||||
|
||||
You can also dump the contents of your note-database into a
|
||||
ASCII-textfile(I<-D>). You can use this file later to import it into
|
||||
your note-database(-I). This is usefull, if you want quickly trans-
|
||||
fer your notes from one host to another (i.e. you could mail
|
||||
your note-dump form your office to home and import it there
|
||||
for further use).
|
||||
|
||||
The dumps from the two versions of note are in the same format.
|
||||
Using dumps it is also possible to reinitialize your database. You
|
||||
can use the "-o" switch whcih causes note to overwrite your existing
|
||||
database. This is very handy if you changed heavily your config. And
|
||||
it is required, if you changed: encryption, db-driver, (binary-format)
|
||||
and the password. You can use the following command for reinitializing:
|
||||
|
||||
$ note -D - | note -o -I -
|
||||
|
||||
What the hell, does this do?! Step by step:
|
||||
|
||||
=over
|
||||
|
||||
=item *
|
||||
|
||||
B<note -D -> creates a note-database dump and prints it out
|
||||
to stantdard output.
|
||||
|
||||
=item *
|
||||
|
||||
B<|> this is the shell's pipe command. It takes the output
|
||||
of the left program and gives it to the right program as
|
||||
standard input.
|
||||
|
||||
=item *
|
||||
|
||||
B<note -o -I -> imports a note-database dump from standard
|
||||
input and overwrites an existing database.
|
||||
|
||||
=back
|
||||
|
||||
Before you use the B<-o> switch, I consider you to make a backup!
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
=head2 FORMATING
|
||||
|
||||
Another very nice feature is the possibility to format the note-text
|
||||
(as much as shell allows it). First, you can use the note-internal
|
||||
"magic-strings" for colorizing. Those strings looks much like HTML:
|
||||
"<green>here is a green line of text</green> no more green."
|
||||
As you see, the beginning of another color starts with a tag(kinda) of
|
||||
the color <colorname> and ens with an end tag </colorname>.
|
||||
|
||||
The following colors are available:
|
||||
black, red, green, yellow, blue, magenta, cyan and white.
|
||||
|
||||
Beside colorizing text, you can also create bold or underlined text! If
|
||||
you decide to use this (additional) feature, you need to set the
|
||||
Config-Option "FormatNotes" to 1 which turns it on.
|
||||
Usage is very straightforward, if a word (a word is defined as some
|
||||
text with at least one space surrounded) is between a magic mark-
|
||||
character. Here are the available things, you can do:
|
||||
|
||||
bold: **word**
|
||||
underlined:__word__
|
||||
inverse:{{word}}
|
||||
|
||||
The text will be formatted using the actually note-color.
|
||||
|
||||
|
||||
|
||||
=head1 ENCRYPTION
|
||||
|
||||
You can turn on encryption from the config file.
|
||||
Simply set UseEncryption to 1. Please note, that you need
|
||||
to decide, if you want to use encryption before the first use
|
||||
of note! If have already a note database and want to "migrate"
|
||||
to encryption, I suggest you to follow the directions in the
|
||||
file UPGRADE!
|
||||
|
||||
You can choose from different encryption algorythms. The default
|
||||
is IDEA, but DES or BLOWFISH is also possible. You need to have
|
||||
installed the following additional perl-modules on your system:
|
||||
MD5
|
||||
Crypt::IDEA
|
||||
Crypt::DES
|
||||
Crypt::CBC
|
||||
|
||||
After turning on encryption, note will ask you for a passphrase
|
||||
everytime it runs! It will *not* store this passphrase!
|
||||
So, don't forget it! Be careful!
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
You can use a configuration file with note but it is not required.
|
||||
Note will use default values if there is no config.
|
||||
|
||||
The default config file is B<~/.noterc>. You may specify another
|
||||
one with the commandline flag I<--config>.
|
||||
|
||||
Comments start with #, empty lines will be ignored.
|
||||
1 turns an option on, 0 turns it off.
|
||||
An option consists of an atribute-value pair separated
|
||||
by minimum one space (more spaces and/or tabs are allowed).
|
||||
|
||||
For a detailed explanation of each possible parameter take a look
|
||||
at the supplied sample configuration file in B<config/noterc>.
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
See the usage guide in the README or visit the note website:
|
||||
http://www.0x49.org.
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Thomas Linden <tom@daemon.de>
|
||||
|
||||
|
||||
|
||||
|
||||
=cut
|
||||