x
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3393 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -42,6 +42,7 @@ RCSID("$Id$");
|
|||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
void strupr(char *s)
|
void strupr(char *s)
|
||||||
@@ -99,19 +100,44 @@ try_unsigned(FILE *f, int len)
|
|||||||
fprintf(f, "/* There is no %d bit type */\n", len);
|
fprintf(f, "/* There is no %d bit type */\n", len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
print_bt(FILE *f, int flag)
|
||||||
|
{
|
||||||
|
if(flag == 0){
|
||||||
|
fprintf(f, "/* For compatibility with various type definitions */\n");
|
||||||
|
fprintf(f, "#ifndef __BIT_TYPES_DEFINED__\n");
|
||||||
|
fprintf(f, "#define __BIT_TYPES_DEFINED__\n");
|
||||||
|
fprintf(f, "\n");
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
int flag;
|
||||||
|
char *fn, *hb;
|
||||||
|
|
||||||
if(argc < 2)
|
if(argc < 2){
|
||||||
|
fn = "bits.h";
|
||||||
|
hb = "__BITS_H__";
|
||||||
f = stdout;
|
f = stdout;
|
||||||
else
|
} else {
|
||||||
|
char *p;
|
||||||
|
fn = argv[1];
|
||||||
|
hb = malloc(strlen(fn) + 5);
|
||||||
|
sprintf(hb, "__%s__", fn);
|
||||||
|
for(p = hb; *p; p++){
|
||||||
|
if(!isalnum(*p))
|
||||||
|
*p = '_';
|
||||||
|
}
|
||||||
f = fopen(argv[1], "w");
|
f = fopen(argv[1], "w");
|
||||||
fprintf(f, "/*\n");
|
}
|
||||||
fprintf(f, " * bits.h -- this file was generated for %s\n", HOST);
|
fprintf(f, "/* %s -- this file was generated for %s by\n", fn, HOST);
|
||||||
fprintf(f, " */\n\n");
|
fprintf(f, " %*s %s */\n\n", strlen(fn), "",
|
||||||
fprintf(f, "#ifndef __BITS_H__\n");
|
"$Id$");
|
||||||
fprintf(f, "#define __BITS_H__\n");
|
fprintf(f, "#ifndef %s\n", hb);
|
||||||
|
fprintf(f, "#define %s\n", hb);
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
fprintf(f, "#include <sys/types.h>\n");
|
fprintf(f, "#include <sys/types.h>\n");
|
||||||
@@ -126,40 +152,50 @@ int main(int argc, char **argv)
|
|||||||
fprintf(f, "#include <netinet/in6_machtypes.h>\n");
|
fprintf(f, "#include <netinet/in6_machtypes.h>\n");
|
||||||
#endif
|
#endif
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
fprintf(f, "/* For compatibility with various type definitions */\n");
|
|
||||||
fprintf(f, "#ifndef __BIT_TYPES_DEFINED__\n");
|
|
||||||
fprintf(f, "#define __BIT_TYPES_DEFINED__\n");
|
|
||||||
fprintf(f, "\n");
|
|
||||||
|
|
||||||
|
flag = 0;
|
||||||
#ifndef HAVE_INT8_T
|
#ifndef HAVE_INT8_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_signed (f, 8);
|
try_signed (f, 8);
|
||||||
#endif /* HAVE_INT8_T */
|
#endif /* HAVE_INT8_T */
|
||||||
#ifndef HAVE_INT16_T
|
#ifndef HAVE_INT16_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_signed (f, 16);
|
try_signed (f, 16);
|
||||||
#endif /* HAVE_INT16_T */
|
#endif /* HAVE_INT16_T */
|
||||||
#ifndef HAVE_INT32_T
|
#ifndef HAVE_INT32_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_signed (f, 32);
|
try_signed (f, 32);
|
||||||
#endif /* HAVE_INT32_T */
|
#endif /* HAVE_INT32_T */
|
||||||
|
#if 0
|
||||||
#ifndef HAVE_INT64_T
|
#ifndef HAVE_INT64_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_signed (f, 64);
|
try_signed (f, 64);
|
||||||
#endif /* HAVE_INT64_T */
|
#endif /* HAVE_INT64_T */
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_U_INT8_T
|
#ifndef HAVE_U_INT8_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_unsigned (f, 8);
|
try_unsigned (f, 8);
|
||||||
#endif /* HAVE_INT8_T */
|
#endif /* HAVE_INT8_T */
|
||||||
#ifndef HAVE_U_INT16_T
|
#ifndef HAVE_U_INT16_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_unsigned (f, 16);
|
try_unsigned (f, 16);
|
||||||
#endif /* HAVE_U_INT16_T */
|
#endif /* HAVE_U_INT16_T */
|
||||||
#ifndef HAVE_U_INT32_T
|
#ifndef HAVE_U_INT32_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_unsigned (f, 32);
|
try_unsigned (f, 32);
|
||||||
#endif /* HAVE_U_INT32_T */
|
#endif /* HAVE_U_INT32_T */
|
||||||
|
#if 0
|
||||||
#ifndef HAVE_U_INT64_T
|
#ifndef HAVE_U_INT64_T
|
||||||
|
flag = print_bt(f, flag);
|
||||||
try_unsigned (f, 64);
|
try_unsigned (f, 64);
|
||||||
#endif /* HAVE_U_INT64_T */
|
#endif /* HAVE_U_INT64_T */
|
||||||
|
#endif
|
||||||
|
|
||||||
fprintf(f, "\n");
|
if(flag){
|
||||||
fprintf(f, "#endif /* __BIT_TYPES_DEFINED__ */\n");
|
fprintf(f, "\n");
|
||||||
fprintf(f, "\n");
|
fprintf(f, "#endif /* __BIT_TYPES_DEFINED__ */\n\n");
|
||||||
fprintf(f, "#endif /* __BITS_H__ */\n");
|
}
|
||||||
|
fprintf(f, "#endif /* %s */\n", hb);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user