/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped22/*23* Glenn Fowler24* AT&T Bell Laboratories25*26* st_dev formatter27*/2829#include <ast.h>30#include <ctype.h>31#include <ls.h>3233char*34fmtdev(struct stat* st)35{36char* buf;37unsigned long mm;38unsigned int ma;39unsigned int mi;40int z;4142mm = (S_ISBLK(st->st_mode) || S_ISCHR(st->st_mode)) ? idevice(st) : st->st_dev;43ma = major(mm);44mi = minor(mm);45buf = fmtbuf(z = 17);46if (ma == '#' && isalnum(mi))47{48/*49* Plan? Nein!50*/5152buf[0] = ma;53buf[1] = mi;54buf[2] = 0;55}56else57sfsprintf(buf, z, "%03d,%03d", ma, mi);58return buf;59}606162