Annotation of 43BSD/contrib/nntp/server/scandir.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char    *sccsid = "@(#)scandir.c        1.2     (Berkeley) 3/5/86";
                      3: #endif
                      4: 
                      5: #include "common.h"
                      6: 
                      7: /*
                      8:  * scan_dir -- scan the current directory for news articles,
                      9:  *     loading the article numbers into art_array.  Return
                     10:  *     number of articles loaded.
                     11:  *
                     12:  *     Paramaters:     "low_msg", "high_msg" are the low
                     13:  *                     and high messages numbers in this
                     14:  *                     group; we ignore numbers outside this
                     15:  *                     range.
                     16:  *
                     17:  *     Returns:        Number of articles loaded into
                     18:  *                     array.
                     19:  *
                     20:  *     Side effects:   Changes "art_array".
                     21:  */
                     22: 
                     23: extern int     intcmp();
                     24: 
                     25: scan_dir(low_msg, high_msg)
                     26: int    low_msg, high_msg;
                     27: {
                     28:        register struct direct  *dirent;
                     29:        register DIR            *dirp;
                     30:        int                     artnum;
                     31: 
                     32:        num_arts = 0;
                     33: 
                     34:        dirp = opendir(".");
                     35: 
                     36:        if (dirp == NULL) {
                     37:                return(0);
                     38:        }
                     39: 
                     40:        while ((dirent = readdir(dirp)) != NULL) {
                     41:                artnum = atoi(dirent->d_name);
                     42:                if (artnum != 0 && artnum >= low_msg && artnum <= high_msg)
                     43:                        art_array[num_arts++] = artnum;
                     44:        }
                     45: 
                     46:        closedir(dirp);
                     47: 
                     48:        qsort((char *) art_array, num_arts, sizeof(int), intcmp);
                     49: 
                     50:        return(num_arts);
                     51: }
                     52: 
                     53: /*
                     54:  * intcmp -- compare to integers.
                     55:  *
                     56:  *     Parameters:     "x", "y" point to the integers to be compared.
                     57:  *
                     58:  *     Returns:        -1 if "x" is less than "y",
                     59:  *                     0 if "x" equals "y", and
                     60:  *                     1 if "x" is greater than "y".
                     61:  *
                     62:  *     Side effects:   None.
                     63:  */
                     64: 
                     65: intcmp(x, y)
                     66: register int   *x, *y;
                     67: {
                     68:        if (*x < *y)
                     69:                return (-1);
                     70:        else if (*x > *y)
                     71:                return (1);
                     72:        return (0);
                     73: }

unix.superglobalmegacorp.com

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