Annotation of uae/src/missing.c, revision 1.1.1.1

1.1       root        1:  /*
                      2:   * UAE - The Un*x Amiga Emulator
                      3:   *
                      4:   * Various stuff missing in some OSes.
                      5:   *
                      6:   * Copyright 1997 Bernd Schmidt
                      7:   */
                      8: 
                      9: #include "sysconfig.h"
                     10: #include "sysdeps.h"
                     11: 
                     12: #include "config.h"
                     13: #include "options.h"
                     14: #include "uae.h"
                     15: 
                     16: #ifndef HAVE_STRDUP
                     17: 
                     18: char *my_strdup (const char *s)
                     19: {
                     20:     /* The casts to char * are there to shut up the compiler on HPUX */
                     21:     char *x = (char*)xmalloc(strlen((char *)s) + 1);
                     22:     strcpy(x, (char *)s);
                     23:     return x;
                     24: }
                     25: 
                     26: #endif
                     27: 
                     28: #ifndef HAVE_GETOPT
                     29: 
                     30: /* This isn't a complete getopt, but it's good enough for UAE. */
                     31: char *optarg;
                     32: int optind = 0;
                     33: 
                     34: int getopt (int argc, char *const *argv, const char *str)
                     35: {
                     36:     char *p, c;
                     37: 
                     38:     if (optind == 0)
                     39:        optind = 1;
                     40:     for (;;) {
                     41:        while (optind < argc && (argv[optind][0] != '-' || argv[optind][1] == '\0'))
                     42:            optind++;
                     43:        if (optind >= argc)
                     44:            return EOF;
                     45:        p = strchr (str, c = argv[optind][1]);
                     46:        if (p == 0) {
                     47:            sprintf (warning_buffer, "Commandline parsing error - invalid option \"-%c\".\n", argv[optind][1]);
                     48:            write_log (warning_buffer);
                     49:            optind++;
                     50:            continue;
                     51:        }
                     52:        break;
                     53:     }
                     54:     if (*(p+1) == ':') {
                     55:        if (argv[optind][2] == '\0') {
                     56:            optarg = argv[optind + 1];
                     57:            optind++;
                     58:        } else {
                     59:            optarg = argv[optind] + 2;
                     60:        }
                     61:     }
                     62:     optind++;
                     63:     return c;
                     64: }
                     65: 
                     66: #endif
                     67: 
                     68: void *xmalloc(size_t n)
                     69: {
                     70:     void *a = malloc (n);
                     71:     if (a == NULL) {
                     72:        write_log ("virtual memory exhausted\n");
                     73:        abort();
                     74:     }
                     75:     return a;
                     76: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.