1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
5
6 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
7 /* All Rights Reserved */
8
9 /*
10 * Copyright (c) 1980 Regents of the University of California.
11 * All rights reserved. The Berkeley software License Agreement
12 * specifies the terms and conditions for redistribution.
13 */
14
15 #pragma ident "%Z%%M% %I% %E% SMI"
16
17 #include <stdio.h>
18 #include <sys/types.h>
19 #include <sys/stat.h>
20
21 extern char *soutput, *tagout, usedir[];
22 union ptr {
23 unsigned *a;
24 long *b;
25 };
26
27 void
result(unsigned * mptr,int nf,FILE * fc)28 result(unsigned *mptr, int nf, FILE *fc)
29 {
30 int i, c;
31 char *s;
32 long lp;
33 extern int iflong;
34 char res[100];
35 union ptr master;
36
37 if (iflong) {
38 master.b = (long *)mptr;
39 } else {
40 master.a = mptr;
41 }
42
43 for (i = 0; i < nf; i++) {
44 lp = iflong ? master.b[i] : master.a[i];
45 fseek(fc, lp, 0);
46 fgets(res, 100, fc);
47 for (s = res; c = *s; s++)
48 if (c == ';') {
49 *s = 0;
50 break;
51 }
52 if (tagout != 0) {
53 if (res[0] == '/' || usedir[0] == 0)
54 sprintf(tagout, "%s", res);
55 else
56 sprintf(tagout, "%s/%s", usedir, res);
57 while (*tagout) tagout++;
58 } else {
59 if (res[0] != '/' || usedir[0] == 0)
60 printf("%s/", usedir);
61 printf("%s\n", res);
62 }
63 }
64 }
65
66 long
gdate(f)67 gdate(f)
68 FILE *f;
69 {
70 struct stat sb;
71 fstat(fileno(f), &sb);
72 return (sb . st_mtime);
73 }
74