/*********************************************************************** * * * This software is part of the ast package * * Copyright (c) 1985-2007 AT&T Knowledge Ventures * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Knowledge Ventures * * * * A copy of the License is available at * * http://www.opensource.org/licenses/cpl1.0.txt * * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * * * * Information and Software Systems Research * * AT&T Research * * Florham Park NJ * * * * Glenn Fowler * * David Korn * * Phong Vo * * * ***********************************************************************/ #pragma prototyped /* * Glenn Fowler * AT&T Bell Laboratories * * return formatted version string */ #include char* fmtversion(register unsigned long v) { register char* cur; register char* end; char* buf; int n; buf = cur = fmtbuf(n = 18); end = cur + n; if (v >= 19700101L) sfsprintf(cur, end - cur, "%04lu-%02lu-%02lu", (v / 10000) % 10000, (v / 100) % 100, v % 100); else { if (n = (v >> 24) & 0xff) cur += sfsprintf(cur, end - cur, "%d.", n); if (n = (v >> 16) & 0xff) cur += sfsprintf(cur, end - cur, "%d.", n); sfsprintf(cur, end - cur, "%ld.%ld", (v >> 8) & 0xff, v & 0xff); } return buf; }