Got the profile code to work on the PC
authorKeith Vetter <keithv@fusion.com>
Thu, 27 Apr 1995 18:08:37 +0000 (18:08 +0000)
committerKeith Vetter <keithv@fusion.com>
Thu, 27 Apr 1995 18:08:37 +0000 (18:08 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5549 dc483132-0cff-0310-8789-dd5450dbe970

src/util/profile/ChangeLog
src/util/profile/Makefile.in
src/util/profile/prof_file.c
src/util/profile/prof_init.c
src/util/profile/prof_int.h
src/util/profile/prof_parse.c
src/util/profile/prof_section.c
src/util/profile/prof_tree.c
src/util/profile/profile.hin
src/util/profile/test_parse.c
src/util/profile/test_profile.c

index 180216f94c252e3721fd9a4a9efd0f1bcdf9eef6..58bea73c59403d2b55351a2db58e57d1a2816e20 100644 (file)
@@ -1,3 +1,13 @@
+Thu Apr 27 10:43:24 1995 Keith Vetter (keithv@fusion.com)
+
+       * Makefile.in: made to work on the PC.
+       * profile.hin, prof_int.h: use _MSDOS instead of _WINDOWS 
+          so we can compile DOS test programs.
+       * *.c: Don't need to include file unistd.h.
+       * test_*.c: Made to work under DOS--used stubs for the com_err stuff.
+       * prof_parse.c: Turned a 2k automatic array into a malloc'ed block
+          because windows dll's shouldn't use up a lot of stack space.
+
 Wed Apr 26 09:54:18 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
 
        * profile.hin: Only define PROTOTYPE if it is undefined.
index b13253823b1b2ddd6c512c8e9579d123c1a0fb09..898ef0ce26ce3d78619a33076de73a598d1d65b2 100644 (file)
@@ -1,12 +1,16 @@
 CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 
+##DOSBUILDTOP = ..\..
+##DOSLIBNAME=profile.lib
+##DOS!include $(BUILDTOP)\config\windows.in
+
 LOCALINCLUDE=-I. -I$(srcdir)/../et
 
-OBJS = prof_tree.o \
-       prof_file.o \
-       prof_parse.o \
-       prof_err.o \
-       prof_init.o
+OBJS = prof_tree.$(OBJEXT) \
+       prof_file.$(OBJEXT) \
+       prof_parse.$(OBJEXT) \
+       prof_err.$(OBJEXT) \
+       prof_init.$(OBJEXT)
 
 SRCS = $(srcdir)/prof_tree.c \
        $(srcdir)/prof_file.c \
@@ -14,19 +18,38 @@ SRCS = $(srcdir)/prof_tree.c \
        prof_err.c \
        $(srcdir)/prof_init.c
 
-LIBS = ../et/libcom_err.a
+LIBS = ../et/libcom_err.$(LIBEXT)
+
+all:: all-$(WHAT)
+
+all-max:: all-unix
+all-unix:: includes libprofile.a test_parse test_profile
 
-all:: includes libprofile.a test_parse test_profile
+all-windows: $(OBJS)
+
+awk-windows:
+       $(AWK) -f $(BUILDTOP)/util/et/et_h.awk outfile=prof_err.h prof_err.et
+       $(AWK) -f $(BUILDTOP)/util/et/et_c.awk outfile=prof_err.c prof_err.et
+       if exist prof_err.h copy profile.hin+prof_err.h profile.h
+       if exist profile.h copy profile.h $(BUILDTOP)\include\profile.h
 
 libprofile.a: $(OBJS)
-       $(ARADD) $@ $(OBJS)
+       $(ARCHIVE) $@ $(OBJS)
        $(RANLIB) $@
 
-test_parse: test_parse.o $(OBJS) $(LIBS)
-       $(CC) -o test_parse test_parse.o $(OBJS) $(LIBS)
+test_parse: test_parse.$(OBJEXT) $(OBJS) $(LIBS)
+       $(CC) -o test_parse test_parse.$(OBJEXT) $(OBJS) $(LIBS)
+
+test_profile: test_profile.$(OBJEXT) $(OBJS) $(LIBS)
+       $(CC) -o test_profile test_profile.$(OBJEXT) $(OBJS) $(LIBS)
 
-test_profile: test_profile.o $(OBJS) $(LIBS)
-       $(CC) -o test_profile test_profile.o $(OBJS) $(LIBS)
+test_parse.exe: 
+       $(CC) $(CFLAGS2) -o test_parse.exe test_parse.c \
+               prof_parse.c prof_tree.c /link /stack:16384
+
+test_profile.exe: 
+       $(CC) $(CFLAGS2) -o test_profile.exe test_profile.c prof_init.c \
+               prof_file.c prof_parse.c prof_tree.c /link /stack:16384
 
 profile.h: prof_err.h profile.hin
        cat $(srcdir)/profile.hin prof_err.h > $@
@@ -35,9 +58,22 @@ prof_err.h: $(srcdir)/prof_err.et
 
 prof_err.c: $(srcdir)/prof_err.et
 
-clean::
+clean:: clean-$(WHAT)
+
+clean-mac:: clean-unix
+clean-unix::
        rm -f $(PROGS) *.o *~ test_parse core libprofile.a prof_err.h \
                prof_err.c
+clean-windows::
+       $(RM) profile.lib profile.bak test_parse.exe test_profile.exe
+
+check:: check-$(WHAT)
+
+check-mac::
+check-unix::
+check-windows:: test_profile.exe test_parse.exe
+       $(RM) *.obj
+       test_parse test.ini
 
 # +++ Dependency line eater +++
 # 
index eeae904190db9e37762bf75b690f4166762e4413..b4b305e1826ddfcf50059b2732b7642a5f277564 100644 (file)
@@ -3,7 +3,6 @@
  */
 
 #include <stdio.h>
-#include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
 
 #include "prof_int.h"
 
+#ifdef _WINDOWS
+#define stat _stat
+#endif
+
 errcode_t profile_open_file(filename, ret_prof)
        const char *filename;
        prf_file_t *ret_prof;
index 9a4a0b533ad38796d6e6dc0e0d923c868de1a445..57af950fb3ada3d9f34d363dd7ba604c386b3c33 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <stdio.h>
 #include <string.h>
-#include <unistd.h>
 #include <stdlib.h>
 #include <errno.h>
 
@@ -132,11 +131,6 @@ errcode_t profile_get_values(profile, names, ret_values)
 
     init_list(&values);
 
-    if (profile == 0) {
-       *ret_values = 0;
-       return 0;
-    }
-
     file = profile->first_file;
     retval = profile_update_file(file);
     if (retval)
index 2585277da769c456c41aa5af906842fcf256a8e8..940e2ac9ac07cc351988958fe9665b596a239b1e 100644 (file)
@@ -5,7 +5,7 @@
 #include <time.h>
 #include "prof_err.h"
 
-#if defined(__STDC__) || defined(_WINDOWS)
+#if defined(__STDC__) || defined(_MSDOS)
 #define PROTOTYPE(x) x
 #else
 #define PROTOTYPE(x) ()
index 6f85a6f2ca2b2f9e347744e8c85b697295979382..794e982667f2eb7c29e773afce3a7fc2bf9da3d4 100644 (file)
@@ -1,6 +1,5 @@
 #include <stdio.h>
 #include <string.h>
-#include <unistd.h>
 #include <stdlib.h>
 #include <errno.h>
 #include <ctype.h>
@@ -166,24 +165,37 @@ errcode_t profile_parse_file(f, root)
        FILE    *f;
        struct profile_node **root;
 {
-       char    buf[2048];
-       int     retval;
+#define BUF_SIZE       2048
+       char *bptr;
+       errcode_t retval;
        struct parse_state state;
 
+       bptr = malloc (BUF_SIZE);
+       if (!bptr)
+               return ENOMEM;
+
        retval = parse_init_state(&state);
-       if (retval)
+       if (retval) {
+               free (bptr);
                return retval;
+       }
        while (!feof(f)) {
-               if (fgets(buf, sizeof(buf), f) == NULL)
+               if (fgets(bptr, BUF_SIZE, f) == NULL)
                        break;
-               retval = parse_line(buf, &state);
-               if (retval)
+               retval = parse_line(bptr, &state);
+               if (retval) {
+                       free (bptr);
                        return retval;
+               }
        }
        *root = state.root_section;
+
+       free (bptr);
        return 0;
 }
 
+#ifndef _WINDOWS
+
 void dump_profile(root, level)
        struct profile_node *root;
        int level;
@@ -217,4 +229,4 @@ void dump_profile(root, level)
                dump_profile(p, level+1);
        } while (iter != 0);
 }
