Print this page
rpcgen should only produce ANSI code

*** 18,27 **** --- 18,29 ---- * * CDDL HEADER END */ /* + * Copyright 2014 Garrett D'Amore <garrett@damore.org> + * * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */
*** 134,144 **** int indefinitewait; /* If started by port monitors, hang till it wants */ int exitnow; /* If started by port monitors, exit after the call */ int timerflag; /* TRUE if !indefinite && !exitnow */ int newstyle; /* newstyle of passing arguments (by value) */ - int Cflag = 0; /* ANSI C syntax */ int CCflag = 0; /* C++ files */ static int allfiles; /* generate all files */ int tirpcflag = 1; /* generating code for tirpc, by default */ xdrfunc *xdrfunc_head = NULL; /* xdr function list */ xdrfunc *xdrfunc_tail = NULL; /* xdr function list */ --- 136,145 ----
*** 513,523 **** char *outfilename; long tell; char *guard; list *l; xdrfunc *xdrfuncp; - int i; open_input(infile, define); outfilename = extend ? extendfile(infile, outfile) : outfile; open_output(infile, outfilename); add_warning(); --- 514,523 ----
*** 536,552 **** f_print(fout, "#include <thread.h>\n"); f_print(fout, "#endif /* !_KERNEL */\n"); }; /* put the C++ support */ ! if (Cflag && !CCflag) { f_print(fout, "\n#ifdef __cplusplus\n"); f_print(fout, "extern \"C\" {\n"); f_print(fout, "#endif\n\n"); } ! /* put in a typedef for quadprecision. Only with Cflag */ /* * declaration of struct rpcgen_table must go before * the definition of arrays like *_1_table[] */ --- 536,552 ---- f_print(fout, "#include <thread.h>\n"); f_print(fout, "#endif /* !_KERNEL */\n"); }; /* put the C++ support */ ! if (!CCflag) { f_print(fout, "\n#ifdef __cplusplus\n"); f_print(fout, "extern \"C\" {\n"); f_print(fout, "#endif\n\n"); } ! /* put in a typedef for quadprecision. */ /* * declaration of struct rpcgen_table must go before * the definition of arrays like *_1_table[] */
*** 580,624 **** f_print(fout, "\n#ifdef __cplusplus\n"); f_print(fout, "extern \"C\" {\n"); f_print(fout, "#endif\n"); } ! if (!Cflag) { ! xdrfuncp = xdrfunc_head; ! while (xdrfuncp != NULL) { ! print_xdr_func_def(xdrfuncp->name, ! xdrfuncp->pointerp, 2); ! xdrfuncp = xdrfuncp->next; ! } ! } else { ! for (i = 1; i < 3; i++) { ! if (i == 1) ! f_print(fout, ! "\n#if defined(__STDC__) || defined(__cplusplus)\n"); ! else ! f_print(fout, "\n#else /* K&R C */\n"); xdrfuncp = xdrfunc_head; while (xdrfuncp != NULL) { ! print_xdr_func_def(xdrfuncp->name, ! xdrfuncp->pointerp, i); xdrfuncp = xdrfuncp->next; } } - f_print(fout, "\n#endif /* K&R C */\n"); - } - } if (extend && tell == ftell(fout)) { (void) unlink(outfilename); } - if (Cflag) { f_print(fout, "\n#ifdef __cplusplus\n"); f_print(fout, "}\n"); f_print(fout, "#endif\n"); - } f_print(fout, "\n#endif /* !_%s */\n", guard); } /* --- 580,606 ---- f_print(fout, "\n#ifdef __cplusplus\n"); f_print(fout, "extern \"C\" {\n"); f_print(fout, "#endif\n"); } ! f_print(fout, "\n"); xdrfuncp = xdrfunc_head; while (xdrfuncp != NULL) { ! print_xdr_func_def(xdrfuncp->name, xdrfuncp->pointerp); xdrfuncp = xdrfuncp->next; } + f_print(fout, "\n"); } if (extend && tell == ftell(fout)) { (void) unlink(outfilename); } f_print(fout, "\n#ifdef __cplusplus\n"); f_print(fout, "}\n"); f_print(fout, "#endif\n"); f_print(fout, "\n#endif /* !_%s */\n", guard); } /*
*** 645,675 **** f_print(fout, "#include <stdio.h>\n"); f_print(fout, "#include <stdlib.h> /* getenv, exit */\n"); f_print(fout, "#include <signal.h>\n"); - if (Cflag) { f_print(fout, "#include <rpc/pmap_clnt.h> /* for pmap_unset */\n"); f_print(fout, "#include <string.h> /* strcmp */\n"); ! } if (strcmp(svcclosetime, "-1") == 0) indefinitewait = 1; else if (strcmp(svcclosetime, "0") == 0) exitnow = 1; else if (inetdflag || pmflag) timerflag = 1; if (!tirpcflag && inetdflag) f_print(fout, "#include <sys/termios.h> /* TIOCNOTTY */\n"); ! if (Cflag && (inetdflag || pmflag)) if (tirpcflag) f_print(fout, "#include <unistd.h> /* setsid */\n"); if (tirpcflag) f_print(fout, "#include <sys/types.h>\n"); - f_print(fout, "#include <memory.h>\n"); f_print(fout, "#include <stropts.h>\n"); if (inetdflag || !tirpcflag) { f_print(fout, "#include <sys/socket.h>\n"); f_print(fout, "#include <netinet/in.h>\n"); f_print(fout, "#include <rpc/svc_soc.h>\n"); --- 627,655 ---- f_print(fout, "#include <stdio.h>\n"); f_print(fout, "#include <stdlib.h> /* getenv, exit */\n"); f_print(fout, "#include <signal.h>\n"); f_print(fout, "#include <rpc/pmap_clnt.h> /* for pmap_unset */\n"); f_print(fout, "#include <string.h> /* strcmp */\n"); ! if (strcmp(svcclosetime, "-1") == 0) indefinitewait = 1; else if (strcmp(svcclosetime, "0") == 0) exitnow = 1; else if (inetdflag || pmflag) timerflag = 1; if (!tirpcflag && inetdflag) f_print(fout, "#include <sys/termios.h> /* TIOCNOTTY */\n"); ! if (inetdflag || pmflag) if (tirpcflag) f_print(fout, "#include <unistd.h> /* setsid */\n"); if (tirpcflag) f_print(fout, "#include <sys/types.h>\n"); f_print(fout, "#include <stropts.h>\n"); if (inetdflag || !tirpcflag) { f_print(fout, "#include <sys/socket.h>\n"); f_print(fout, "#include <netinet/in.h>\n"); f_print(fout, "#include <rpc/svc_soc.h>\n");
*** 681,694 **** f_print(fout, "#include <sys/resource.h> /* rlimit */\n"); if (logflag || inetdflag || pmflag) f_print(fout, "#include <syslog.h>\n"); /* for ANSI-C */ ! if (Cflag) ! f_print(fout, ! "\n#ifndef SIG_PF\n#define SIG_PF void(*)\ ! (int)\n#endif\n"); f_print(fout, "\n#ifdef DEBUG\n#define RPC_SVC_FG\n#endif\n"); if (timerflag) f_print(fout, "\n#define _RPCSVC_CLOSEDOWN %s\n", svcclosetime); --- 661,672 ---- f_print(fout, "#include <sys/resource.h> /* rlimit */\n"); if (logflag || inetdflag || pmflag) f_print(fout, "#include <syslog.h>\n"); /* for ANSI-C */ ! f_print(fout, "\n#ifndef SIG_PF\n" ! "#define SIG_PF void(*)(int)\n#endif\n"); f_print(fout, "\n#ifdef DEBUG\n#define RPC_SVC_FG\n#endif\n"); if (timerflag) f_print(fout, "\n#define _RPCSVC_CLOSEDOWN %s\n", svcclosetime);
*** 722,732 **** open_input(infile, define); outfilename = extend ? extendfile(infile, outfile) : outfile; open_output(infile, outfilename); add_warning(); - if (Cflag) f_print(fout, "#include <memory.h> /* for memset */\n"); if (infile && (include = extendfile(infile, ".h"))) { f_print(fout, "#include \"%s\"\n", include); free(include); } else --- 700,709 ----
*** 1100,1115 **** if (flag[ch]) return (0); flag[ch] = 1; break; ! case 'C': /* ANSI C syntax */ ! Cflag = 1; ch = argv[i][j+1]; /* get next char */ if (ch != 'C') break; CCflag = 1; break; case 'b': /* * Turn TIRPC flag off for --- 1077,1092 ---- if (flag[ch]) return (0); flag[ch] = 1; break; ! case 'C': /* ANSI C syntax (default) */ ch = argv[i][j+1]; /* get next char */ if (ch != 'C') break; + /* Undocumented C++ mode */ CCflag = 1; break; case 'b': /* * Turn TIRPC flag off for