From: James Henrickson (ujlh@pool.info.sunyit.edu)
Date: 08/01/92


From: ujlh@pool.info.sunyit.edu (James Henrickson)
Subject: Re: Spreadsheet for Linux
Date: Sat, 1 Aug 1992 19:26:08 GMT

In article <1992Jul31.191834.18442@b11.b11.ingr.com> tracyre@infonode.ingr.com writes:
>
>There is interest, but you might want to know that a group at the
>University of Wisconsin at Milwaukee has developed an X version of sc.
>That might be a better starting-point for a linux-port since you will
>be insulated from much of the system-dependence by X.
>

Nope, it's not that easy. :)

It code must be preprocessor-dependent, because there is a macro definition
(in FOUR places) that doesn't get expanded in the desired way by gcc.

#define ctl(x) ('x'&037) {I'm not sure about the number.}

is the macro. At NUMEROUS places in the code, it is used as ctl(a),
ctl(b), ctl(c), etc, with the desired effect of expanding to ('a'&037),
('b'&037), ('c'&037), etc but gcc just keeps spitting out ('x'&037).
This results in a statement that goes something like "Same value in switch
statement."

I've been programming in C for a few years now but never mastered everything
about the preprocessor, so please tell me if there is a better solution.
(My attempts at token pasting and stringizing were unsuccessful.) I changed
the multiple macro definitions to

#define ctl(x) (x&037) {Whatever the number really is.}

and converted every instance of ctl(a), ctl(b), ctl(c), etc, to ctl('a'),
ctl('b'), ctl('c'), etc. This method took quite a while because this
macro is used a lot, but it now expands properly and works.

As I mentioned in an earlier post, xspread suffers from the same bug that
causes sc to display a row a asterisks in a cell containing a value that
is a multiple of ten.

-- 
Jim H.
*
* James L. Henrickson                                 ujlh@sunyit.edu
* "Yet another Jim in the Linux world."  :-)