+++ /dev/null
-#include "cll1.h"
-
-struct Passwd
-{
- char *username, *home, *shell;
- int uid, gid;
- list(Passwd);
-} *etcpasswd,*passwd;
-
-program
-{
- char *ptr;
- FILE *f;
- int col;
-
- parse("/etc/passwd")
- {
- col=1;
- suffix(ptr,_,'\n');
- split(ptr,_,':') switch(col++)
- {
- case 1: create(passwd,Passwd);passwd->username=ptr;break;
- case 3: passwd->uid=atoi(ptr);break;
- case 4: passwd->gid=atoi(ptr);break;
- case 6: passwd->home=ptr;break;
- case 7: passwd->shell=ptr;insert(passwd,etcpasswd,sort_by,username);break;
- }
- }
- done;
-
- puts("--------- /etc/passwd sorted by username ---------------");
- every(passwd,etcpasswd) printf("#%03d: %s\n",passwd->uid,passwd->username);
-
- puts("--------- /etc/passwd sorted by uid --------------------");
- sort(passwd,etcpasswd,order_by,uid);
- every(passwd,etcpasswd) printf("#%03d: %s\n",passwd->uid,passwd->username);
-}