D: [iurt_root_command] chroot
Building target platforms: x86_64
Building for target x86_64
sh: line 4: [: -j8: integer expression expected
Installing /home/pterjan/rpmbuild/SRPMS/mathomatic-16.0.5-11.mga10.src.rpm
Executing(%mkbuilddir): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.dzpOwP
sh: line 4: [: -j8: integer expression expected
Executing(%prep): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.iqQwzd
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/mathomatic-16.0.5-build
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ cd /home/pterjan/rpmbuild/BUILD/mathomatic-16.0.5-build
+ rm -rf mathomatic-16.0.5
+ /usr/lib/rpm/rpmuncompress -x /home/pterjan/rpmbuild/SOURCES/mathomatic-16.0.5.tar.bz2
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd mathomatic-16.0.5
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ cat
+ mkdir -p lib
+ cp -a makefile.lib lib/makefile
+ mkdir -p mathomatic_secure
+ mkdir -p mathomatic_secure/lib
+ cp -a makefile.lib mathomatic_secure/lib/makefile
+ cp -a altproto.h am.c am.h blt.h cmds.c complex.c complex.h complex_lib.c diff.c externs.h factor.c factor_int.c gcd.c globals.c help.c includes.h integrate.c license.h list.c main.c parse.c poly.c proto.h simplify.c solve.c standard.h super.c unfactor.c makefile VERSION changes.txt makenews.sh mathomatic_secure
+ RPM_EC=0
++ jobs -p
+ exit 0
sh: line 4: [: -j8: integer expression expected
Executing(%build): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.nH3FDt
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/mathomatic-16.0.5-build
+ CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FFLAGS
+ FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd mathomatic-16.0.5
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ sed -e 's|-O3 |-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full |' makefile
+ /usr/bin/make -O -j48 V=1 VERBOSE=1 CC=gcc READLINE=1 'LDFLAGS=-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' AOUT=mathomatic -f makefile.opt
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o super.o super.c
In file included from includes.h:117,
                 from super.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
super.c: In function 'group_recurse':
super.c:31:1: warning: old-style function definition [-Wold-style-definition]
   31 | group_recurse(equation, np, loc, level)
      | ^~~~~~~~~~~~~
super.c: In function 'group_proc':
super.c:104:1: warning: old-style function definition [-Wold-style-definition]
  104 | group_proc(equation, np)
      | ^~~~~~~~~~
super.c: In function 'fractions_and_group':
super.c:120:1: warning: old-style function definition [-Wold-style-definition]
  120 | fractions_and_group(equation, np)
      | ^~~~~~~~~~~~~~~~~~~
super.c: In function 'make_fractions_and_group':
super.c:141:1: warning: old-style function definition [-Wold-style-definition]
  141 | make_fractions_and_group(n)
      | ^~~~~~~~~~~~~~~~~~~~~~~~
super.c: In function 'super_factor':
super.c:187:1: warning: old-style function definition [-Wold-style-definition]
  187 | super_factor(equation, np, start_flag)
      | ^~~~~~~~~~~~
super.c: In function 'sf_recurse':
super.c:201:1: warning: old-style function definition [-Wold-style-definition]
  201 | sf_recurse(equation, np, loc, level, start_flag)
      | ^~~~~~~~~~
super.c: In function 'sf_sub':
super.c:270:1: warning: old-style function definition [-Wold-style-definition]
  270 | sf_sub(equation, np, loc, i1, n1, i2, n2, level, start_flag)
      | ^~~~~~
make: *** [<builtin>: super.o] Error 1
make: *** Waiting for unfinished jobs....
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o globals.o globals.c
In file included from includes.h:117,
                 from globals.c:29:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
make: *** [<builtin>: globals.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o complex.o complex.c
In file included from includes.h:117,
                 from complex.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
complex.c: In function 'rect_to_polar':
complex.c:33:1: warning: old-style function definition [-Wold-style-definition]
   33 | rect_to_polar(x, y, radiusp, thetap)
      | ^~~~~~~~~~~~~
complex.c: At top level:
complex.c:44:1: error: conflicting types for 'roots_cmd'; have 'int(void)'
   44 | roots_cmd(cp)
      | ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
complex.c: In function 'roots_cmd':
complex.c:44:1: warning: old-style function definition [-Wold-style-definition]
   44 | roots_cmd(cp)
      | ^~~~~~~~~
complex.c:60:27: error: too many arguments to function 'get_string'; expected 0, have 2
   60 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL)
      |                           ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
complex.c:69:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
   69 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
complex.c:72:27: error: too many arguments to function 'get_string'; expected 0, have 2
   72 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL)
      |                           ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
complex.c:80:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
   80 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
complex.c:83:27: error: too many arguments to function 'get_string'; expected 0, have 2
   83 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL)
      |                           ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
complex.c: In function 'complex_root_simp':
complex.c:155:1: warning: old-style function definition [-Wold-style-definition]
  155 | complex_root_simp(equation, np)
      | ^~~~~~~~~~~~~~~~~
complex.c: In function 'approximate_complex_roots':
complex.c:231:1: warning: old-style function definition [-Wold-style-definition]
  231 | approximate_complex_roots(equation, np)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
complex.c: In function 'get_constant':
complex.c:253:1: warning: old-style function definition [-Wold-style-definition]
  253 | get_constant(p1, n, dp)
      | ^~~~~~~~~~~~
complex.c: In function 'parse_complex':
complex.c:326:1: warning: old-style function definition [-Wold-style-definition]
  326 | parse_complex(p1, n, cp)
      | ^~~~~~~~~~~~~
make: *** [<builtin>: complex.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o factor_int.o factor_int.c
In file included from includes.h:117,
                 from factor_int.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
factor_int.c: In function 'factor_one':
factor_int.c:48:1: warning: old-style function definition [-Wold-style-definition]
   48 | factor_one(value)
      | ^~~~~~~~~~
factor_int.c: In function 'try_factor':
factor_int.c:104:1: warning: old-style function definition [-Wold-style-definition]
  104 | try_factor(arg)
      | ^~~~~~~~~~
factor_int.c: In function 'factor_int':
factor_int.c:226:1: warning: old-style function definition [-Wold-style-definition]
  226 | factor_int(equation, np)
      | ^~~~~~~~~~
factor_int.c: In function 'factor_int_equation':
factor_int.c:297:1: warning: old-style function definition [-Wold-style-definition]
  297 | factor_int_equation(n)
      | ^~~~~~~~~~~~~~~~~~~
factor_int.c: In function 'list_factor':
factor_int.c:315:1: warning: old-style function definition [-Wold-style-definition]
  315 | list_factor(equation, np, factor_flag)
      | ^~~~~~~~~~~
factor_int.c: In function 'factor_constants':
factor_int.c:355:1: warning: old-style function definition [-Wold-style-definition]
  355 | factor_constants(equation, np, level_code)
      | ^~~~~~~~~~~~~~~~
factor_int.c: In function 'fc_recurse':
factor_int.c:366:1: warning: old-style function definition [-Wold-style-definition]
  366 | fc_recurse(equation, np, loc, level, level_code)
      | ^~~~~~~~~~
factor_int.c:425:49: error: too many arguments to function 'gcd_verified'; expected 0, have 2
  425 |                                         cogcd = gcd_verified(d, cogcd);
      |                                                 ^~~~~~~~~~~~ ~
altproto.h:24:24: note: declared here
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
factor_int.c:458:73: error: too many arguments to function 'gcd_verified'; expected 0, have 2
  458 |                                                                 cogcd = gcd_verified(d, cogcd);
      |                                                                         ^~~~~~~~~~~~ ~
altproto.h:24:24: note: declared here
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
factor_int.c:476:49: error: too many arguments to function 'gcd_verified'; expected 0, have 2
  476 |                                         cogcd = gcd_verified(1.0, cogcd);
      |                                                 ^~~~~~~~~~~~ ~~~
altproto.h:24:24: note: declared here
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
make: *** [<builtin>: factor_int.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o main.o main.c
In file included from includes.h:117,
                 from main.c:72:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
main.c: In function 'usage':
main.c:88:1: warning: old-style function definition [-Wold-style-definition]
   88 | usage(fp)
      | ^~~~~
main.c: In function 'main':
main.c:113:1: warning: old-style function definition [-Wold-style-definition]
  113 | main(argc, argv)
      | ^~~~
main.c: In function 'main_io_loop':
main.c:412:27: error: too many arguments to function 'get_string'; expected 0, have 2
  412 |                 if ((cp = get_string((char *) tlhs, n_tokens * sizeof(token_type))) == NULL)
      |                           ^~~~~~~~~~ ~~~~~~~~~~~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
main.c: In function 'set_signals':
main.c:425:1: warning: old-style function definition [-Wold-style-definition]
  425 | set_signals(time_out_seconds)
      | ^~~~~~~~~~~
main.c: In function 'fphandler':
main.c:465:1: warning: old-style function definition [-Wold-style-definition]
  465 | fphandler(sig)
      | ^~~~~~~~~
main.c: In function 'inthandler':
main.c:479:1: warning: old-style function definition [-Wold-style-definition]
  479 | inthandler(sig)
      | ^~~~~~~~~~
main.c: In function 'exithandler':
main.c:516:1: warning: old-style function definition [-Wold-style-definition]
  516 | exithandler(sig)
      | ^~~~~~~~~~~
main.c: In function 'resizehandler':
main.c:527:1: warning: old-style function definition [-Wold-style-definition]
  527 | resizehandler(sig)
      | ^~~~~~~~~~~~~
main.c: In function 'exit_program':
main.c:539:1: warning: old-style function definition [-Wold-style-definition]
  539 | exit_program(exit_value)
      | ^~~~~~~~~~~~
make: *** [<builtin>: main.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o unfactor.o unfactor.c
In file included from includes.h:117,
                 from unfactor.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
unfactor.c: In function 'uf_tsimp':
unfactor.c:35:1: warning: old-style function definition [-Wold-style-definition]
   35 | uf_tsimp(equation, np)
      | ^~~~~~~~
unfactor.c: In function 'uf_power':
unfactor.c:57:1: warning: old-style function definition [-Wold-style-definition]
   57 | uf_power(equation, np)
      | ^~~~~~~~
unfactor.c: In function 'uf_pplus':
unfactor.c:78:1: warning: old-style function definition [-Wold-style-definition]
   78 | uf_pplus(equation, np)
      | ^~~~~~~~
unfactor.c: In function 'uf_allpower':
unfactor.c:97:1: warning: old-style function definition [-Wold-style-definition]
   97 | uf_allpower(equation, np)
      | ^~~~~~~~~~~
unfactor.c: In function 'uf_repeat':
unfactor.c:115:1: warning: old-style function definition [-Wold-style-definition]
  115 | uf_repeat(equation, np)
      | ^~~~~~~~~
unfactor.c: In function 'uf_repeat_always':
unfactor.c:135:1: warning: old-style function definition [-Wold-style-definition]
  135 | uf_repeat_always(equation, np)
      | ^~~~~~~~~~~~~~~~
unfactor.c: In function 'uf_simp':
unfactor.c:152:1: warning: old-style function definition [-Wold-style-definition]
  152 | uf_simp(equation, np)
      | ^~~~~~~
unfactor.c: In function 'uf_simp_no_repeat':
unfactor.c:167:1: warning: old-style function definition [-Wold-style-definition]
  167 | uf_simp_no_repeat(equation, np)
      | ^~~~~~~~~~~~~~~~~
unfactor.c: In function 'ufactor':
unfactor.c:179:1: warning: old-style function definition [-Wold-style-definition]
  179 | ufactor(equation, np)
      | ^~~~~~~
unfactor.c: In function 'no_divide':
unfactor.c:195:1: warning: old-style function definition [-Wold-style-definition]
  195 | no_divide(equation, np)
      | ^~~~~~~~~
unfactor.c: In function 'uf_times':
unfactor.c:222:1: warning: old-style function definition [-Wold-style-definition]
  222 | uf_times(equation, np)
      | ^~~~~~~~
unfactor.c: In function 'sub_ufactor':
unfactor.c:253:1: warning: old-style function definition [-Wold-style-definition]
  253 | sub_ufactor(equation, np, ii)
      | ^~~~~~~~~~~
unfactor.c: In function 'unf_sub':
unfactor.c:296:1: warning: old-style function definition [-Wold-style-definition]
  296 | unf_sub(equation, np, b1, loc, e1, level, ii)
      | ^~~~~~~
unfactor.c: In function 'usp_sub':
unfactor.c:529:1: warning: old-style function definition [-Wold-style-definition]
  529 | usp_sub(equation, np, i)
      | ^~~~~~~
unfactor.c: In function 'unsimp_power':
unfactor.c:576:1: warning: old-style function definition [-Wold-style-definition]
  576 | unsimp_power(equation, np)
      | ^~~~~~~~~~~~
unfactor.c: In function 'uf_neg_help':
unfactor.c:667:1: warning: old-style function definition [-Wold-style-definition]
  667 | uf_neg_help(equation, np)
      | ^~~~~~~~~~~
unfactor.c: In function 'patch_root_div':
unfactor.c:710:1: warning: old-style function definition [-Wold-style-definition]
  710 | patch_root_div(equation, np)
      | ^~~~~~~~~~~~~~
make: *** [<builtin>: unfactor.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o integrate.o integrate.c
In file included from includes.h:117,
                 from integrate.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
integrate.c: In function 'make_powers':
integrate.c:38:1: warning: old-style function definition [-Wold-style-definition]
   38 | make_powers(equation, np, v)
      | ^~~~~~~~~~~
integrate.c: In function 'int_dispatch':
integrate.c:84:1: warning: old-style function definition [-Wold-style-definition]
   84 | int_dispatch(equation, np, v, func)
      | ^~~~~~~~~~~~
integrate.c: In function 'integrate_sub':
integrate.c:122:1: warning: old-style function definition [-Wold-style-definition]
  122 | integrate_sub(equation, np, loc, eloc, v)
      | ^~~~~~~~~~~~~
integrate.c: At top level:
integrate.c:246:1: error: conflicting types for 'integrate_cmd'; have 'int(void)'
  246 | integrate_cmd(cp)
      | ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
integrate.c: In function 'integrate_cmd':
integrate.c:246:1: warning: old-style function definition [-Wold-style-definition]
  246 | integrate_cmd(cp)
      | ^~~~~~~~~~~~~
integrate.c:267:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  267 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
integrate.c:299:30: error: too many arguments to function 'parse_var2'; expected 0, have 2
  299 |                         cp = parse_var2(&v, cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
integrate.c:314:22: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  314 |                 cp = skip_comma_space(cp);
      |                      ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
integrate.c:316:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  316 |                 cp = parse_expr(tlhs, &n_tlhs, cp, false);
      |                      ^~~~~~~~~~ ~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
integrate.c:323:22: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  323 |                 cp = skip_comma_space(cp);
      |                      ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
integrate.c:325:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  325 |                 cp = parse_expr(trhs, &n_trhs, cp, false);
      |                      ^~~~~~~~~~ ~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
integrate.c:373:29: error: too many arguments to function 'parse_var'; expected 0, have 2
  373 |                         if (parse_var(&dest[n1].token.variable, var_name_buf) == NULL) {
      |                             ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
integrate.c:427:25: error: too many arguments to function 'parse_var'; expected 0, have 2
  427 |                         parse_var(&lhs[i][0].token.variable, var_str);
      |                         ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
integrate.c: In function 'laplace_sub':
integrate.c:440:1: warning: old-style function definition [-Wold-style-definition]
  440 | laplace_sub(equation, np, loc, eloc, v)
      | ^~~~~~~~~~~
integrate.c: In function 'inv_laplace_sub':
integrate.c:526:1: warning: old-style function definition [-Wold-style-definition]
  526 | inv_laplace_sub(equation, np, loc, eloc, v)
      | ^~~~~~~~~~~~~~~
integrate.c: At top level:
integrate.c:592:1: error: conflicting types for 'laplace_cmd'; have 'int(void)'
  592 | laplace_cmd(cp)
      | ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
integrate.c: In function 'laplace_cmd':
integrate.c:592:1: warning: old-style function definition [-Wold-style-definition]
  592 | laplace_cmd(cp)
      | ^~~~~~~~~~~
integrate.c:625:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  625 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
integrate.c:628:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
  628 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
integrate.c: At top level:
integrate.c:677:1: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
  677 | nintegrate_cmd(cp)
      | ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
integrate.c: In function 'nintegrate_cmd':
integrate.c:677:1: warning: old-style function definition [-Wold-style-definition]
  677 | nintegrate_cmd(cp)
      | ^~~~~~~~~~~~~~
integrate.c:715:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  715 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
integrate.c:718:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
  718 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
integrate.c:723:38: error: too many arguments to function 'decstrtol'; expected 0, have 2
  723 |                         iterations = decstrtol(cp, &cp);
      |                                      ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
integrate.c:732:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  732 |                 cp = parse_expr(tlhs, &n_tlhs, cp, false);
      |                      ^~~~~~~~~~ ~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
integrate.c:739:22: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  739 |                 cp = skip_comma_space(cp);
      |                      ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
integrate.c:741:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  741 |                 cp = parse_expr(trhs, &n_trhs, cp, false);
      |                      ^~~~~~~~~~ ~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
integrate.c:991:25: error: too many arguments to function 'parse_var'; expected 0, have 2
  991 |                         parse_var(&lhs[i][0].token.variable, var_str);
      |                         ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
make: *** [<builtin>: integrate.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o diff.o diff.c
In file included from includes.h:117,
                 from diff.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
diff.c: In function 'differentiate':
diff.c:39:1: warning: old-style function definition [-Wold-style-definition]
   39 | differentiate(equation, np, v)
      | ^~~~~~~~~~~~~
diff.c: In function 'd_recurse':
diff.c:70:1: warning: old-style function definition [-Wold-style-definition]
   70 | d_recurse(equation, np, loc, level, v)
      | ^~~~~~~~~
diff.c: At top level:
diff.c:307:1: error: conflicting types for 'derivative_cmd'; have 'int(void)'
  307 | derivative_cmd(cp)
      | ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
diff.c: In function 'derivative_cmd':
diff.c:307:1: warning: old-style function definition [-Wold-style-definition]
  307 | derivative_cmd(cp)
      | ^~~~~~~~~~~~~~
diff.c:323:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  323 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
diff.c:343:30: error: too many arguments to function 'skip_param'; expected 0, have 1
  343 |                         cp = skip_param(cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
diff.c:347:38: error: too many arguments to function 'parse_var2'; expected 0, have 2
  347 |                                 cp = parse_var2(&v, cp);
      |                                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
diff.c:354:33: error: too many arguments to function 'decstrtol'; expected 0, have 2
  354 |                         order = decstrtol(cp, &cp);
      |                                 ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
diff.c:428:33: error: too many arguments to function 'parse_var'; expected 0, have 2
  428 |                                 parse_var(&lhs[i][0].token.variable, var_str);
      |                                 ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
diff.c: At top level:
diff.c:440:1: error: conflicting types for 'extrema_cmd'; have 'int(void)'
  440 | extrema_cmd(cp)
      | ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
diff.c: In function 'extrema_cmd':
diff.c:440:1: warning: old-style function definition [-Wold-style-definition]
  440 | extrema_cmd(cp)
      | ^~~~~~~~~~~
diff.c:467:30: error: too many arguments to function 'parse_var2'; expected 0, have 2
  467 |                         cp = parse_var2(&v, cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
diff.c:473:33: error: too many arguments to function 'decstrtol'; expected 0, have 2
  473 |                         order = decstrtol(cp, &cp);
      |                                 ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
diff.c: At top level:
diff.c:530:1: error: conflicting types for 'taylor_cmd'; have 'int(void)'
  530 | taylor_cmd(cp)
      | ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
diff.c: In function 'taylor_cmd':
diff.c:530:1: warning: old-style function definition [-Wold-style-definition]
  530 | taylor_cmd(cp)
      | ^~~~~~~~~~
diff.c:551:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  551 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
diff.c:576:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
  576 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
diff.c:582:25: error: too many arguments to function 'decstrtol'; expected 0, have 2
  582 |                 order = decstrtol(cp, &cp1);
      |                         ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
diff.c:583:28: error: too many arguments to function 'skip_param'; expected 0, have 1
  583 |                 if (cp1 != skip_param(cp) || order < 0) {
      |                            ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
diff.c:609:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  609 |                 cp = parse_expr(lhs[our], &our_nlhs, cp, true);
      |                      ^~~~~~~~~~ ~~~~~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
diff.c:626:28: error: too many arguments to function 'get_string'; expected 0, have 2
  626 |                 if ((cp1 = get_string(buf, sizeof(buf))) == NULL)
      |                            ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
diff.c:630:33: error: too many arguments to function 'decstrtol'; expected 0, have 2
  630 |                         order = decstrtol(cp1, &cp);
      |                                 ^~~~~~~~~ ~~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
diff.c: At top level:
diff.c:768:1: error: conflicting types for 'limit_cmd'; have 'int(void)'
  768 | limit_cmd(cp)
      | ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
diff.c: In function 'limit_cmd':
diff.c:768:1: warning: old-style function definition [-Wold-style-definition]
  768 | limit_cmd(cp)
      | ^~~~~~~~~
diff.c:788:17: error: too many arguments to function 'parse_var'; expected 0, have 2
  788 |                 parse_var(&lhs[cur_equation][0].token.variable, "limit");
      |                 ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
diff.c:797:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
  797 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
diff.c:817:22: error: too many arguments to function 'skip_space'; expected 0, have 1
  817 |                 cp = skip_space(cp + 1);
      |                      ^~~~~~~~~~ ~~~~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
diff.c:821:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  821 |                 cp = parse_expr(tes, &n_tes, cp, true);
      |                      ^~~~~~~~~~ ~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
make: *** [<builtin>: diff.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o parse.o parse.c
In file included from includes.h:117,
                 from parse.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
parse.c: In function 'str_tolower':
parse.c:31:1: warning: old-style function definition [-Wold-style-definition]
   31 | str_tolower(cp)
      | ^~~~~~~~~~~
parse.c: In function 'put_up_arrow':
parse.c:48:1: warning: old-style function definition [-Wold-style-definition]
   48 | put_up_arrow(cnt, cp)
      | ^~~~~~~~~~~~
parse.c: In function 'isvarchar':
parse.c:70:1: warning: old-style function definition [-Wold-style-definition]
   70 | isvarchar(ch)
      | ^~~~~~~~~
parse.c: In function 'paren_increment':
parse.c:84:1: warning: old-style function definition [-Wold-style-definition]
   84 | paren_increment(ch)
      | ^~~~~~~~~~~~~~~
parse.c: In function 'is_mathomatic_operator':
parse.c:100:1: warning: old-style function definition [-Wold-style-definition]
  100 | is_mathomatic_operator(ch)
      | ^~~~~~~~~~~~~~~~~~~~~~
parse.c: In function 'binary_parenthesize':
parse.c:122:1: warning: old-style function definition [-Wold-style-definition]
  122 | binary_parenthesize(p1, n, i)
      | ^~~~~~~~~~~~~~~~~~~
parse.c: In function 'handle_negate':
parse.c:164:1: warning: old-style function definition [-Wold-style-definition]
  164 | handle_negate(equation, np)
      | ^~~~~~~~~~~~~
parse.c: In function 'give_priority':
parse.c:189:1: warning: old-style function definition [-Wold-style-definition]
  189 | give_priority(equation, np)
      | ^~~~~~~~~~~~~
parse.c: At top level:
parse.c:239:1: error: conflicting types for 'parse_section'; have 'char *(void)'
  239 | parse_section(equation, np, cp, allow_space)
      | ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
parse.c: In function 'parse_section':
parse.c:239:1: warning: old-style function definition [-Wold-style-definition]
  239 | parse_section(equation, np, cp, allow_space)
      | ^~~~~~~~~~~~~
parse.c:555:38: error: too many arguments to function 'parse_var'; expected 0, have 2
  555 |                                 cp = parse_var(&equation[n].token.variable, cp);
      |                                      ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
parse.c: At top level:
parse.c:607:1: error: conflicting types for 'parse_equation'; have 'char *(void)'
  607 | parse_equation(n, cp)
      | ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
parse.c: In function 'parse_equation':
parse.c:607:1: warning: old-style function definition [-Wold-style-definition]
  607 | parse_equation(n, cp)
      | ^~~~~~~~~~~~~~
parse.c:611:19: error: too many arguments to function 'parse_expr'; expected 0, have 4
  611 |         if ((cp = parse_expr(lhs[n], &n_lhs[n], cp, true)) != NULL) {
      |                   ^~~~~~~~~~ ~~~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
parse.c:612:27: error: too many arguments to function 'parse_expr'; expected 0, have 4
  612 |                 if ((cp = parse_expr(rhs[n], &n_rhs[n], cp, true)) != NULL) {
      |                           ^~~~~~~~~~ ~~~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
parse.c: At top level:
parse.c:629:1: error: conflicting types for 'parse_expr'; have 'char *(void)'
  629 | parse_expr(equation, np, cp, allow_space)
      | ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
parse.c: In function 'parse_expr':
parse.c:629:1: warning: old-style function definition [-Wold-style-definition]
  629 | parse_expr(equation, np, cp, allow_space)
      | ^~~~~~~~~~
parse.c:640:14: error: too many arguments to function 'parse_section'; expected 0, have 4
  640 |         cp = parse_section(equation, np, cp, allow_space);
      |              ^~~~~~~~~~~~~ ~~~~~~~~
parse.c:239:1: note: declared here
  239 | parse_section(equation, np, cp, allow_space)
      | ^~~~~~~~~~~~~
parse.c: At top level:
parse.c:654:1: error: conflicting types for 'parse_var'; have 'char *(void)'
  654 | parse_var(vp, cp)
      | ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
parse.c: In function 'parse_var':
parse.c:654:1: warning: old-style function definition [-Wold-style-definition]
  654 | parse_var(vp, cp)
      | ^~~~~~~~~
parse.c:667:28: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(const char *, const char *)' [-Wincompatible-pointer-types]
  667 |                 strcmpfunc = strcmp;
      |                            ^
In file included from includes.h:91:
/usr/include/string.h:156:12: note: 'strcmp' declared here
  156 | extern int strcmp (const char *__s1, const char *__s2)
      |            ^~~~~~
parse.c:669:28: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(const char *, const char *)' [-Wincompatible-pointer-types]
  669 |                 strcmpfunc = strcasecmp;
      |                            ^
In file included from /usr/include/string.h:462:
/usr/include/strings.h:116:12: note: 'strcasecmp' declared here
  116 | extern int strcasecmp (const char *__s1, const char *__s2)
      |            ^~~~~~~~~~
parse.c:703:21: error: too many arguments to function 'strcmpfunc'; expected 0, have 2
  703 |         } else if ((*strcmpfunc)(buf, "sign") == 0) {
      |                    ~^~~~~~~~~~~~ ~~~
parse.c:743:22: error: too many arguments to function 'strcmpfunc'; expected 0, have 2
  743 |                 if ((*strcmpfunc)(buf, "i") == 0) {
      |                     ~^~~~~~~~~~~~ ~~~
parse.c:747:22: error: too many arguments to function 'strcmpfunc'; expected 0, have 2
  747 |                 if ((*strcmpfunc)(buf, "e") == 0) {
      |                     ~^~~~~~~~~~~~ ~~~
parse.c:751:22: error: too many arguments to function 'strcmpfunc'; expected 0, have 2
  751 |                 if ((*strcmpfunc)(buf, "pi") == 0) {
      |                     ~^~~~~~~~~~~~ ~~~
parse.c:761:30: error: too many arguments to function 'strcmpfunc'; expected 0, have 2
  761 |                         if ((*strcmpfunc)(buf, var_names[i]) == 0) {
      |                             ~^~~~~~~~~~~~ ~~~
parse.c: In function 'remove_trailing_spaces':
parse.c:809:1: warning: old-style function definition [-Wold-style-definition]
  809 | remove_trailing_spaces(cp)
      | ^~~~~~~~~~~~~~~~~~~~~~
parse.c: In function 'set_error_level':
parse.c:827:1: warning: old-style function definition [-Wold-style-definition]
  827 | set_error_level(cp)
      | ^~~~~~~~~~~~~~~
parse.c: In function 'var_is_const':
parse.c:865:1: warning: old-style function definition [-Wold-style-definition]
  865 | var_is_const(v, dp)
      | ^~~~~~~~~~~~
parse.c: In function 'subst_constants':
parse.c:888:1: warning: old-style function definition [-Wold-style-definition]
  888 | subst_constants(equation, np)
      | ^~~~~~~~~~~~~~~
parse.c: In function 'my_strlcpy':
parse.c:918:1: warning: old-style function definition [-Wold-style-definition]
  918 | my_strlcpy(dest, src, n)
      | ^~~~~~~~~~
make: *** [<builtin>: parse.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o list.o list.c
In file included from includes.h:117,
                 from list.c:26:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
list.c: In function 'set_color':
list.c:141:1: warning: old-style function definition [-Wold-style-definition]
  141 | set_color(color)
      | ^~~~~~~~~
list.c: In function 'default_color':
list.c:184:1: warning: old-style function definition [-Wold-style-definition]
  184 | default_color(set_no_color_flag)
      | ^~~~~~~~~~~~~
list.c: In function 'trim_zeros':
list.c:241:1: warning: old-style function definition [-Wold-style-definition]
  241 | trim_zeros(buf)
      | ^~~~~~~~~~
list.c: In function 'list1_sub':
list.c:265:1: warning: old-style function definition [-Wold-style-definition]
  265 | list1_sub(n, export_flag)
      | ^~~~~~~~~
list.c: In function 'list_sub':
list.c:300:1: warning: old-style function definition [-Wold-style-definition]
  300 | list_sub(n)
      | ^~~~~~~~
list.c: In function 'list_debug':
list.c:320:1: warning: old-style function definition [-Wold-style-definition]
  320 | list_debug(level, p1, n1, p2, n2)
      | ^~~~~~~~~~
list.c: In function 'var_name':
list.c:348:1: warning: old-style function definition [-Wold-style-definition]
  348 | var_name(v)
      | ^~~~~~~~
list.c: In function 'list_var':
list.c:374:1: warning: old-style function definition [-Wold-style-definition]
  374 | list_var(v, lang_code)
      | ^~~~~~~~
list.c: In function 'list_proc':
list.c:504:1: warning: old-style function definition [-Wold-style-definition]
  504 | list_proc(p1, n, export_flag)
      | ^~~~~~~~~
list.c: At top level:
list.c:520:1: error: conflicting types for 'list_equation'; have 'char *(void)'
  520 | list_equation(n, export_flag)
      | ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
list.c: In function 'list_equation':
list.c:520:1: warning: old-style function definition [-Wold-style-definition]
  520 | list_equation(n, export_flag)
      | ^~~~~~~~~~~~~
list.c: At top level:
list.c:558:1: error: conflicting types for 'list_expression'; have 'char *(void)'
  558 | list_expression(p1, n, export_flag)
      | ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
list.c: In function 'list_expression':
list.c:558:1: warning: old-style function definition [-Wold-style-definition]
  558 | list_expression(p1, n, export_flag)
      | ^~~~~~~~~~~~~~~
list.c: In function 'list_string':
list.c:589:1: warning: old-style function definition [-Wold-style-definition]
  589 | list_string(p1, n, string, export_flag)
      | ^~~~~~~~~~~
list.c: In function 'list_string_sub':
list.c:602:1: warning: old-style function definition [-Wold-style-definition]
  602 | list_string_sub(p1, n, outflag, string, export_flag)
      | ^~~~~~~~~~~~~~~
list.c: In function 'int_expr':
list.c:756:1: warning: old-style function definition [-Wold-style-definition]
  756 | int_expr(p1, n)
      | ^~~~~~~~
list.c: In function 'list_code_equation':
list.c:790:1: warning: old-style function definition [-Wold-style-definition]
  790 | list_code_equation(en, language, int_flag)
      | ^~~~~~~~~~~~~~~~~~
list.c: In function 'string_code_equation':
list.c:823:1: warning: old-style function definition [-Wold-style-definition]
  823 | string_code_equation(en, language, int_flag)
      | ^~~~~~~~~~~~~~~~~~~~
list.c: In function 'list_code':
list.c:867:1: warning: old-style function definition [-Wold-style-definition]
  867 | list_code(equation, np, outflag, string, language, int_flag)
      | ^~~~~~~~~
list.c: At top level:
list.c:1024:1: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
 1024 | flist_equation_string(n)
      | ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
list.c: In function 'flist_equation_string':
list.c:1024:1: warning: old-style function definition [-Wold-style-definition]
 1024 | flist_equation_string(n)
      | ^~~~~~~~~~~~~~~~~~~~~
list.c: In function 'flist_equation':
list.c:1099:1: warning: old-style function definition [-Wold-style-definition]
 1099 | flist_equation(n)
      | ^~~~~~~~~~~~~~
list.c: In function 'flist_sub':
list.c:1202:1: warning: old-style function definition [-Wold-style-definition]
 1202 | flist_sub(p1, n, out_flag, string, sbuffer_size, pos, highp, lowp)
      | ^~~~~~~~~
list.c: In function 'flist_recurse':
list.c:1221:1: warning: old-style function definition [-Wold-style-definition]
 1221 | flist_recurse(p1, n, out_flag, string, sbuffer_size, line, pos, cur_level, highp, lowp)
      | ^~~~~~~~~~~~~
make: *** [<builtin>: list.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o solve.o solve.c
In file included from includes.h:117,
                 from solve.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
solve.c: In function 'solve_espace':
solve.c:47:1: warning: old-style function definition [-Wold-style-definition]
   47 | solve_espace(want, have)
      | ^~~~~~~~~~~~
solve.c: In function 'solve_sub':
solve.c:112:1: warning: old-style function definition [-Wold-style-definition]
  112 | solve_sub(wantp, wantn, leftp, leftnp, rightp, rightnp)
      | ^~~~~~~~~
solve.c: In function 'increase':
solve.c:655:1: warning: old-style function definition [-Wold-style-definition]
  655 | increase(d, v)
      | ^~~~~~~~
solve.c: In function 'poly_solve':
solve.c:792:1: warning: old-style function definition [-Wold-style-definition]
  792 | poly_solve(v)
      | ^~~~~~~~~~
solve.c: In function 'g_of_f':
solve.c:1132:1: warning: old-style function definition [-Wold-style-definition]
 1132 | g_of_f(op, operandp, side1p, side1np, side2p, side2np)
      | ^~~~~~
solve.c:1298:21: error: too many arguments to function 'parse_var'; expected 0, have 2
 1298 |                 if (parse_var(&p2->token.variable, var_name_buf) == NULL)
      |                     ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
solve.c: In function 'flip':
solve.c:1391:1: warning: old-style function definition [-Wold-style-definition]
 1391 | flip(side1p, side1np, side2p, side2np)
      | ^~~~
make: *** [<builtin>: solve.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o help.o help.c
In file included from includes.h:117,
                 from help.c:27:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
help.c: In function 'parse':
help.c:213:1: warning: old-style function definition [-Wold-style-definition]
  213 | parse(n, cp)
      | ^~~~~
help.c:217:13: error: too many arguments to function 'parse_equation'; expected 0, have 2
  217 |         if (parse_equation(n, cp)) {
      |             ^~~~~~~~~~~~~~ ~
altproto.h:22:18: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
help.c: In function 'process_parse':
help.c:244:1: warning: old-style function definition [-Wold-style-definition]
  244 | process_parse(n, cp)
      | ^~~~~~~~~~~~~
help.c:299:29: error: too many arguments to function 'parse_equation'; expected 0, have 2
  299 |                         if (parse_equation(n, cp1 + 1) == NULL) {
      |                             ^~~~~~~~~~~~~~ ~
altproto.h:22:18: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
help.c:346:19: error: too many arguments to function 'parse_equation'; expected 0, have 2
  346 |         if ((ep = parse_equation(n, cp))) {
      |                   ^~~~~~~~~~~~~~ ~
altproto.h:22:18: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
help.c:422:41: error: too many arguments to function 'parse_var'; expected 0, have 2
  422 |                                         parse_var(&answer_v, "answer"); /* convert to a Mathomatic variable */
      |                                         ^~~~~~~~~ ~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
help.c:434:46: error: too many arguments to function 'calculate_cmd'; expected 0, have 1
  434 |                                         rv = calculate_cmd("");         /* display the approximation */
      |                                              ^~~~~~~~~~~~~ ~~
altproto.h:10:44: note: declared here
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
help.c: In function 'process':
help.c:477:1: warning: old-style function definition [-Wold-style-definition]
  477 | process(cp)
      | ^~~~~~~
help.c: In function 'process_rv':
help.c:500:1: warning: old-style function definition [-Wold-style-definition]
  500 | process_rv(cp)
      | ^~~~~~~~~~
help.c:525:14: error: too many arguments to function 'skip_space'; expected 0, have 1
  525 |         cp = skip_space(cp);
      |              ^~~~~~~~~~ ~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:530:28: error: too many arguments to function 'parse_var'; expected 0, have 2
  530 |                 if ((cp1 = parse_var(&v, cp)) == NULL) {
      |                            ^~~~~~~~~ ~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
help.c:548:36: error: too many arguments to function 'parse_var'; expected 0, have 2
  548 |                         if ((cp1 = parse_var(&v, cp)) == NULL) {
      |                                    ^~~~~~~~~ ~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
help.c:586:30: error: too many arguments to function 'skip_space'; expected 0, have 1
  586 |                         cp = skip_space(cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:605:22: error: too many arguments to function 'skip_space'; expected 0, have 1
  605 |                 cp = skip_space(cp + 1);
      |                      ^~~~~~~~~~ ~~~~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:632:22: error: too many arguments to function 'skip_space'; expected 0, have 1
  632 |                 cp = skip_space(cp + 1);
      |                      ^~~~~~~~~~ ~~~~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:634:24: error: too many arguments to function 'help_cmd'; expected 0, have 1
  634 |                 return(help_cmd(cp));
      |                        ^~~~~~~~ ~~
altproto.h:8:70: note: declared here
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
help.c:650:22: error: too many arguments to function 'skip_space'; expected 0, have 1
  650 |                 cp = skip_space(cp1);
      |                      ^~~~~~~~~~ ~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:656:31: error: too many arguments to function 'skip_space'; expected 0, have 1
  656 |                         cp1 = skip_space(cp1);
      |                               ^~~~~~~~~~ ~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:671:64: error: too many arguments to function 'skip_space'; expected 0, have 1
  671 |                                                 gfp_filename = skip_space(&buf2[i1+1]);
      |                                                                ^~~~~~~~~~ ~~~~~~~~~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
help.c:704:31: error: too many arguments to function 'com_list[i].func'; expected 0, have 1
  704 |                         rv = (*com_list[i].func)(buf2);
      |                              ~^~~~~~~~~~~~~~~~~~ ~~~~
help.c:39:19: note: declared here
   39 |         int     (*func)();              /* function that handles this command */
      |                   ^~~~
help.c: In function 'display_process':
help.c:746:1: warning: old-style function definition [-Wold-style-definition]
  746 | display_process(cp)
      | ^~~~~~~~~~~~~~~
help.c: In function 'shell_out':
help.c:803:1: warning: old-style function definition [-Wold-style-definition]
  803 | shell_out(cp)
      | ^~~~~~~~~
help.c: At top level:
help.c:840:1: error: conflicting types for 'parse_var2'; have 'char *(void)'
  840 | parse_var2(vp, cp)
      | ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
help.c: In function 'parse_var2':
help.c:840:1: warning: old-style function definition [-Wold-style-definition]
  840 | parse_var2(vp, cp)
      | ^~~~~~~~~~
help.c:844:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  844 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
help.c:845:14: error: too many arguments to function 'parse_var'; expected 0, have 2
  845 |         cp = parse_var(vp, cp);
      |              ^~~~~~~~~ ~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
help.c:849:16: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  849 |         return skip_comma_space(cp);
      |                ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
help.c: In function 'display_usage':
help.c:860:1: warning: old-style function definition [-Wold-style-definition]
  860 | display_usage(pstr, i)
      | ^~~~~~~~~~~~~
help.c: In function 'display_command':
help.c:884:1: warning: old-style function definition [-Wold-style-definition]
  884 | display_command(i)
      | ^~~~~~~~~~~~~~~
help.c: In function 'read_examples':
help.c:927:1: warning: old-style function definition [-Wold-style-definition]
  927 | read_examples(cpp)
      | ^~~~~~~~~~~~~
help.c: In function 'underline_title':
help.c:950:1: warning: old-style function definition [-Wold-style-definition]
  950 | underline_title(count)
      | ^~~~~~~~~~~~~~~
help.c: At top level:
help.c:967:1: error: conflicting types for 'help_cmd'; have 'int(void)'
  967 | help_cmd(cp)
      | ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
help.c: In function 'help_cmd':
help.c:967:1: warning: old-style function definition [-Wold-style-definition]
  967 | help_cmd(cp)
      | ^~~~~~~~
help.c:1046:30: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1046 |                         cp = skip_comma_space(cp1);
      |                              ^~~~~~~~~~~~~~~~ ~~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
help.c:1151:54: error: too many arguments to function 'pause_cmd'; expected 0, have 1
 1151 |                                                 if (!pause_cmd(""))
      |                                                      ^~~~~~~~~ ~~
altproto.h:13:43: note: declared here
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
help.c:1231:30: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1231 |                         cp = skip_comma_space(cp1);
      |                              ^~~~~~~~~~~~~~~~ ~~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
help.c:1294:54: error: too many arguments to function 'pause_cmd'; expected 0, have 1
 1294 |                                                 if (!pause_cmd(""))
      |                                                      ^~~~~~~~~ ~~
altproto.h:13:43: note: declared here
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
help.c:1310:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1310 |         cp = skip_comma_space(cp1);
      |              ^~~~~~~~~~~~~~~~ ~~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
make: *** [<builtin>: help.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o am.o am.c
In file included from includes.h:117,
                 from am.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
am.c: In function 'display_startup_message':
am.c:37:1: warning: old-style function definition [-Wold-style-definition]
   37 | display_startup_message(fp)
      | ^~~~~~~~~~~~~~~~~~~~~~~
am.c: In function 'error':
am.c:69:1: warning: old-style function definition [-Wold-style-definition]
   69 | error(str)
      | ^~~~~
am.c: In function 'warning':
am.c:98:1: warning: old-style function definition [-Wold-style-definition]
   98 | warning(str)
      | ^~~~~~~
am.c: In function 'error_bug':
am.c:134:1: warning: old-style function definition [-Wold-style-definition]
  134 | error_bug(str)
      | ^~~~~~~~~
am.c: In function 'next_sign':
am.c:427:1: warning: old-style function definition [-Wold-style-definition]
  427 | next_sign(vp)
      | ^~~~~~~~~
am.c: In function 'alloc_espace':
am.c:476:1: warning: old-style function definition [-Wold-style-definition]
  476 | alloc_espace(i)
      | ^~~~~~~~~~~~
am.c: In function 'alloc_to_espace':
am.c:506:1: warning: old-style function definition [-Wold-style-definition]
  506 | alloc_to_espace(en)
      | ^~~~~~~~~~~~~~~
am.c: In function 'next_espace':
am.c:573:17: error: too many arguments to function 'parse_var'; expected 0, have 2
  573 |                 parse_var(&answer_v, "answer"); /* convert to a Mathomatic variable */
      |                 ^~~~~~~~~ ~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
am.c: In function 'copy_espace':
am.c:599:1: warning: old-style function definition [-Wold-style-definition]
  599 | copy_espace(src, dest)
      | ^~~~~~~~~~~
am.c: In function 'solved_equation':
am.c:618:1: warning: old-style function definition [-Wold-style-definition]
  618 | solved_equation(i)
      | ^~~~~~~~~~~~~~~
am.c: In function 'found_var':
am.c:636:1: warning: old-style function definition [-Wold-style-definition]
  636 | found_var(p1, n, v)
      | ^~~~~~~~~
am.c: In function 'var_in_equation':
am.c:658:1: warning: old-style function definition [-Wold-style-definition]
  658 | var_in_equation(i, v)
      | ^~~~~~~~~~~~~~~
am.c: In function 'search_all_for_var':
am.c:681:1: warning: old-style function definition [-Wold-style-definition]
  681 | search_all_for_var(v, forward_direction)
      | ^~~~~~~~~~~~~~~~~~
am.c: In function 'rename_var_in_es':
am.c:712:1: warning: old-style function definition [-Wold-style-definition]
  712 | rename_var_in_es(en, from_v, to_v)
      | ^~~~~~~~~~~~~~~~
am.c: In function 'subst_var_with_exp':
am.c:741:1: warning: old-style function definition [-Wold-style-definition]
  741 | subst_var_with_exp(equation, np, expression, len, v)
      | ^~~~~~~~~~~~~~~~~~
am.c: In function 'min_level':
am.c:782:1: warning: old-style function definition [-Wold-style-definition]
  782 | min_level(expression, n)
      | ^~~~~~~~~
am.c: In function 'get_default_en':
am.c:820:1: warning: old-style function definition [-Wold-style-definition]
  820 | get_default_en(cp)
      | ^~~~~~~~~~~~~~
am.c:828:21: error: too many arguments to function 'decstrtol'; expected 0, have 2
  828 |                 i = decstrtol(cp, &cp) - 1;
      |                     ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
am.c: In function 'get_expr':
am.c:845:1: warning: old-style function definition [-Wold-style-definition]
  845 | get_expr(equation, np)
      | ^~~~~~~~
am.c:861:27: error: too many arguments to function 'get_string'; expected 0, have 2
  861 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL) {
      |                           ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
am.c:864:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
  864 |                 cp = parse_expr(equation, np, cp, true);
      |                      ^~~~~~~~~~ ~~~~~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
am.c: In function 'prompt_var':
am.c:879:1: warning: old-style function definition [-Wold-style-definition]
  879 | prompt_var(vp)
      | ^~~~~~~~~~
am.c:887:27: error: too many arguments to function 'get_string'; expected 0, have 2
  887 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL) {
      |                           ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
am.c:893:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
  893 |                 cp = parse_var2(vp, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
am.c: In function 'not_defined':
am.c:905:1: warning: old-style function definition [-Wold-style-definition]
  905 | not_defined(i)
      | ^~~~~~~~~~~
am.c: At top level:
am.c:953:1: error: conflicting types for 'get_string'; have 'char *(void)'
  953 | get_string(string, n)
      | ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
am.c: In function 'get_string':
am.c:953:1: warning: old-style function definition [-Wold-style-definition]
  953 | get_string(string, n)
      | ^~~~~~~~~~
am.c:984:21: error: too many arguments to function 'skip_space'; expected 0, have 1
  984 |                 if (skip_space(cp)[0] && (last_history_string == NULL || strcmp(last_history_string, cp))) {
      |                     ^~~~~~~~~~ ~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
am.c: In function 'get_yes_no':
am.c:1046:27: error: too many arguments to function 'get_string'; expected 0, have 2
 1046 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL) {
      |                           ^~~~~~~~~~ ~~~
am.c:953:1: note: declared here
  953 | get_string(string, n)
      | ^~~~~~~~~~
am.c: In function 'return_result':
am.c:1067:1: warning: old-style function definition [-Wold-style-definition]
 1067 | return_result(en)
      | ^~~~~~~~~~~~~
am.c: In function 'is_all':
am.c:1116:1: warning: old-style function definition [-Wold-style-definition]
 1116 | is_all(cp)
      | ^~~~~~
am.c: In function 'get_range':
am.c:1133:1: warning: old-style function definition [-Wold-style-definition]
 1133 | get_range(cpp, ip, jp)
      | ^~~~~~~~~
am.c:1141:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1141 |         cp = skip_comma_space(*cpp);
      |              ^~~~~~~~~~~~~~~~ ~~~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
am.c:1143:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 1143 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
am.c:1163:40: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1163 |                                 *cpp = skip_comma_space(cp);
      |                                        ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
am.c:1206:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1206 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
am.c: In function 'extra_characters':
am.c:1225:1: warning: old-style function definition [-Wold-style-definition]
 1225 | extra_characters(cp)
      | ^~~~~~~~~~~~~~~~
am.c:1229:22: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1229 |                 cp = skip_comma_space(cp);
      |                      ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
am.c: In function 'get_range_eol':
am.c:1244:1: warning: old-style function definition [-Wold-style-definition]
 1244 | get_range_eol(cpp, ip, jp)
      | ^~~~~~~~~~~~~
am.c: At top level:
am.c:1261:1: error: conflicting types for 'skip_space'; have 'char *(void)'
 1261 | skip_space(cp)
      | ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
am.c: In function 'skip_space':
am.c:1261:1: warning: old-style function definition [-Wold-style-definition]
 1261 | skip_space(cp)
      | ^~~~~~~~~~
am.c: At top level:
am.c:1275:1: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
 1275 | skip_comma_space(cp)
      | ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
am.c: In function 'skip_comma_space':
am.c:1275:1: warning: old-style function definition [-Wold-style-definition]
 1275 | skip_comma_space(cp)
      | ^~~~~~~~~~~~~~~~
am.c:1279:22: error: too many arguments to function 'skip_space'; expected 0, have 1
 1279 |                 cp = skip_space(cp);
      |                      ^~~~~~~~~~ ~~
am.c:1261:1: note: declared here
 1261 | skip_space(cp)
      | ^~~~~~~~~~
am.c:1281:30: error: too many arguments to function 'skip_space'; expected 0, have 1
 1281 |                         cp = skip_space(cp + 1);
      |                              ^~~~~~~~~~ ~~~~~~
am.c:1261:1: note: declared here
 1261 | skip_space(cp)
      | ^~~~~~~~~~
am.c: At top level:
am.c:1291:1: error: conflicting types for 'decstrtol'; have 'long int(void)'
 1291 | decstrtol(cp, cpp)
      | ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
am.c: In function 'decstrtol':
am.c:1291:1: warning: old-style function definition [-Wold-style-definition]
 1291 | decstrtol(cp, cpp)
      | ^~~~~~~~~
am.c:1298:24: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1298 |                 *cpp = skip_comma_space(*cpp);
      |                        ^~~~~~~~~~~~~~~~ ~~~~
am.c:1275:1: note: declared here
 1275 | skip_comma_space(cp)
      | ^~~~~~~~~~~~~~~~
am.c: In function 'isdelimiter':
am.c:1307:1: warning: old-style function definition [-Wold-style-definition]
 1307 | isdelimiter(ch)
      | ^~~~~~~~~~~
am.c: At top level:
am.c:1320:1: error: conflicting types for 'skip_param'; have 'char *(void)'
 1320 | skip_param(cp)
      | ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
am.c: In function 'skip_param':
am.c:1320:1: warning: old-style function definition [-Wold-style-definition]
 1320 | skip_param(cp)
      | ^~~~~~~~~~
am.c:1327:22: error: too many arguments to function 'skip_space'; expected 0, have 1
 1327 |                 cp = skip_space(cp);
      |                      ^~~~~~~~~~ ~~
am.c:1261:1: note: declared here
 1261 | skip_space(cp)
      | ^~~~~~~~~~
am.c:1329:30: error: too many arguments to function 'skip_space'; expected 0, have 1
 1329 |                         cp = skip_space(cp + 1);
      |                              ^~~~~~~~~~ ~~~~~~
am.c:1261:1: note: declared here
 1261 | skip_space(cp)
      | ^~~~~~~~~~
am.c: In function 'strcmp_tospace':
am.c:1342:1: warning: old-style function definition [-Wold-style-definition]
 1342 | strcmp_tospace(cp1, cp2)
      | ^~~~~~~~~~~~~~
am.c: In function 'level_plus_count':
am.c:1362:1: warning: old-style function definition [-Wold-style-definition]
 1362 | level_plus_count(p1, n1, level)
      | ^~~~~~~~~~~~~~~~
am.c: In function 'level1_plus_count':
am.c:1386:1: warning: old-style function definition [-Wold-style-definition]
 1386 | level1_plus_count(p1, n1)
      | ^~~~~~~~~~~~~~~~~
am.c: In function 'var_count':
am.c:1397:1: warning: old-style function definition [-Wold-style-definition]
 1397 | var_count(p1, n1)
      | ^~~~~~~~~
am.c: In function 'no_vars':
am.c:1418:1: warning: old-style function definition [-Wold-style-definition]
 1418 | no_vars(source, n, vp)
      | ^~~~~~~
am.c: In function 'exp_contains_infinity':
am.c:1451:1: warning: old-style function definition [-Wold-style-definition]
 1451 | exp_contains_infinity(p1, n1)
      | ^~~~~~~~~~~~~~~~~~~~~
am.c: In function 'exp_contains_nan':
am.c:1469:1: warning: old-style function definition [-Wold-style-definition]
 1469 | exp_contains_nan(p1, n1)
      | ^~~~~~~~~~~~~~~~
am.c: In function 'exp_is_numeric':
am.c:1488:1: warning: old-style function definition [-Wold-style-definition]
 1488 | exp_is_numeric(p1, n1)
      | ^~~~~~~~~~~~~~
am.c: In function 'exp_is_absolute':
am.c:1507:1: warning: old-style function definition [-Wold-style-definition]
 1507 | exp_is_absolute(p1, n1)
      | ^~~~~~~~~~~~~~~
am.c: In function 'check_divide_by_zero':
am.c:1534:1: warning: old-style function definition [-Wold-style-definition]
 1534 | check_divide_by_zero(denominator)
      | ^~~~~~~~~~~~~~~~~~~~
am.c: In function 'load_rc':
am.c:1575:1: warning: old-style function definition [-Wold-style-definition]
 1575 | load_rc(return_true_if_no_file, ofp)
      | ^~~~~~~
make: *** [<builtin>: am.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o poly.o poly.c
In file included from includes.h:117,
                 from poly.c:42:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
poly.c: In function 'vcmp':
poly.c:75:1: warning: old-style function definition [-Wold-style-definition]
   75 | vcmp(p1, p2)
      | ^~~~
poly.c: In function 'poly_in_v_sub':
poly.c:95:1: warning: old-style function definition [-Wold-style-definition]
   95 | poly_in_v_sub(p1, n, v, allow_divides)
      | ^~~~~~~~~~~~~
poly.c: In function 'poly_in_v':
poly.c:150:1: warning: old-style function definition [-Wold-style-definition]
  150 | poly_in_v(p1, n, v, allow_divides)
      | ^~~~~~~~~
poly.c: In function 'poly_factor':
poly.c:185:1: warning: old-style function definition [-Wold-style-definition]
  185 | poly_factor(equation, np, do_repeat)
      | ^~~~~~~~~~~
poly.c: In function 'pf_recurse':
poly.c:194:1: warning: old-style function definition [-Wold-style-definition]
  194 | pf_recurse(equation, np, loc, level, do_repeat)
      | ^~~~~~~~~~
poly.c: In function 'pf_sub':
poly.c:238:1: warning: old-style function definition [-Wold-style-definition]
  238 | pf_sub(equation, np, loc, len, level, do_repeat)
      | ^~~~~~
poly.c: In function 'save_factors':
poly.c:510:1: warning: old-style function definition [-Wold-style-definition]
  510 | save_factors(equation, np, loc1, len, level)
      | ^~~~~~~~~~~~
poly.c: In function 'do_gcd':
poly.c:622:1: warning: old-style function definition [-Wold-style-definition]
  622 | do_gcd(vp)
      | ^~~~~~
poly.c: In function 'poly_gcd':
poly.c:663:1: warning: old-style function definition [-Wold-style-definition]
  663 | poly_gcd(larger, llen, smaller, slen, v)
      | ^~~~~~~~
poly.c: In function 'poly2_gcd':
poly.c:729:1: warning: old-style function definition [-Wold-style-definition]
  729 | poly2_gcd(larger, llen, smaller, slen, v, require_additive)
      | ^~~~~~~~~
poly.c: In function 'is_integer_var':
poly.c:832:1: warning: old-style function definition [-Wold-style-definition]
  832 | is_integer_var(v)
      | ^~~~~~~~~~~~~~
poly.c:839:29: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(const char *, const char *, size_t)' {aka 'int (*)(const char *, const char *, long unsigned int)'} [-Wincompatible-pointer-types]
  839 |                 strncmpfunc = strncmp;
      |                             ^
In file included from includes.h:91:
/usr/include/string.h:159:12: note: 'strncmp' declared here
  159 | extern int strncmp (const char *__s1, const char *__s2, size_t __n)
      |            ^~~~~~~
poly.c:841:29: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(const char *, const char *, size_t)' {aka 'int (*)(const char *, const char *, long unsigned int)'} [-Wincompatible-pointer-types]
  841 |                 strncmpfunc = strncasecmp;
      |                             ^
In file included from /usr/include/string.h:462:
/usr/include/strings.h:120:12: note: 'strncasecmp' declared here
  120 | extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
      |            ^~~~~~~~~~~
poly.c:845:19: error: too many arguments to function 'strncmpfunc'; expected 0, have 3
  845 |         if (cp && strncmpfunc(cp, V_INTEGER_PREFIX, strlen(V_INTEGER_PREFIX)) == 0)
      |                   ^~~~~~~~~~~ ~~
poly.c: In function 'is_integer_expr':
poly.c:860:1: warning: old-style function definition [-Wold-style-definition]
  860 | is_integer_expr(p1, n)
      | ^~~~~~~~~~~~~~~
poly.c: In function 'mod_simp':
poly.c:900:1: warning: old-style function definition [-Wold-style-definition]
  900 | mod_simp(equation, np)
      | ^~~~~~~~
poly.c: In function 'mod_recurse':
poly.c:908:1: warning: old-style function definition [-Wold-style-definition]
  908 | mod_recurse(equation, np, loc, level)
      | ^~~~~~~~~~~
poly.c: In function 'poly_gcd_simp':
poly.c:1072:1: warning: old-style function definition [-Wold-style-definition]
 1072 | poly_gcd_simp(equation, np)
      | ^~~~~~~~~~~~~
poly.c: In function 'polydiv_recurse':
poly.c:1080:1: warning: old-style function definition [-Wold-style-definition]
 1080 | polydiv_recurse(equation, np, loc, level)
      | ^~~~~~~~~~~~~~~
poly.c: In function 'div_remainder':
poly.c:1182:1: warning: old-style function definition [-Wold-style-definition]
 1182 | div_remainder(equation, np, poly_flag, quick_flag)
      | ^~~~~~~~~~~~~
poly.c: In function 'pdiv_recurse':
poly.c:1201:1: warning: old-style function definition [-Wold-style-definition]
 1201 | pdiv_recurse(equation, np, loc, level, code)
      | ^~~~~~~~~~~~
poly.c: In function 'poly_div':
poly.c:1384:1: warning: old-style function definition [-Wold-style-definition]
 1384 | poly_div(d1, len1, d2, len2, vp)
      | ^~~~~~~~
poly.c: In function 'poly_div_sub':
poly.c:1420:1: warning: old-style function definition [-Wold-style-definition]
 1420 | poly_div_sub(d1, len1, d2, len2, vp)
      | ^~~~~~~~~~~~
poly.c: In function 'smart_div':
poly.c:1618:1: warning: old-style function definition [-Wold-style-definition]
 1618 | smart_div(d1, len1, d2, len2)
      | ^~~~~~~~~
poly.c: In function 'basic_size':
poly.c:1856:1: warning: old-style function definition [-Wold-style-definition]
 1856 | basic_size(p1, len)
      | ^~~~~~~~~~
poly.c: In function 'get_term':
poly.c:1887:1: warning: old-style function definition [-Wold-style-definition]
 1887 | get_term(p1, n1, count, tp1, lentp1)
      | ^~~~~~~~
poly.c: In function 'find_highest_count':
poly.c:1921:1: warning: old-style function definition [-Wold-style-definition]
 1921 | find_highest_count(p1, n1, p2, n2, vp1)
      | ^~~~~~~~~~~~~~~~~~
poly.c: In function 'term_value':
poly.c:1991:1: warning: old-style function definition [-Wold-style-definition]
 1991 | term_value(dp, p1, n1, loc)
      | ^~~~~~~~~~
poly.c: In function 'find_greatest_power':
poly.c:2068:1: warning: old-style function definition [-Wold-style-definition]
 2068 | find_greatest_power(p1, n1, vp1, pp1, tp1, lentp1, dcodep)
      | ^~~~~~~~~~~~~~~~~~~
make: *** [<builtin>: poly.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o complex_lib.o complex_lib.c
complex_lib.c: In function 'complex_fixup':
complex_lib.c:42:1: warning: old-style function definition [-Wold-style-definition]
   42 | complex_fixup(ap)
      | ^~~~~~~~~~~~~
complex_lib.c: In function 'complex_add':
complex_lib.c:64:1: warning: old-style function definition [-Wold-style-definition]
   64 | complex_add(a, b)
      | ^~~~~~~~~~~
complex_lib.c: In function 'complex_negate':
complex_lib.c:77:1: warning: old-style function definition [-Wold-style-definition]
   77 | complex_negate(a)
      | ^~~~~~~~~~~~~~
complex_lib.c: In function 'complex_mult':
complex_lib.c:90:1: warning: old-style function definition [-Wold-style-definition]
   90 | complex_mult(a, b)
      | ^~~~~~~~~~~~
complex_lib.c: In function 'complex_div':
complex_lib.c:105:1: warning: old-style function definition [-Wold-style-definition]
  105 | complex_div(a, b)
      | ^~~~~~~~~~~
complex_lib.c: In function 'complex_log':
complex_lib.c:125:1: warning: old-style function definition [-Wold-style-definition]
  125 | complex_log(a)
      | ^~~~~~~~~~~
complex_lib.c: In function 'complex_exp':
complex_lib.c:140:1: warning: old-style function definition [-Wold-style-definition]
  140 | complex_exp(a)
      | ^~~~~~~~~~~
complex_lib.c: In function 'complex_pow':
complex_lib.c:157:1: warning: old-style function definition [-Wold-style-definition]
  157 | complex_pow(a, b)
      | ^~~~~~~~~~~
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o simplify.o simplify.c
In file included from includes.h:117,
                 from simplify.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
simplify.c: In function 'organize':
simplify.c:48:1: warning: old-style function definition [-Wold-style-definition]
   48 | organize(equation, np)
      | ^~~~~~~~
simplify.c: In function 'org_up_level':
simplify.c:68:1: warning: old-style function definition [-Wold-style-definition]
   68 | org_up_level(bp, ep, level, invert)
      | ^~~~~~~~~~~~
simplify.c: In function 'org_recurse':
simplify.c:104:1: warning: old-style function definition [-Wold-style-definition]
  104 | org_recurse(equation, np, loc, level, elocp)
      | ^~~~~~~~~~~
simplify.c: In function 'elim_loop':
simplify.c:176:1: warning: old-style function definition [-Wold-style-definition]
  176 | elim_loop(equation, np)
      | ^~~~~~~~~
simplify.c: In function 'simp_ssub':
simplify.c:217:1: warning: old-style function definition [-Wold-style-definition]
  217 | simp_ssub(equation, np, v, d, power_flag, times_flag, fc_level)
      | ^~~~~~~~~
simplify.c: In function 'simp_equation':
simplify.c:250:1: warning: old-style function definition [-Wold-style-definition]
  250 | simp_equation(n)
      | ^~~~~~~~~~~~~
simplify.c: In function 'mid_simp_side':
simplify.c:266:1: warning: old-style function definition [-Wold-style-definition]
  266 | mid_simp_side(equation, np)
      | ^~~~~~~~~~~~~
simplify.c: In function 'mid_simp_equation':
simplify.c:278:1: warning: old-style function definition [-Wold-style-definition]
  278 | mid_simp_equation(n)
      | ^~~~~~~~~~~~~~~~~
simplify.c: In function 'simps_side':
simplify.c:293:1: warning: old-style function definition [-Wold-style-definition]
  293 | simps_side(equation, np, zsolve)
      | ^~~~~~~~~~
simplify.c: In function 'simpv_side':
simplify.c:309:1: warning: old-style function definition [-Wold-style-definition]
  309 | simpv_side(equation, np, v)
      | ^~~~~~~~~~
simplify.c: In function 'simpv_equation':
simplify.c:322:1: warning: old-style function definition [-Wold-style-definition]
  322 | simpv_equation(n, v)
      | ^~~~~~~~~~~~~~
simplify.c: In function 'factor_imaginary':
simplify.c:341:1: warning: old-style function definition [-Wold-style-definition]
  341 | factor_imaginary(equation, np)
      | ^~~~~~~~~~~~~~~~
simplify.c: In function 'factorv':
simplify.c:360:1: warning: old-style function definition [-Wold-style-definition]
  360 | factorv(equation, np, v)
      | ^~~~~~~
simplify.c: In function 'calc_simp':
simplify.c:377:1: warning: old-style function definition [-Wold-style-definition]
  377 | calc_simp(equation, np)
      | ^~~~~~~~~
simplify.c: In function 'approximate':
simplify.c:399:1: warning: old-style function definition [-Wold-style-definition]
  399 | approximate(equation, np)
      | ^~~~~~~~~~~
simplify.c: In function 'simp_i':
simplify.c:422:1: warning: old-style function definition [-Wold-style-definition]
  422 | simp_i(equation, np)
      | ^~~~~~
simplify.c: In function 'simp_divide':
simplify.c:490:1: warning: old-style function definition [-Wold-style-definition]
  490 | simp_divide(equation, np)
      | ^~~~~~~~~~~
simplify.c: In function 'simp2_divide':
simplify.c:508:1: warning: old-style function definition [-Wold-style-definition]
  508 | simp2_divide(equation, np, v, fc_level)
      | ^~~~~~~~~~~~
simplify.c: In function 'simpb_vcmp':
simplify.c:531:1: warning: old-style function definition [-Wold-style-definition]
  531 | simpb_vcmp(p1, p2)
      | ^~~~~~~~~~
simplify.c: In function 'simpb_side':
simplify.c:558:1: warning: old-style function definition [-Wold-style-definition]
  558 | simpb_side(equation, np, uf_power_flag, power_flag, fc_level)
      | ^~~~~~~~~~
simplify.c: In function 'simple_frac_side':
simplify.c:641:1: warning: old-style function definition [-Wold-style-definition]
  641 | simple_frac_side(equation, np)
      | ^~~~~~~~~~~~~~~~
simplify.c: In function 'simpa_side':
simplify.c:683:1: warning: old-style function definition [-Wold-style-definition]
  683 | simpa_side(equation, np, quick_flag, frac_flag)
      | ^~~~~~~~~~
simplify.c: In function 'simpa_repeat_side':
simplify.c:843:1: warning: old-style function definition [-Wold-style-definition]
  843 | simpa_repeat_side(equation, np, quick_flag, frac_flag)
      | ^~~~~~~~~~~~~~~~~
simplify.c: In function 'simpa_repeat':
simplify.c:871:1: warning: old-style function definition [-Wold-style-definition]
  871 | simpa_repeat(n, quick_flag, frac_flag)
      | ^~~~~~~~~~~~
simplify.c: In function 'simple_frac_repeat_side':
simplify.c:892:1: warning: old-style function definition [-Wold-style-definition]
  892 | simple_frac_repeat_side(equation, np)
      | ^~~~~~~~~~~~~~~~~~~~~~~
simplify.c: In function 'simp_loop':
simplify.c:918:1: warning: old-style function definition [-Wold-style-definition]
  918 | simp_loop(equation, np)
      | ^~~~~~~~~
simplify.c: In function 'simp_pp':
simplify.c:952:1: warning: old-style function definition [-Wold-style-definition]
  952 | simp_pp(equation, np)
      | ^~~~~~~
simplify.c: In function 'integer_root_simp':
simplify.c:1018:1: warning: old-style function definition [-Wold-style-definition]
 1018 | integer_root_simp(equation, np)
      | ^~~~~~~~~~~~~~~~~
simplify.c: In function 'simp_constant_power':
simplify.c:1101:1: warning: old-style function definition [-Wold-style-definition]
 1101 | simp_constant_power(equation, np)
      | ^~~~~~~~~~~~~~~~~~~
simplify.c: In function 'simp2_power':
simplify.c:1155:1: warning: old-style function definition [-Wold-style-definition]
 1155 | simp2_power(equation, np)
      | ^~~~~~~~~~~
simplify.c: In function 'fixed_fmod':
simplify.c:1218:1: warning: old-style function definition [-Wold-style-definition]
 1218 | fixed_fmod(k1, k2)
      | ^~~~~~~~~~
simplify.c: In function 'combine_constants':
simplify.c:1240:1: warning: old-style function definition [-Wold-style-definition]
 1240 | combine_constants(equation, np, iflag)
      | ^~~~~~~~~~~~~~~~~
simplify.c: In function 'calc':
simplify.c:1255:1: warning: old-style function definition [-Wold-style-definition]
 1255 | calc(op1p, k1p, op2, k2)
      | ^~~~
simplify.c: In function 'const_recurse':
simplify.c:1413:1: warning: old-style function definition [-Wold-style-definition]
 1413 | const_recurse(equation, np, loc, level, iflag)
      | ^~~~~~~~~~~~~
simplify.c: In function 'elim_k':
simplify.c:1585:1: warning: old-style function definition [-Wold-style-definition]
 1585 | elim_k(equation, np)
      | ^~~~~~
simplify.c: In function 'se_compare':
simplify.c:1856:1: warning: old-style function definition [-Wold-style-definition]
 1856 | se_compare(p1, n1, p2, n2, diff_signp)
      | ^~~~~~~~~~
simplify.c: In function 'compare_recurse':
simplify.c:1899:1: warning: old-style function definition [-Wold-style-definition]
 1899 | compare_recurse(p1, n1, l1, p2, n2, l2, diff_signp)
      | ^~~~~~~~~~~~~~~
simplify.c: In function 'elim_sign':
simplify.c:2140:1: warning: old-style function definition [-Wold-style-definition]
 2140 | elim_sign(equation, np)
      | ^~~~~~~~~
simplify.c: In function 'div_imaginary':
simplify.c:2253:1: warning: old-style function definition [-Wold-style-definition]
 2253 | div_imaginary(equation, np)
      | ^~~~~~~~~~~~~
simplify.c: In function 'reorder':
simplify.c:2408:1: warning: old-style function definition [-Wold-style-definition]
 2408 | reorder(equation, np)
      | ^~~~~~~
simplify.c: In function 'swap':
simplify.c:2416:1: warning: old-style function definition [-Wold-style-definition]
 2416 | swap(equation, np, level, i1, i2)
      | ^~~~
simplify.c: In function 'order_recurse':
simplify.c:2448:1: warning: old-style function definition [-Wold-style-definition]
 2448 | order_recurse(equation, np, loc, level)
      | ^~~~~~~~~~~~~
simplify.c: In function 'rationalize':
simplify.c:2562:1: warning: old-style function definition [-Wold-style-definition]
 2562 | rationalize(equation, np)
      | ^~~~~~~~~~~
make: *** [<builtin>: simplify.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o cmds.o cmds.c
In file included from includes.h:117,
                 from cmds.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
cmds.c:50:1: error: conflicting types for 'plot_cmd'; have 'int(void)'
   50 | plot_cmd(cp)
      | ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'plot_cmd':
cmds.c:50:1: warning: old-style function definition [-Wold-style-definition]
   50 | plot_cmd(cp)
      | ^~~~~~~~
cmds.c:71:14: error: too many arguments to function 'parse_var'; expected 0, have 2
   71 |         if (!parse_var(&vx, "x")) {
      |              ^~~~~~~~~ ~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
cmds.c:112:51: error: too many arguments to function 'list_expression'; expected 0, have 3
  112 |                                         exp_str = list_expression(equation, *np, 3);
      |                                                   ^~~~~~~~~~~~~~~ ~~~~~~~~
altproto.h:23:18: note: declared here
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
cmds.c: At top level:
cmds.c:208:1: error: conflicting types for 'version_cmd'; have 'int(void)'
  208 | version_cmd(cp)
      | ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
cmds.c: In function 'version_cmd':
cmds.c:208:1: warning: old-style function definition [-Wold-style-definition]
  208 | version_cmd(cp)
      | ^~~~~~~~~~~
cmds.c:216:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  216 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'show_status':
cmds.c:261:1: warning: old-style function definition [-Wold-style-definition]
  261 | show_status(ofp)
      | ^~~~~~~~~~~
cmds.c: At top level:
cmds.c:447:1: error: conflicting types for 'solve_cmd'; have 'int(void)'
  447 | solve_cmd(cp)
      | ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
cmds.c: In function 'solve_cmd':
cmds.c:447:1: warning: old-style function definition [-Wold-style-definition]
  447 | solve_cmd(cp)
      | ^~~~~~~~~
cmds.c:463:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  463 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:466:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  466 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:476:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  476 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:479:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  479 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:482:23: error: too many arguments to function 'skip_param'; expected 0, have 1
  482 |                 cp1 = skip_param(cp);
      |                       ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:489:27: error: too many arguments to function 'get_string'; expected 0, have 2
  489 |                 if ((cp = get_string(buf, sizeof(buf))) == NULL) {
      |                           ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c:495:19: error: too many arguments to function 'parse_equation'; expected 0, have 2
  495 |         if ((cp = parse_equation(i, cp)) == NULL) {
      |                   ^~~~~~~~~~~~~~ ~
altproto.h:22:18: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
cmds.c: At top level:
cmds.c:640:1: error: conflicting types for 'sum_cmd'; have 'int(void)'
  640 | sum_cmd(cp)
      | ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
cmds.c: In function 'sum_cmd':
cmds.c:640:1: warning: old-style function definition [-Wold-style-definition]
  640 | sum_cmd(cp)
      | ^~~~~~~
cmds.c: At top level:
cmds.c:650:1: error: conflicting types for 'product_cmd'; have 'int(void)'
  650 | product_cmd(cp)
      | ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
cmds.c: In function 'product_cmd':
cmds.c:650:1: warning: old-style function definition [-Wold-style-definition]
  650 | product_cmd(cp)
      | ^~~~~~~~~~~
cmds.c: At top level:
cmds.c:660:1: error: conflicting types for 'for_cmd'; have 'int(void)'
  660 | for_cmd(cp)
      | ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
cmds.c: In function 'for_cmd':
cmds.c:660:1: warning: old-style function definition [-Wold-style-definition]
  660 | for_cmd(cp)
      | ^~~~~~~
cmds.c: In function 'sum_product':
cmds.c:670:1: warning: old-style function definition [-Wold-style-definition]
  670 | sum_product(cp, current_function)
      | ^~~~~~~~~~~
cmds.c:697:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
  697 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
cmds.c:723:28: error: too many arguments to function 'get_string'; expected 0, have 2
  723 |                 if ((cp1 = get_string(buf, sizeof(buf))) == NULL)
      |                            ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c:735:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  735 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
cmds.c:737:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  737 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:743:28: error: too many arguments to function 'get_string'; expected 0, have 2
  743 |                 if ((cp1 = get_string(buf, sizeof(buf))) == NULL)
      |                            ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c:755:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
  755 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
cmds.c:757:22: error: too many arguments to function 'skip_param'; expected 0, have 1
  757 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'find_more':
cmds.c:846:1: warning: old-style function definition [-Wold-style-definition]
  846 | find_more(equation, np, en)
      | ^~~~~~~~~
cmds.c: In function 'opt_es':
cmds.c:902:1: warning: old-style function definition [-Wold-style-definition]
  902 | opt_es(equation, np)
      | ^~~~~~
cmds.c:943:53: error: too many arguments to function 'parse_var'; expected 0, have 2
  943 |                                                 if (parse_var(&v, var_name_buf) == NULL) {
      |                                                     ^~~~~~~~~ ~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
cmds.c: At top level:
cmds.c:1007:1: error: conflicting types for 'optimize_cmd'; have 'int(void)'
 1007 | optimize_cmd(cp)
      | ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
cmds.c: In function 'optimize_cmd':
cmds.c:1007:1: warning: old-style function definition [-Wold-style-definition]
 1007 | optimize_cmd(cp)
      | ^~~~~~~~~~~~
cmds.c: In function 'push_cmd':
cmds.c:1125:1: warning: old-style function definition [-Wold-style-definition]
 1125 | push_cmd(cp)
      | ^~~~~~~~
cmds.c:1127:1: error: number of arguments doesn't match prototype
 1127 | {
      | ^
altproto.h:15:86: error: prototype declaration
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                                      ^~~~~~~~
cmds.c:1150:37: error: too many arguments to function 'push_en'; expected 0, have 1
 1150 |                                 if (push_en(k)) {
      |                                     ^~~~~~~ ~
altproto.h:15:98: note: declared here
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                                                  ^~~~~~~
cmds.c: In function 'push_en':
cmds.c:1177:1: warning: old-style function definition [-Wold-style-definition]
 1177 | push_en(en)
      | ^~~~~~~
cmds.c:1179:1: error: number of arguments doesn't match prototype
 1179 | {
      | ^
altproto.h:15:98: error: prototype declaration
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                                                  ^~~~~~~
cmds.c:1185:14: error: too many arguments to function 'list_equation'; expected 0, have 2
 1185 |         cp = list_equation(en, false);
      |              ^~~~~~~~~~~~~ ~~
altproto.h:23:38: note: declared here
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
cmds.c: In function 'output_current_directory':
cmds.c:1201:1: warning: old-style function definition [-Wold-style-definition]
 1201 | output_current_directory(ofp)
      | ^~~~~~~~~~~~~~~~~~~~~~~~
cmds.c: In function 'fprintf_escaped':
cmds.c:1220:1: warning: old-style function definition [-Wold-style-definition]
 1220 | fprintf_escaped(ofp, cp)
      | ^~~~~~~~~~~~~~~
cmds.c: In function 'output_options':
cmds.c:1241:1: warning: old-style function definition [-Wold-style-definition]
 1241 | output_options(ofp, all_set_options)
      | ^~~~~~~~~~~~~~
cmds.c: In function 'skip_no':
cmds.c:1387:1: warning: old-style function definition [-Wold-style-definition]
 1387 | skip_no(cpp)
      | ^~~~~~~
cmds.c:1394:24: error: too many arguments to function 'skip_param'; expected 0, have 1
 1394 |                 *cpp = skip_param(*cpp);
      |                        ^~~~~~~~~~ ~~~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1400:24: error: too many arguments to function 'skip_param'; expected 0, have 1
 1400 |                 *cpp = skip_param(*cpp);
      |                        ^~~~~~~~~~ ~~~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'save_set_options':
cmds.c:1413:1: warning: old-style function definition [-Wold-style-definition]
 1413 | save_set_options(cp)
      | ^~~~~~~~~~~~~~~~
cmds.c: In function 'set_options':
cmds.c:1457:1: warning: old-style function definition [-Wold-style-definition]
 1457 | set_options(cp, loading_startup_file)
      | ^~~~~~~~~~~
cmds.c:1467:14: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 1467 |         cp = skip_comma_space(cp);
      |              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
cmds.c:1472:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 1472 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1497:14: error: too many arguments to function 'skip_param'; expected 0, have 1
 1497 |         cp = skip_param(cp);
      |              ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1503:29: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1503 |                         i = decstrtol(cp, &cp1);
      |                             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1546:29: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1546 |                         i = decstrtol(cp, &cp1);
      |                             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1567:29: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1567 |                         i = decstrtol(cp, &cp1);
      |                             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1590:21: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1590 |                 i = decstrtol(cp, &cp1);
      |                     ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1630:29: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1630 |                         i = decstrtol(cp, &cp1);
      |                             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1633:47: error: too many arguments to function 'skip_param'; expected 0, have 1
 1633 |                                         cp1 = skip_param(cp);
      |                                               ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1636:47: error: too many arguments to function 'skip_param'; expected 0, have 1
 1636 |                                         cp1 = skip_param(cp);
      |                                               ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1639:47: error: too many arguments to function 'skip_param'; expected 0, have 1
 1639 |                                         cp1 = skip_param(cp);
      |                                               ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1675:30: error: too many arguments to function 'skip_param'; expected 0, have 1
 1675 |                         cp = skip_param(cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1698:29: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1698 |                         i = decstrtol(cp, &cp1);
      |                             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1701:47: error: too many arguments to function 'skip_param'; expected 0, have 1
 1701 |                                         cp1 = skip_param(cp);
      |                                               ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1704:47: error: too many arguments to function 'skip_param'; expected 0, have 1
 1704 |                                         cp1 = skip_param(cp);
      |                                               ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1707:47: error: too many arguments to function 'skip_param'; expected 0, have 1
 1707 |                                         cp1 = skip_param(cp);
      |                                               ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:1747:21: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1747 |                 i = decstrtol(cp, &cp1);
      |                     ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:1770:29: error: too many arguments to function 'decstrtol'; expected 0, have 2
 1770 |                         i = decstrtol(cp, &cp1);
      |                             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c: At top level:
cmds.c:1884:1: error: conflicting types for 'set_cmd'; have 'int(void)'
 1884 | set_cmd(cp)
      | ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
cmds.c: In function 'set_cmd':
cmds.c:1884:1: warning: old-style function definition [-Wold-style-definition]
 1884 | set_cmd(cp)
      | ^~~~~~~
cmds.c: At top level:
cmds.c:1908:1: error: conflicting types for 'echo_cmd'; have 'int(void)'
 1908 | echo_cmd(cp)
      | ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'echo_cmd':
cmds.c:1908:1: warning: old-style function definition [-Wold-style-definition]
 1908 | echo_cmd(cp)
      | ^~~~~~~~
cmds.c: At top level:
cmds.c:1945:1: error: conflicting types for 'pause_cmd'; have 'int(void)'
 1945 | pause_cmd(cp)
      | ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
cmds.c: In function 'pause_cmd':
cmds.c:1945:1: warning: old-style function definition [-Wold-style-definition]
 1945 | pause_cmd(cp)
      | ^~~~~~~~~
cmds.c:1963:15: error: too many arguments to function 'get_string'; expected 0, have 2
 1963 |         cp1 = get_string(buf, sizeof(buf));
      |               ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c: At top level:
cmds.c:1982:1: error: conflicting types for 'copy_cmd'; have 'int(void)'
 1982 | copy_cmd(cp)
      | ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'copy_cmd':
cmds.c:1982:1: warning: old-style function definition [-Wold-style-definition]
 1982 | copy_cmd(cp)
      | ^~~~~~~~
cmds.c:1999:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 1999 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'complex_func':
cmds.c:2031:1: warning: old-style function definition [-Wold-style-definition]
 2031 | complex_func(cp, imag_flag)
      | ^~~~~~~~~~~~
cmds.c:2060:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
 2060 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
cmds.c:2114:33: error: too many arguments to function 'parse_var'; expected 0, have 2
 2114 |                                 parse_var(&lhs[j][0].token.variable, var_str);
      |                                 ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
cmds.c: At top level:
cmds.c:2127:1: error: conflicting types for 'real_cmd'; have 'int(void)'
 2127 | real_cmd(cp)
      | ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'real_cmd':
cmds.c:2127:1: warning: old-style function definition [-Wold-style-definition]
 2127 | real_cmd(cp)
      | ^~~~~~~~
cmds.c: At top level:
cmds.c:2137:1: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
 2137 | imaginary_cmd(cp)
      | ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
cmds.c: In function 'imaginary_cmd':
cmds.c:2137:1: warning: old-style function definition [-Wold-style-definition]
 2137 | imaginary_cmd(cp)
      | ^~~~~~~~~~~~~
cmds.c: At top level:
cmds.c:2148:1: error: conflicting types for 'tally_cmd'; have 'int(void)'
 2148 | tally_cmd(cp)
      | ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
cmds.c: In function 'tally_cmd':
cmds.c:2148:1: warning: old-style function definition [-Wold-style-definition]
 2148 | tally_cmd(cp)
      | ^~~~~~~~~
cmds.c:2157:14: error: too many arguments to function 'parse_var'; expected 0, have 2
 2157 |         if (!parse_var(&v, "total")) {
      |              ^~~~~~~~~ ~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
cmds.c:2162:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 2162 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: At top level:
cmds.c:2289:1: error: conflicting types for 'calculate_cmd'; have 'int(void)'
 2289 | calculate_cmd(cp)
      | ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
cmds.c: In function 'calculate_cmd':
cmds.c:2289:1: warning: old-style function definition [-Wold-style-definition]
 2289 | calculate_cmd(cp)
      | ^~~~~~~~~~~~~
cmds.c:2304:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 2304 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:2315:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
 2315 |                 cp = parse_var2(&it_v, cp);
      |                      ^~~~~~~~~~ ~~~~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
cmds.c:2321:35: error: too many arguments to function 'get_string'; expected 0, have 2
 2321 |                         if ((cp = get_string(buf, sizeof(buf))) == NULL)
      |                                   ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c:2324:30: error: too many arguments to function 'decstrtol'; expected 0, have 2
 2324 |                 iterations = decstrtol(cp, &cp);
      |                              ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c: At top level:
cmds.c:2507:1: error: conflicting types for 'clear_cmd'; have 'int(void)'
 2507 | clear_cmd(cp)
      | ^~~~~~~~~
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
cmds.c: In function 'clear_cmd':
cmds.c:2507:1: warning: old-style function definition [-Wold-style-definition]
 2507 | clear_cmd(cp)
      | ^~~~~~~~~
cmds.c: In function 'compare_rhs':
cmds.c:2539:1: warning: old-style function definition [-Wold-style-definition]
 2539 | compare_rhs(i, j, diff_signp)
      | ^~~~~~~~~~~
cmds.c: In function 'compare_es':
cmds.c:2565:1: warning: old-style function definition [-Wold-style-definition]
 2565 | compare_es(i, j)
      | ^~~~~~~~~~
cmds.c: At top level:
cmds.c:2601:1: error: conflicting types for 'compare_cmd'; have 'int(void)'
 2601 | compare_cmd(cp)
      | ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
cmds.c: In function 'compare_cmd':
cmds.c:2601:1: warning: old-style function definition [-Wold-style-definition]
 2601 | compare_cmd(cp)
      | ^~~~~~~~~~~
cmds.c:2608:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 2608 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:2620:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 2620 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:2622:13: error: too many arguments to function 'decstrtol'; expected 0, have 2
 2622 |         i = decstrtol(cp, &cp) - 1;
      |             ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c:2627:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 2627 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'display_fraction':
cmds.c:2834:1: warning: old-style function definition [-Wold-style-definition]
 2834 | display_fraction(value)
      | ^~~~~~~~~~~~~~~~
cmds.c: At top level:
cmds.c:2854:1: error: conflicting types for 'divide_cmd'; have 'int(void)'
 2854 | divide_cmd(cp)
      | ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
cmds.c: In function 'divide_cmd':
cmds.c:2854:1: warning: old-style function definition [-Wold-style-definition]
 2854 | divide_cmd(cp)
      | ^~~~~~~~~~
cmds.c:2867:22: error: too many arguments to function 'parse_var'; expected 0, have 2
 2867 |                 cp = parse_var(&v, cp);
      |                      ^~~~~~~~~ ~~
altproto.h:22:55: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
cmds.c:2875:30: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 2875 |                         cp = skip_comma_space(cp);
      |                              ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
cmds.c:2884:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
 2884 |                 cp = parse_expr(rhs[i], &nright, cp, false);
      |                      ^~~~~~~~~~ ~~~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
cmds.c:2891:22: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 2891 |                 cp = skip_comma_space(cp);
      |                      ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
cmds.c:2893:22: error: too many arguments to function 'parse_expr'; expected 0, have 4
 2893 |                 cp = parse_expr(lhs[i], &nleft, cp, false);
      |                      ^~~~~~~~~~ ~~~~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
cmds.c:2927:22: error: too many arguments to function 'gcd_verified'; expected 0, have 2
 2927 |                 d3 = gcd_verified(d1, d2);
      |                      ^~~~~~~~~~~~ ~~
altproto.h:24:24: note: declared here
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
cmds.c: At top level:
cmds.c:3037:1: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
 3037 | eliminate_cmd(cp)
      | ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
cmds.c: In function 'eliminate_cmd':
cmds.c:3037:1: warning: old-style function definition [-Wold-style-definition]
 3037 | eliminate_cmd(cp)
      | ^~~~~~~~~~~~~
cmds.c:3054:22: error: too many arguments to function 'get_string'; expected 0, have 2
 3054 |                 cp = get_string(buf, sizeof(buf));
      |                      ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c:3065:30: error: too many arguments to function 'skip_param'; expected 0, have 1
 3065 |                         cp = skip_param(cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3098:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
 3098 |                 cp = parse_var2(&v, cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
cmds.c:3119:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3119 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3122:21: error: too many arguments to function 'decstrtol'; expected 0, have 2
 3122 |                 i = decstrtol(cp, &cp) - 1;
      |                     ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c: In function 'elim_sub':
cmds.c:3169:1: warning: old-style function definition [-Wold-style-definition]
 3169 | elim_sub(i, v)
      | ^~~~~~~~
cmds.c: At top level:
cmds.c:3213:1: error: conflicting types for 'display_cmd'; have 'int(void)'
 3213 | display_cmd(cp)
      | ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
cmds.c: In function 'display_cmd':
cmds.c:3213:1: warning: old-style function definition [-Wold-style-definition]
 3213 | display_cmd(cp)
      | ^~~~~~~~~~~
cmds.c:3223:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3223 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: At top level:
cmds.c:3294:1: error: conflicting types for 'list_cmd'; have 'int(void)'
 3294 | list_cmd(cp)
      | ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'list_cmd':
cmds.c:3294:1: warning: old-style function definition [-Wold-style-definition]
 3294 | list_cmd(cp)
      | ^~~~~~~~
cmds.c:3309:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3309 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3312:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3312 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3315:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3315 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3318:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3318 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3322:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3322 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: At top level:
cmds.c:3380:1: error: conflicting types for 'code_cmd'; have 'int(void)'
 3380 | code_cmd(cp)
      | ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'code_cmd':
cmds.c:3380:1: warning: old-style function definition [-Wold-style-definition]
 3380 | code_cmd(cp)
      | ^~~~~~~~
cmds.c:3389:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3389 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'vcmp':
cmds.c:3477:1: warning: old-style function definition [-Wold-style-definition]
 3477 | vcmp(p1, p2)
      | ^~~~
cmds.c: At top level:
cmds.c:3494:1: error: conflicting types for 'variables_cmd'; have 'int(void)'
 3494 | variables_cmd(cp)
      | ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
cmds.c: In function 'variables_cmd':
cmds.c:3494:1: warning: old-style function definition [-Wold-style-definition]
 3494 | variables_cmd(cp)
      | ^~~~~~~~~~~~~
cmds.c:3515:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3515 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3519:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3519 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3522:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3522 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3525:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3525 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3530:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3530 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: At top level:
cmds.c:3691:1: error: conflicting types for 'approximate_cmd'; have 'int(void)'
 3691 | approximate_cmd(cp)
      | ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
cmds.c: In function 'approximate_cmd':
cmds.c:3691:1: warning: old-style function definition [-Wold-style-definition]
 3691 | approximate_cmd(cp)
      | ^~~~~~~~~~~~~~~
cmds.c: At top level:
cmds.c:3726:1: error: conflicting types for 'replace_cmd'; have 'int(void)'
 3726 | replace_cmd(cp)
      | ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
cmds.c: In function 'replace_cmd':
cmds.c:3726:1: warning: old-style function definition [-Wold-style-definition]
 3726 | replace_cmd(cp)
      | ^~~~~~~~~~~
cmds.c:3752:22: error: too many arguments to function 'parse_var2'; expected 0, have 2
 3752 |                 cp = parse_var2(&va[vc], cp);
      |                      ^~~~~~~~~~ ~~~~~~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
cmds.c:3800:39: error: too many arguments to function 'skip_param'; expected 0, have 1
 3800 |                                 cp1 = skip_param(cp);
      |                                       ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:3802:44: error: too many arguments to function 'parse_expr'; expected 0, have 4
 3802 |                                 if ((cp1 = parse_expr(tes, &n_tes, cp1, true)) == NULL || n_tes <= 0) {
      |                                            ^~~~~~~~~~ ~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
cmds.c: At top level:
cmds.c:3862:1: error: conflicting types for 'simplify_cmd'; have 'int(void)'
 3862 | simplify_cmd(cp)
      | ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
cmds.c: In function 'simplify_cmd':
cmds.c:3862:1: warning: old-style function definition [-Wold-style-definition]
 3862 | simplify_cmd(cp)
      | ^~~~~~~~~~~~
cmds.c:3873:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 3873 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: At top level:
cmds.c:4036:1: error: conflicting types for 'factor_cmd'; have 'int(void)'
 4036 | factor_cmd(cp)
      | ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
cmds.c: In function 'factor_cmd':
cmds.c:4036:1: warning: old-style function definition [-Wold-style-definition]
 4036 | factor_cmd(cp)
      | ^~~~~~~~~~
cmds.c:4054:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 4054 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:4057:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 4057 |                 cp = skip_param(cp);
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:4061:30: error: too many arguments to function 'skip_param'; expected 0, have 1
 4061 |                         cp = skip_param(cp);
      |                              ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c:4090:38: error: too many arguments to function 'get_string'; expected 0, have 2
 4090 |                                 cp = get_string(buf, sizeof(buf));
      |                                      ^~~~~~~~~~ ~~~
altproto.h:21:18: note: declared here
   21 | char            *get_string();
      |                  ^~~~~~~~~~
cmds.c:4100:44: error: too many arguments to function 'skip_space'; expected 0, have 1
 4100 |                                 cp1 = cp = skip_space(cp);
      |                                            ^~~~~~~~~~ ~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
cmds.c:4106:38: error: too many arguments to function 'skip_space'; expected 0, have 1
 4106 |                                 cp = skip_space(cp);
      |                                      ^~~~~~~~~~ ~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
cmds.c:4109:60: error: too many arguments to function 'skip_space'; expected 0, have 1
 4109 |                                                 cp2 = cp = skip_space(++cp);
      |                                                            ^~~~~~~~~~ ~~~~
altproto.h:20:18: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
cmds.c:4118:54: error: too many arguments to function 'parse_expr'; expected 0, have 4
 4118 |                                                 cp = parse_expr(tes, &n_tes, cp1, false);
      |                                                      ^~~~~~~~~~ ~~~
altproto.h:22:84: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
cmds.c:4132:38: error: too many arguments to function 'skip_comma_space'; expected 0, have 1
 4132 |                                 cp = skip_comma_space(cp);
      |                                      ^~~~~~~~~~~~~~~~ ~~
altproto.h:20:33: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
cmds.c:4179:43: error: too many arguments to function 'parse_var2'; expected 0, have 2
 4179 |                                 if ((cp = parse_var2(&v, cp)) == NULL) {
      |                                           ^~~~~~~~~~ ~~
altproto.h:22:69: note: declared here
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
cmds.c: In function 'display_term_count':
cmds.c:4227:1: warning: old-style function definition [-Wold-style-definition]
 4227 | display_term_count(en)
      | ^~~~~~~~~~~~~~~~~~
cmds.c: At top level:
cmds.c:4250:1: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
 4250 | unfactor_cmd(cp)
      | ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
cmds.c: In function 'unfactor_cmd':
cmds.c:4250:1: warning: old-style function definition [-Wold-style-definition]
 4250 | unfactor_cmd(cp)
      | ^~~~~~~~~~~~
cmds.c:4257:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 4257 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: In function 'div_loc_find':
cmds.c:4335:1: warning: old-style function definition [-Wold-style-definition]
 4335 | div_loc_find(expression, n)
      | ^~~~~~~~~~~~
cmds.c: At top level:
cmds.c:4358:1: error: conflicting types for 'fraction_cmd'; have 'int(void)'
 4358 | fraction_cmd(cp)
      | ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
cmds.c: In function 'fraction_cmd':
cmds.c:4358:1: warning: old-style function definition [-Wold-style-definition]
 4358 | fraction_cmd(cp)
      | ^~~~~~~~~~~~
cmds.c:4365:22: error: too many arguments to function 'skip_param'; expected 0, have 1
 4365 |         for (;; cp = skip_param(cp)) {
      |                      ^~~~~~~~~~ ~~
altproto.h:20:54: note: declared here
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
cmds.c: At top level:
cmds.c:4426:1: error: conflicting types for 'quit_cmd'; have 'int(void)'
 4426 | quit_cmd(cp)
      | ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'quit_cmd':
cmds.c:4426:1: warning: old-style function definition [-Wold-style-definition]
 4426 | quit_cmd(cp)
      | ^~~~~~~~
cmds.c:4432:22: error: too many arguments to function 'decstrtol'; expected 0, have 2
 4432 |                 ev = decstrtol(cp, &cp);
      |                      ^~~~~~~~~ ~~
altproto.h:25:17: note: declared here
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
cmds.c: At top level:
cmds.c:4446:1: error: conflicting types for 'read_cmd'; have 'int(void)'
 4446 | read_cmd(cp)
      | ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'read_cmd':
cmds.c:4446:1: warning: old-style function definition [-Wold-style-definition]
 4446 | read_cmd(cp)
      | ^~~~~~~~
cmds.c: In function 'read_file':
cmds.c:4471:1: warning: old-style function definition [-Wold-style-definition]
 4471 | read_file(cp)
      | ^~~~~~~~~
cmds.c: In function 'read_sub':
cmds.c:4565:1: warning: old-style function definition [-Wold-style-definition]
 4565 | read_sub(fp, filename)
      | ^~~~~~~~
cmds.c: In function 'edit_sub':
cmds.c:4611:1: warning: old-style function definition [-Wold-style-definition]
 4611 | edit_sub(cp)
      | ^~~~~~~~
cmds.c:4638:14: error: too many arguments to function 'read_cmd'; expected 0, have 1
 4638 |         if (!read_cmd(cp)) {
      |              ^~~~~~~~ ~~
cmds.c:4446:1: note: declared here
 4446 | read_cmd(cp)
      | ^~~~~~~~
cmds.c:4639:21: error: too many arguments to function 'pause_cmd'; expected 0, have 1
 4639 |                 if (pause_cmd(_("Prepare to rerun the editor, or type \"quit\""))) {
      |                     ^~~~~~~~~
cmds.c:1945:1: note: declared here
 1945 | pause_cmd(cp)
      | ^~~~~~~~~
cmds.c: At top level:
cmds.c:4650:1: error: conflicting types for 'edit_cmd'; have 'int(void)'
 4650 | edit_cmd(cp)
      | ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'edit_cmd':
cmds.c:4650:1: warning: old-style function definition [-Wold-style-definition]
 4650 | edit_cmd(cp)
      | ^~~~~~~~
cmds.c:4690:17: error: too many arguments to function 'list_cmd'; expected 0, have 1
 4690 |                 list_cmd("all");
      |                 ^~~~~~~~ ~~~~~
cmds.c:3294:1: note: declared here
 3294 | list_cmd(cp)
      | ^~~~~~~~
cmds.c: At top level:
cmds.c:4722:1: error: conflicting types for 'save_cmd'; have 'int(void)'
 4722 | save_cmd(cp)
      | ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
cmds.c: In function 'save_cmd':
cmds.c:4722:1: warning: old-style function definition [-Wold-style-definition]
 4722 | save_cmd(cp)
      | ^~~~~~~~
cmds.c:4772:14: error: too many arguments to function 'list_cmd'; expected 0, have 1
 4772 |         rv = list_cmd("all");
      |              ^~~~~~~~ ~~~~~
cmds.c:3294:1: note: declared here
 3294 | list_cmd(cp)
      | ^~~~~~~~
make: *** [<builtin>: cmds.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o factor.o factor.c
In file included from includes.h:117,
                 from factor.c:25:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
factor.c: In function 'factor_divide':
factor.c:43:1: warning: old-style function definition [-Wold-style-definition]
   43 | factor_divide(equation, np, v, d)
      | ^~~~~~~~~~~~~
factor.c: In function 'subtract_itself':
factor.c:59:1: warning: old-style function definition [-Wold-style-definition]
   59 | subtract_itself(equation, np)
      | ^~~~~~~~~~~~~~~
factor.c: In function 'factor_plus':
factor.c:87:1: warning: old-style function definition [-Wold-style-definition]
   87 | factor_plus(equation, np, v, d)
      | ^~~~~~~~~~~
factor.c: In function 'fplus_recurse':
factor.c:103:1: warning: old-style function definition [-Wold-style-definition]
  103 | fplus_recurse(equation, np, loc, level, v, d, whole_flag, div_only)
      | ^~~~~~~~~~~~~
factor.c: In function 'fplus_sub':
factor.c:171:1: warning: old-style function definition [-Wold-style-definition]
  171 | fplus_sub(equation, np, loc, i1, n1, i2, n2, level, v, d, whole_flag, div_only)
      | ^~~~~~~~~
factor.c: In function 'big_fplus':
factor.c:582:1: warning: old-style function definition [-Wold-style-definition]
  582 | big_fplus(equation, level, diff_sign, sop1, op1, op2, i1, i2, b1, b2, ai, aj, i, j, e1, e2)
      | ^~~~~~~~~
factor.c: In function 'factor_times':
factor.c:696:1: warning: old-style function definition [-Wold-style-definition]
  696 | factor_times(equation, np)
      | ^~~~~~~~~~~~
factor.c: In function 'ftimes_recurse':
factor.c:704:1: warning: old-style function definition [-Wold-style-definition]
  704 | ftimes_recurse(equation, np, loc, level)
      | ^~~~~~~~~~~~~~
factor.c: In function 'ftimes_sub':
factor.c:763:1: warning: old-style function definition [-Wold-style-definition]
  763 | ftimes_sub(equation, np, loc, i1, n1, i2, n2, level)
      | ^~~~~~~~~~
factor.c: In function 'factor_power':
factor.c:904:1: warning: old-style function definition [-Wold-style-definition]
  904 | factor_power(equation, np)
      | ^~~~~~~~~~~~
factor.c: In function 'fpower_recurse':
factor.c:912:1: warning: old-style function definition [-Wold-style-definition]
  912 | fpower_recurse(equation, np, loc, level)
      | ^~~~~~~~~~~~~~
factor.c: In function 'fpower_sub':
factor.c:970:1: warning: old-style function definition [-Wold-style-definition]
  970 | fpower_sub(equation, np, loc, i1, n1, i2, n2, level)
      | ^~~~~~~~~~
make: *** [<builtin>: factor.o] Error 1
gcc -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fexceptions -DUNIX -DVERSION=\"`cat VERSION`\" -DREADLINE    -c -o gcd.o gcd.c
In file included from includes.h:117,
                 from gcd.c:30:
altproto.h:8:17: error: conflicting types for 'clear_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                 ^~~~~~~~~
In file included from includes.h:116:
proto.h:88:5: note: previous declaration of 'clear_cmd' with type 'int(char *)'
   88 | int clear_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:8:30: error: conflicting types for 'quit_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                              ^~~~~~~~
proto.h:106:5: note: previous declaration of 'quit_cmd' with type 'int(char *)'
  106 | int quit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:42: error: conflicting types for 'list_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                          ^~~~~~~~
proto.h:95:5: note: previous declaration of 'list_cmd' with type 'int(char *)'
   95 | int list_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:54: error: conflicting types for 'simplify_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                      ^~~~~~~~~~~~
proto.h:100:5: note: previous declaration of 'simplify_cmd' with type 'int(char *)'
  100 | int simplify_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:8:70: error: conflicting types for 'help_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                      ^~~~~~~~
proto.h:171:5: note: previous declaration of 'help_cmd' with type 'int(char *)'
  171 | int help_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:8:82: error: conflicting types for 'eliminate_cmd'; have 'int(void)'
    8 | int             clear_cmd(), quit_cmd(), list_cmd(), simplify_cmd(), help_cmd(), eliminate_cmd();
      |                                                                                  ^~~~~~~~~~~~~
proto.h:93:5: note: previous declaration of 'eliminate_cmd' with type 'int(char *)'
   93 | int eliminate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:9:17: error: conflicting types for 'fraction_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                 ^~~~~~~~~~~~
proto.h:105:5: note: previous declaration of 'fraction_cmd' with type 'int(char *)'
  105 | int fraction_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:33: error: conflicting types for 'unfactor_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                 ^~~~~~~~~~~~
proto.h:103:5: note: previous declaration of 'unfactor_cmd' with type 'int(char *)'
  103 | int unfactor_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:9:49: error: conflicting types for 'compare_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:90:5: note: previous declaration of 'compare_cmd' with type 'int(char *)'
   90 | int compare_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:9:64: error: conflicting types for 'extrema_cmd'; have 'int(void)'
    9 | int             fraction_cmd(), unfactor_cmd(), compare_cmd(), extrema_cmd();
      |                                                                ^~~~~~~~~~~
proto.h:131:5: note: previous declaration of 'extrema_cmd' with type 'int(char *)'
  131 | int extrema_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:17: error: conflicting types for 'read_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                 ^~~~~~~~
proto.h:107:5: note: previous declaration of 'read_cmd' with type 'int(char *)'
  107 | int read_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:10:29: error: conflicting types for 'display_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                             ^~~~~~~~~~~
proto.h:94:5: note: previous declaration of 'display_cmd' with type 'int(char *)'
   94 | int display_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:10:44: error: conflicting types for 'calculate_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                            ^~~~~~~~~~~~~
proto.h:87:5: note: previous declaration of 'calculate_cmd' with type 'int(char *)'
   87 | int calculate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:10:61: error: conflicting types for 'solve_cmd'; have 'int(void)'
   10 | int             read_cmd(), display_cmd(), calculate_cmd(), solve_cmd();
      |                                                             ^~~~~~~~~
proto.h:69:5: note: previous declaration of 'solve_cmd' with type 'int(char *)'
   69 | int solve_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:11:17: error: conflicting types for 'factor_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                 ^~~~~~~~~~
proto.h:101:5: note: previous declaration of 'factor_cmd' with type 'int(char *)'
  101 | int factor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:11:31: error: conflicting types for 'derivative_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                               ^~~~~~~~~~~~~~
proto.h:130:5: note: previous declaration of 'derivative_cmd' with type 'int(char *)'
  130 | int derivative_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:11:49: error: conflicting types for 'replace_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                 ^~~~~~~~~~~
proto.h:99:5: note: previous declaration of 'replace_cmd' with type 'int(char *)'
   99 | int replace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:11:64: error: conflicting types for 'approximate_cmd'; have 'int(void)'
   11 | int             factor_cmd(), derivative_cmd(), replace_cmd(), approximate_cmd();
      |                                                                ^~~~~~~~~~~~~~~
proto.h:98:5: note: previous declaration of 'approximate_cmd' with type 'int(char *)'
   98 | int approximate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~~
altproto.h:12:17: error: conflicting types for 'save_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                 ^~~~~~~~
proto.h:111:5: note: previous declaration of 'save_cmd' with type 'int(char *)'
  111 | int save_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:29: error: conflicting types for 'taylor_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                             ^~~~~~~~~~
proto.h:132:5: note: previous declaration of 'taylor_cmd' with type 'int(char *)'
  132 | int taylor_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:12:43: error: conflicting types for 'limit_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                           ^~~~~~~~~
proto.h:133:5: note: previous declaration of 'limit_cmd' with type 'int(char *)'
  133 | int limit_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:12:56: error: conflicting types for 'echo_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                        ^~~~~~~~
proto.h:81:5: note: previous declaration of 'echo_cmd' with type 'int(char *)'
   81 | int echo_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:12:68: error: conflicting types for 'plot_cmd'; have 'int(void)'
   12 | int             save_cmd(), taylor_cmd(), limit_cmd(), echo_cmd(), plot_cmd();
      |                                                                    ^~~~~~~~
proto.h:64:5: note: previous declaration of 'plot_cmd' with type 'int(char *)'
   64 | int plot_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:17: error: conflicting types for 'copy_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                 ^~~~~~~~
proto.h:83:5: note: previous declaration of 'copy_cmd' with type 'int(char *)'
   83 | int copy_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:13:29: error: conflicting types for 'divide_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                             ^~~~~~~~~~
proto.h:92:5: note: previous declaration of 'divide_cmd' with type 'int(char *)'
   92 | int divide_cmd(char *cp);
      |     ^~~~~~~~~~
altproto.h:13:43: error: conflicting types for 'pause_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                           ^~~~~~~~~
proto.h:82:5: note: previous declaration of 'pause_cmd' with type 'int(char *)'
   82 | int pause_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:13:56: error: conflicting types for 'version_cmd'; have 'int(void)'
   13 | int             copy_cmd(), divide_cmd(), pause_cmd(), version_cmd();
      |                                                        ^~~~~~~~~~~
proto.h:65:5: note: previous declaration of 'version_cmd' with type 'int(char *)'
   65 | int version_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:14:17: error: conflicting types for 'edit_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                 ^~~~~~~~
proto.h:110:5: note: previous declaration of 'edit_cmd' with type 'int(char *)'
  110 | int edit_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:29: error: conflicting types for 'real_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                             ^~~~~~~~
proto.h:84:5: note: previous declaration of 'real_cmd' with type 'int(char *)'
   84 | int real_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:14:41: error: conflicting types for 'imaginary_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                         ^~~~~~~~~~~~~
proto.h:85:5: note: previous declaration of 'imaginary_cmd' with type 'int(char *)'
   85 | int imaginary_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:14:58: error: conflicting types for 'tally_cmd'; have 'int(void)'
   14 | int             edit_cmd(), real_cmd(), imaginary_cmd(), tally_cmd();
      |                                                          ^~~~~~~~~
proto.h:86:5: note: previous declaration of 'tally_cmd' with type 'int(char *)'
   86 | int tally_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:17: error: conflicting types for 'roots_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                 ^~~~~~~~~
proto.h:114:5: note: previous declaration of 'roots_cmd' with type 'int(char *)'
  114 | int roots_cmd(char *cp);
      |     ^~~~~~~~~
altproto.h:15:30: error: conflicting types for 'set_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                              ^~~~~~~
proto.h:80:5: note: previous declaration of 'set_cmd' with type 'int(char *)'
   80 | int set_cmd(char *cp);
      |     ^~~~~~~
altproto.h:15:41: error: conflicting types for 'variables_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                         ^~~~~~~~~~~~~
proto.h:97:5: note: previous declaration of 'variables_cmd' with type 'int(char *)'
   97 | int variables_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:15:58: error: conflicting types for 'code_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                          ^~~~~~~~
proto.h:96:5: note: previous declaration of 'code_cmd' with type 'int(char *)'
   96 | int code_cmd(char *cp);
      |     ^~~~~~~~
altproto.h:15:70: error: conflicting types for 'optimize_cmd'; have 'int(void)'
   15 | int             roots_cmd(), set_cmd(), variables_cmd(), code_cmd(), optimize_cmd(), push_cmd(), push_en();
      |                                                                      ^~~~~~~~~~~~
proto.h:73:5: note: previous declaration of 'optimize_cmd' with type 'int(char *)'
   73 | int optimize_cmd(char *cp);
      |     ^~~~~~~~~~~~
altproto.h:16:17: error: conflicting types for 'sum_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                 ^~~~~~~
proto.h:70:5: note: previous declaration of 'sum_cmd' with type 'int(char *)'
   70 | int sum_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:28: error: conflicting types for 'product_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                            ^~~~~~~~~~~
proto.h:71:5: note: previous declaration of 'product_cmd' with type 'int(char *)'
   71 | int product_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:16:43: error: conflicting types for 'for_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                           ^~~~~~~
proto.h:72:5: note: previous declaration of 'for_cmd' with type 'int(char *)'
   72 | int for_cmd(char *cp);
      |     ^~~~~~~
altproto.h:16:54: error: conflicting types for 'integrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                      ^~~~~~~~~~~~~
proto.h:175:5: note: previous declaration of 'integrate_cmd' with type 'int(char *)'
  175 | int integrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~
altproto.h:16:71: error: conflicting types for 'nintegrate_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                       ^~~~~~~~~~~~~~
proto.h:177:5: note: previous declaration of 'nintegrate_cmd' with type 'int(char *)'
  177 | int nintegrate_cmd(char *cp);
      |     ^~~~~~~~~~~~~~
altproto.h:16:89: error: conflicting types for 'laplace_cmd'; have 'int(void)'
   16 | int             sum_cmd(), product_cmd(), for_cmd(), integrate_cmd(), nintegrate_cmd(), laplace_cmd();
      |                                                                                         ^~~~~~~~~~~
proto.h:176:5: note: previous declaration of 'laplace_cmd' with type 'int(char *)'
  176 | int laplace_cmd(char *cp);
      |     ^~~~~~~~~~~
altproto.h:20:18: error: conflicting types for 'skip_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                  ^~~~~~~~~~
proto.h:47:7: note: previous declaration of 'skip_space' with type 'char *(char *)'
   47 | char *skip_space(char *cp);
      |       ^~~~~~~~~~
altproto.h:20:33: error: conflicting types for 'skip_comma_space'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                 ^~~~~~~~~~~~~~~~
proto.h:48:7: note: previous declaration of 'skip_comma_space' with type 'char *(char *)'
   48 | char *skip_comma_space(char *cp);
      |       ^~~~~~~~~~~~~~~~
altproto.h:20:54: error: conflicting types for 'skip_param'; have 'char *(void)'
   20 | char            *skip_space(), *skip_comma_space(), *skip_param();
      |                                                      ^~~~~~~~~~
proto.h:51:7: note: previous declaration of 'skip_param' with type 'char *(char *)'
   51 | char *skip_param(char *cp);
      |       ^~~~~~~~~~
altproto.h:21:18: error: conflicting types for 'get_string'; have 'char *(void)'
   21 | char            *get_string();
      |                  ^~~~~~~~~~
proto.h:39:7: note: previous declaration of 'get_string' with type 'char *(char *, int)'
   39 | char *get_string(char *string, int n);
      |       ^~~~~~~~~~
altproto.h:22:18: error: conflicting types for 'parse_equation'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                  ^~~~~~~~~~~~~~
proto.h:219:7: note: previous declaration of 'parse_equation' with type 'char *(int,  char *)'
  219 | char *parse_equation(int n, char *cp);
      |       ^~~~~~~~~~~~~~
altproto.h:22:37: error: conflicting types for 'parse_section'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                     ^~~~~~~~~~~~~
proto.h:218:7: note: previous declaration of 'parse_section' with type 'char *(token_type *, int *, char *, int)'
  218 | char *parse_section(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~~~~
altproto.h:22:55: error: conflicting types for 'parse_var'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                       ^~~~~~~~~
proto.h:221:7: note: previous declaration of 'parse_var' with type 'char *(long int *, char *)'
  221 | char *parse_var(long *vp, char *cp);
      |       ^~~~~~~~~
altproto.h:22:69: error: conflicting types for 'parse_var2'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                     ^~~~~~~~~~
proto.h:165:7: note: previous declaration of 'parse_var2' with type 'char *(long int *, char *)'
  165 | char *parse_var2(long *vp, char *cp);
      |       ^~~~~~~~~~
altproto.h:22:84: error: conflicting types for 'parse_expr'; have 'char *(void)'
   22 | char            *parse_equation(), *parse_section(), *parse_var(), *parse_var2(), *parse_expr();
      |                                                                                    ^~~~~~~~~~
proto.h:220:7: note: previous declaration of 'parse_expr' with type 'char *(token_type *, int *, char *, int)'
  220 | char *parse_expr(token_type *equation, int *np, char *cp, int allow_space);
      |       ^~~~~~~~~~
altproto.h:23:18: error: conflicting types for 'list_expression'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                  ^~~~~~~~~~~~~~~
proto.h:190:7: note: previous declaration of 'list_expression' with type 'char *(token_type *, int,  int)'
  190 | char *list_expression(token_type *p1, int n, int export_flag);
      |       ^~~~~~~~~~~~~~~
altproto.h:23:38: error: conflicting types for 'list_equation'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                      ^~~~~~~~~~~~~
proto.h:189:7: note: previous declaration of 'list_equation' with type 'char *(int,  int)'
  189 | char *list_equation(int n, int export_flag);
      |       ^~~~~~~~~~~~~
altproto.h:23:56: error: conflicting types for 'flist_equation_string'; have 'char *(void)'
   23 | char            *list_expression(), *list_equation(), *flist_equation_string();
      |                                                        ^~~~~~~~~~~~~~~~~~~~~
proto.h:197:7: note: previous declaration of 'flist_equation_string' with type 'char *(int)'
  197 | char *flist_equation_string(int n);
      |       ^~~~~~~~~~~~~~~~~~~~~
altproto.h:24:17: error: conflicting types for 'gcd'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                 ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
altproto.h:24:24: error: conflicting types for 'gcd_verified'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                        ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
altproto.h:24:40: error: conflicting types for 'my_round'; have 'double(void)'
   24 | double          gcd(), gcd_verified(), my_round(), multiply_out_unique();
      |                                        ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
altproto.h:25:17: error: conflicting types for 'decstrtol'; have 'long int(void)'
   25 | long            decstrtol(), max_memory_usage();
      |                 ^~~~~~~~~
proto.h:49:6: note: previous declaration of 'decstrtol' with type 'long int(char *, char **)'
   49 | long decstrtol(char *cp, char **cpp);
      |      ^~~~~~~~~
gcd.c:45:1: error: conflicting types for 'gcd'; have 'double(void)'
   45 | gcd(d1, d2)
      | ^~~
proto.h:150:8: note: previous declaration of 'gcd' with type 'double(double,  double)'
  150 | double gcd(double d1, double d2);
      |        ^~~
gcd.c: In function 'gcd':
gcd.c:45:1: warning: old-style function definition [-Wold-style-definition]
   45 | gcd(d1, d2)
      | ^~~
gcd.c: At top level:
gcd.c:95:1: error: conflicting types for 'gcd_verified'; have 'double(void)'
   95 | gcd_verified(d1, d2)
      | ^~~~~~~~~~~~
proto.h:151:8: note: previous declaration of 'gcd_verified' with type 'double(double,  double)'
  151 | double gcd_verified(double d1, double d2);
      |        ^~~~~~~~~~~~
gcd.c: In function 'gcd_verified':
gcd.c:95:1: warning: old-style function definition [-Wold-style-definition]
   95 | gcd_verified(d1, d2)
      | ^~~~~~~~~~~~
gcd.c:100:19: error: too many arguments to function 'gcd'; expected 0, have 2
  100 |         divisor = gcd(d1, d2);
      |                   ^~~ ~~
gcd.c:45:1: note: declared here
   45 | gcd(d1, d2)
      | ^~~
gcd.c:106:21: error: too many arguments to function 'gcd'; expected 0, have 2
  106 |                 if (gcd(d3, d4) != 1.0)
      |                     ^~~ ~~
gcd.c:45:1: note: declared here
   45 | gcd(d1, d2)
      | ^~~
gcd.c: At top level:
gcd.c:118:1: error: conflicting types for 'my_round'; have 'double(void)'
  118 | my_round(d1)
      | ^~~~~~~~
proto.h:152:8: note: previous declaration of 'my_round' with type 'double(double)'
  152 | double my_round(double d1);
      |        ^~~~~~~~
gcd.c: In function 'my_round':
gcd.c:118:1: warning: old-style function definition [-Wold-style-definition]
  118 | my_round(d1)
      | ^~~~~~~~
gcd.c: In function 'f_to_fraction':
gcd.c:144:1: warning: old-style function definition [-Wold-style-definition]
  144 | f_to_fraction(d, numeratorp, denominatorp)
      | ^~~~~~~~~~~~~
gcd.c:169:14: error: too many arguments to function 'my_round'; expected 0, have 1
  169 |         k4 = my_round(d);
      |              ^~~~~~~~ ~
gcd.c:118:1: note: declared here
  118 | my_round(d1)
      | ^~~~~~~~
gcd.c:176:24: error: too many arguments to function 'gcd'; expected 0, have 2
  176 |         if ((divisor = gcd(1.0, d)) > epsilon) {
      |                        ^~~ ~~~
gcd.c:45:1: note: declared here
   45 | gcd(d1, d2)
      | ^~~
gcd.c:177:29: error: too many arguments to function 'my_round'; expected 0, have 1
  177 |                 numerator = my_round(d / divisor);
      |                             ^~~~~~~~ ~~~~~~~~~~~
gcd.c:118:1: note: declared here
  118 | my_round(d1)
      | ^~~~~~~~
gcd.c:178:31: error: too many arguments to function 'my_round'; expected 0, have 1
  178 |                 denominator = my_round(1.0 / divisor);
      |                               ^~~~~~~~ ~~~~~~~~~~~~~
gcd.c:118:1: note: declared here
  118 | my_round(d1)
      | ^~~~~~~~
gcd.c:185:27: error: too many arguments to function 'gcd'; expected 0, have 2
  185 |                 divisor = gcd(numerator, denominator);
      |                           ^~~ ~~~~~~~~~
gcd.c:45:1: note: declared here
   45 | gcd(d1, d2)
      | ^~~
gcd.c: In function 'make_fractions':
gcd.c:216:1: warning: old-style function definition [-Wold-style-definition]
  216 | make_fractions(equation, np)
      | ^~~~~~~~~~~~~~
gcd.c: In function 'make_simple_fractions':
gcd.c:239:1: warning: old-style function definition [-Wold-style-definition]
  239 | make_simple_fractions(equation, np)
      | ^~~~~~~~~~~~~~~~~~~~~
gcd.c: In function 'make_mixed_fractions':
gcd.c:327:1: warning: old-style function definition [-Wold-style-definition]
  327 | make_mixed_fractions(equation, np)
      | ^~~~~~~~~~~~~~~~~~~~
gcd.c:350:46: error: too many arguments to function 'my_round'; expected 0, have 1
  350 |                                 remainder1 = my_round(remainder1 * denominator);
      |                                              ^~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
gcd.c:118:1: note: declared here
  118 | my_round(d1)
      | ^~~~~~~~
make: *** [<builtin>: gcd.o] Error 1
error: Bad exit status from /home/pterjan/rpmbuild/tmp/rpm-tmp.nH3FDt (%build)

RPM build errors:
    Bad exit status from /home/pterjan/rpmbuild/tmp/rpm-tmp.nH3FDt (%build)
I: [iurt_root_command] ERROR: chroot