-
+#endif /* ! _WINDOWS */
index bbcf65ae1994e28a7c27ed2dd81ebd0fdb10e692..b3407ecc01156ab9527449df840cf81d9d46cba9 100644 (file)
@@ -7,7 +7,6 @@
 
 #include <stdio.h>
 #include <string.h>
-#include <unistd.h>
 #include <stdlib.h>
 
 #include "prof_int.h"
index 1dc701373fad08938e3bb8dcff32b88bd8593042..c39831955e95aae039dd3c9f8244c57c0c5bc4f9 100644 (file)
@@ -19,7 +19,6 @@
 
 #include <stdio.h>
 #include <string.h>
-#include <unistd.h>
 #include <stdlib.h>
 #include <errno.h>
 #include <ctype.h>
index 2fec69337d3c87d6929567686048443730ab86d4..3c0d9df95f639a6d14d3dcd1457f398bf5d0c2f7 100644 (file)
@@ -5,7 +5,7 @@
 typedef struct _profile_t *profile_t;
 
 #if !defined(PROTOTYPE)
-#if defined(__STDC__) || defined(_WINDOWS)
+#if defined(__STDC__) || defined(_MSDOS)
 #define PROTOTYPE(x) x
 #else
 #define PROTOTYPE(x) ()
index fd81d1d16e85a62bc72a0aa5539d60edda50f1ab..8ea54510b85c9fb68a968548dbffd2904c2792a1 100644 (file)
@@ -1,20 +1,33 @@
 #include <stdio.h>
 #include <string.h>
