[sword-devel] Re: Curses port

Peter Federighi sword-devel@crosswire.org
Thu, 10 Aug 2000 13:06:31 +0000


    Richard,

    Hi.  Sorry I didn't reply sooner.  I grabbed your source off your web
page and then spent considerable time trying to get it to compile.  I
finally gave up with the thought that maybe the version of ncurses that I
have is incompatible with STL/G++ templates (it certainly seemed that way,
though it should have been fine).
    So... I downloaded the latest stable version (5.1) and compiled it on my
system.  The I spent even longer trying to figure out why it didn't support
the underline attribute on my terminal but worked fine in an xterm or rxvt.
I finally traced it to the terminfo file that had the ncv option set to
disable underline in color mode.
    Thus, with that finally figured out, I proceeded to try to compile your
program.  I got further this time.  It produced errors because
'string::c_str()' returns 'const char*' while the function defs were for
'char*'.  GCC (or the version I have) is getting extremely picky about
arguments matching definitions exactly.  So I overrode the data type with
'(char *)' and everything compiled.  It also didn't like some method being
declared static.
    Would you like to know the files/lines that I changed?
    Now, to answer some of your questions...
    Yes, I do have ideas on how it should work.  Troy suggested the msdos
OLB as an interface, but I've never used it and have no idea what it was
like.  If it's anything like the Windows version I would prefer not to use
it.  I was mostly thinking of trying to do something close to the MacOS OLB
interface.  Not the greatest, but simple, and fairly easy (I bet I'll eat
that later) to convert to a terminal interface.
    No, I don't have any experience writing curses programs.  I have had to
dive into it here and there in order to make some poorly written interfaces
work properly.  That was a long time ago and I've replaced most such
programs with their X equivalent.  I was hoping to use this project as a
learning time as well.
    As far as curses goes, is the port supposed to be for plain curses or
can ncurses features be used (color, mouse, panels, etc.)?  If ncurses
features are allowed, how about using ncurses++?  I haven't looked into to
it too greatly, but since I got the latest ncurses anyway, I figured I'd
make sure the C++ bindings were compiled in so GCC wouldn't barf the way it
did before.  As an added bonus it compiles the ncurses++ library.
    For collaborating, I think private email would be best, so we don't fill
peoples inboxes.
    As for CVS.  I've never used it.  I don't have a clue as to how it
works.  Is it easy?  How much drive space does it take up?  Is it easier
than mailing patches to each other?  I think drive space is probably the
biggest factor right now, though not for much longer.
    I suppose you might want to know something about me and the system I'm
using.  Or maybe not, but I'm going to tell you anyway =).
    My system is currently:  Linux 2.2.16, GCC 2.95.3, Ncurses 5.1, GPM
1.17.8, XFree86 4.0, Rxvt 2.6.3, and Gnome 1.2.3.  The editors that I use
most are Joe 2.8 and NEdit 5.1.1.  I don't have Emacs.  As soon as I get a
larger HD I plan to install BeOS and FreeBSD (as well as Linux) and see how
they compare.  It might be good to experiment with compiling on BeOS anyway
(the thought of a text based BeOS program is sort of odd, though).
    My coding style is probably weird to most people.  I love 4 space
hardware tabs and long lines (I typically use a 132 column terminal or
larger).  I'll try to follow your coding style, if you'll put up with me
when I get frustrated and don't.  A pseudo example (spaces used instead of
tabs, notice the long line):
boolean A_Class::a_method(int32 arg)
    {
    uint8   extravar;

    if (arg >= 0)
        {
        cout << "Enter a number from 0-255: ";
        cin >> extravar;
        cout << "The name of the character corresponding to the number you
typed is: " << ASCII.character_name[extravar] << endl;
        return TRUE;
        }
    else
        return FALSE;
    }

    Well, about me:  I love my Lord!  My soul is saved by the blood of
Jesus!  I regularily attend Calvary Chapel of Olympia.  My favorite color is
emerald green.  My hobbies include: working on cars, writing the occasional
program, hiking, biking, and rock collecting.  My favorite musical styles
are techno/rave and 60s/70s Jesus people.  My favorite bands are Kraftwerk
and Danielson Famile.  I live in Olympia, WA where it rains more that
Seattle.  I hope someday to go back to school and study EE/CE.  I live with
four other guys in the eastside guys' house.  We formed it for mutual
edification and encouragement in the faith.  There's also the Tumwater guys'
house and the Ladies' house which is in downtown Olympia and is the location
of the fine motion picture 'Tragedy at Stranglewood'.  Perhaps if we ever
meet I'll show it to you =).

    This is probably a lot more info than you wanted.  I look forward to
hearing from you.
    God bless you.

    - Peter

raholcom@eos.ncsu.edu wrote:

> Peter,
>
> I am glad to see interest in the curses port.
> I have moved it to sourceforge under project irenaeus.
>
> Is there any particular part that you are interested in?
> Any particular application or enviroment?   Any ideas about how it should
> work?  Do you have experience with writing curses programs?
>
> What do you want to do?
>
> Richard Holcombe


__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com