I modified mrolo-1.3 (by gregg hanna) to take a more generic database file. I also added a perl script to select and print entries from the file. You may download it as mrolo-1.4.tar.gz.

From the original README :-

*Rolo is a set of card file database programs designed to be simple yet robust, and was born out of frustration with xrolo's and xrolodex's many menus. The main program is mrolo, the Motif based card file program, and there is also crolo, the curses based equivalent.

Some features of mrolo/crolo:

New in this release:

This software was developed on a Sun4 running SunOS 4.1.1. It should run on other systems, but it is not tested. I'm especially concerned about the portability of the regular expression code, the curses code, and the time code.

If the curses code gives you trouble, just don't build crolo. If the time code gives you trouble, define the NO_TIME symbol (i.e. -DNO_TIME) and the "as of:" option will be compiled out. (Right now, if you put "as of:" at the beginning of the line in a card then *rolo will put the current date/time on that line whenever the card is changed.) If the regular expression code gives you trouble, compile with the flag -DDONT_REGEXP. Also, contact me ( and I'll try to help make it work on your system.

The package contains five programs:

To compile the programs do as follows:


If you do not have xmkmf or imake, edit and use Makefile.std. If you have problems with compiling crolo, you might need to adjust the value of TERMLIBS. (Some systems don't need -ltermcap.)

To test it, you may want to uudecode and uncompress the file sample.Z.uu, which is a 100 entry pseudo-random sample file. (The option "-f sample" overrides the default ~/.rolo file.)

Once you're happy that the applications work install with:

make install

To install the man-pages:


Please send bug reports, feedback, and suggestions to

Thanks to: Bill James and Kral Ferch, my in-house testers. David Koblas for AppDefault handling and new backup code. William Shubert for the new icon. Bruce Bowler for helping make it more VMS friendly. John Silva for helping make it more HP friendly. Brian Rice for helping make it more Ultrix friendly. The anonymous soul who wrote the arrows.c file, which I adapted for crolo. AT&T and Rich Salz and Jim for the PD getopt(3). Everyone who generously offered their suggestions.

Copyright 1993 by gregg hanna. Permission is granted to use, modify, and distribute this program. Basically do anything you want with it, but if you want to use it or any part of it to make money you must get further permission from me.

Notes from the CHANGES file :-

Version 1.4 - deals with a file like this :-

Firstname: Andy
Lastname: Rabagliati
Homephone: 555-1212
Workphone: 444-2121

and treats the keywords Firstname, Lastname, Homephone, Workphone specially, putting them in the first 3 fields of mrolo.

Added a perl script rolodex, that can select records by keyword, and print any combination of fields. Any keywords can be used - just no colons: in it.

A help screen, but no manpage.

Usage: rolodex { -<switch> } { +<key> } { --<key> } { rolofiles }
 Plaintext database lister, switches :-

 -copy output in format to create another database
 -ret Output keys on separate lines
 -indent:n Indent everything by n
 -dups Flag any duplicates
 -ps:n Print using PostScript, pointsize n, column in points
 +<key> turns on printing for this key
 +<key>:n tries to print exactly to column n
 ++<key> turns on printing in Italic for this key
 ++<key>:n tries to print Italic exactly to column n
 +ret Put carriage return at this point in the output stream
 +all Print out all other keys, in any order, with keywords
 --<key> selects only records with this field present
 --<key>=<value> key must contain substring value

If you do not understand it, read the source !!