-#include <unistd.h>
 #include <stdlib.h>
 #include <errno.h>
 #include <ctype.h>
 
 #include "profile.h"
+
+#ifndef _MSDOS
 #include "com_err.h"
+#else
+
+#include "prof_int.h"
+#define initialize_prof_error_table()
+char *error_message (long err) {
+       static char buf[50];
+
+       sprintf (buf, " 0x%lX (%ld)", err, err);
+       return buf;
+}
+#endif
 
 int main(argc, argv)
        int     argc;
        char    **argv;
 {
-       struct profile_relation *root;
+       struct profile_node *root;
        unsigned long retval;
        FILE *f;
+       void dump_profile(struct profile_node *root, int level);
 
        initialize_prof_error_table();
        if (argc != 2) {
index c6dfaa62a86c095032babb261dba9d8c8009e04d..52acfbe708c36ce58d544fb800178d2fb5385019 100644 (file)
@@ -3,11 +3,20 @@
  */
 
 #include <stdio.h>
-#include <unistd.h>
 #include <stdlib.h>
 
 #include "profile.h"
+#ifndef _MSDOS
 #include "com_err.h"
+#else
+
+/* Stubs for the error handling routines */
+#include "prof_int.h"
+void initialize_prof_error_table() {}
+void com_err (char *fmt, long err, char *msg) {
+    printf (fmt, err, msg);
+}
+#endif
 
 int main(argc, argv)
     int                argc;
@@ -41,7 +50,9 @@ int main(argc, argv)
     }
     free(values);
     profile_release(profile);
-    exit(0);
+
+       return 0;
+
 }