summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Edward Pax <charles.pax@gmail.com>2017-07-29 04:50:37 -0400
committerCharles Edward Pax <charles.pax@gmail.com>2017-07-29 04:50:37 -0400
commitfe81b34a0b0ac157fce7767ceffb0e9ee19db1a2 (patch)
tree7fda57d5ea0072c1973703b11d516b25b2986211
parent058dede703abfe0563e40b12ba8992b60f237cb6 (diff)
parentadcb4123f478d63c7a1cdefe08a39efce9d02f65 (diff)
Merge branch 'freeze' into doxygen
-rwxr-xr-xsrc/Makefile14
-rw-r--r--src/interp.c12
-rw-r--r--src/interp.h4
3 files changed, 15 insertions, 15 deletions
diff --git a/src/Makefile b/src/Makefile
index bc65db0..82b3ea5 100755
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,8 +1,8 @@
# Specify the name of the resulting executable file
-name = scim
+name = sim
# The base directory where everything should be installed.
-prefix = /usr/local
+prefix = /usr/local/stow/sc-im
EXDIR = $(prefix)/bin
HELPDIR = $(prefix)/share/$(name)
@@ -13,10 +13,10 @@ MANDIR = $(prefix)/share/man/man1
# Change these to your liking or use `make CC=gcc` etc
#CC = cc
-#YACC = bison -y
+YACC = bison -y
#SED = sed
-LDLIBS += -lm
+LDLIBS += -lm -lncursesw -lzip -lxml2
CFLAGS += -Wall -g
CFLAGS += -DNCURSES
@@ -26,7 +26,7 @@ CFLAGS += -DHELP_PATH=\"$(HELPDIR)\"
CFLAGS += -DLIBDIR=\"$(LIBDIR)\"
# Sets default pager, e.g. 'less' or 'more'
-CFLAGS += -DDFLT_PAGER=\"less\"
+CFLAGS += -DDFLT_PAGER=\"pager\"
# Sets default editor. Its use in case EDITOR env variable is not set
CFLAGS += -DDFLT_EDITOR=\"vim\"
# Comment out to disable color support
@@ -74,8 +74,8 @@ endif
# NOTE: libxlsxwriter is required for xlsx file export support
ifneq (,$(wildcard /usr/include/xlsxwriter.h))
- CFLAGS += -DXLSX_EXPORT
- LDLIBS += -lxlsxwriter
+# CFLAGS += -DXLSX_EXPORT
+# LDLIBS += -lxlsxwriter
endif
# Check for gnuplot existance
diff --git a/src/interp.c b/src/interp.c
index 58c121f..82810b9 100644
--- a/src/interp.c
+++ b/src/interp.c
@@ -633,7 +633,7 @@ double donval(char * colstr, double rowdoub) {
* The left pointer is a chain of ELIST nodes, the right pointer
* is a value.
*/
-double dolmax(struct enode * ep) {
+double dolmax(struct ent * e, struct enode * ep) {
register int count = 0;
register double maxval = 0; /* Assignment to shut up lint */
register struct enode * p;
@@ -641,7 +641,7 @@ double dolmax(struct enode * ep) {
cellerror = CELLOK;
for (p = ep; p; p = p->e.o.left) {
- v = eval(NULL, p->e.o.right);
+ v = eval(e, p->e.o.right);
if ( !count || v > maxval) {
maxval = v;
count++;
@@ -651,7 +651,7 @@ double dolmax(struct enode * ep) {
else return (double)0;
}
-double dolmin(struct enode * ep) {
+double dolmin(struct ent * e, struct enode * ep) {
register int count = 0;
register double minval = 0; /* Assignment to shut up lint */
register struct enode * p;
@@ -659,7 +659,7 @@ double dolmin(struct enode * ep) {
cellerror = CELLOK;
for (p = ep; p; p = p->e.o.left) {
- v = eval(NULL, p->e.o.right);
+ v = eval(e, p->e.o.right);
if ( !count || v < minval) {
minval = v;
count++;
@@ -960,8 +960,8 @@ double eval(register struct ent * ent, register struct enode * e) {
case ASCII: return (doascii(seval(ent, e->e.o.left)));
case SLEN: return (doslen(seval(ent, e->e.o.left)));
case EQS: return (doeqs(seval(ent, e->e.o.right), seval(ent, e->e.o.left)));
- case LMAX: return dolmax(e);
- case LMIN: return dolmin(e);
+ case LMAX: return dolmax(ent, e);
+ case LMIN: return dolmin(ent, e);
case NVAL: return (donval(seval(ent, e->e.o.left), eval(ent, e->e.o.right)));
case MYROW: return ((double) (gmyrow + rowoffset));
case MYCOL: return ((double) (gmycol + coloffset));
diff --git a/src/interp.h b/src/interp.h
index 110a39d..957363b 100644
--- a/src/interp.h
+++ b/src/interp.h
@@ -62,8 +62,8 @@ int doslen(char * s);
double doeqs(char * s1, char * s2);
struct ent * getent(char * colstr, double rowdoub);
double donval(char * colstr, double rowdoub);
-double dolmax(struct enode * ep);
-double dolmin(struct enode * ep);
+double dolmax(struct ent * e, struct enode * ep);
+double dolmin(struct ent * e, struct enode * ep);
//double eval(register struct enode *e);
double eval(register struct ent * ent, register struct enode * e);
double fn1_eval(double (* fn)(), double arg);