Annotation of coherent/d/lib/libc/gen/mktemp.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Produce a unique filename by replacing
                      3:  * the trailing 6 X's on the user's input string
                      4:  * with process id and a unique letter.
                      5:  * (It is assumed, but not checked, that the X's are present.)
                      6:  * Revised by Michael Griffin, 7-5-84.  Avoids control characters in
                      7:  * generator.  Repeats after 91 invocations by the same process.
                      8:  */
                      9: 
                     10: static char    generator = 'a';
                     11: 
                     12: char *
                     13: mktemp(template)
                     14: char *template;
                     15: {
                     16:        register char *p;
                     17:        register i, pid;
                     18: 
                     19:        for (p = template; *p; p++)
                     20:                ;
                     21:        switch (generator)  {
                     22:                case '~':
                     23:                        *--p = generator;
                     24:                        generator = 'A';
                     25:                        break;
                     26:                case '_':
                     27:                        *--p = generator;
                     28:                        generator = '!';
                     29:                        break;
                     30:                case '*':
                     31:                        *--p = ++generator;
                     32:                        generator++;
                     33:                        break;
                     34:                case '?':
                     35:                        *--p = (generator = '@');
                     36:                        break;
                     37:                case '@':
                     38:                        generator = 'a';
                     39:                        *--p = generator++;
                     40:                        break;
                     41:                default:
                     42:                        *--p = generator++;
                     43:        }
                     44:        pid = getpid();
                     45:        i = 5; do {
                     46:                *--p = pid%10 + '0';
                     47:                pid /= 10;
                     48:        } while (--i);
                     49:        return (template);
                     50: }

unix.superglobalmegacorp.com

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