Annotation of coherent/d/lib/libc/gen/mktemp.c, revision 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.