xref: /onnv-gate/usr/src/lib/libcmd/common/fts_fix.c (revision 12068:08a39a083754)
1*12068SRoger.Faulkner@Oracle.COM /***********************************************************************
2*12068SRoger.Faulkner@Oracle.COM *                                                                      *
3*12068SRoger.Faulkner@Oracle.COM *               This software is part of the ast package               *
4*12068SRoger.Faulkner@Oracle.COM *          Copyright (c) 1992-2010 AT&T Intellectual Property          *
5*12068SRoger.Faulkner@Oracle.COM *                      and is licensed under the                       *
6*12068SRoger.Faulkner@Oracle.COM *                  Common Public License, Version 1.0                  *
7*12068SRoger.Faulkner@Oracle.COM *                    by AT&T Intellectual Property                     *
8*12068SRoger.Faulkner@Oracle.COM *                                                                      *
9*12068SRoger.Faulkner@Oracle.COM *                A copy of the License is available at                 *
10*12068SRoger.Faulkner@Oracle.COM *            http://www.opensource.org/licenses/cpl1.0.txt             *
11*12068SRoger.Faulkner@Oracle.COM *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12*12068SRoger.Faulkner@Oracle.COM *                                                                      *
13*12068SRoger.Faulkner@Oracle.COM *              Information and Software Systems Research               *
14*12068SRoger.Faulkner@Oracle.COM *                            AT&T Research                             *
15*12068SRoger.Faulkner@Oracle.COM *                           Florham Park NJ                            *
16*12068SRoger.Faulkner@Oracle.COM *                                                                      *
17*12068SRoger.Faulkner@Oracle.COM *                 Glenn Fowler <gsf@research.att.com>                  *
18*12068SRoger.Faulkner@Oracle.COM *                  David Korn <dgk@research.att.com>                   *
19*12068SRoger.Faulkner@Oracle.COM *                                                                      *
20*12068SRoger.Faulkner@Oracle.COM ***********************************************************************/
21*12068SRoger.Faulkner@Oracle.COM /*
22*12068SRoger.Faulkner@Oracle.COM  * -lcmd specific workaround to handle
23*12068SRoger.Faulkner@Oracle.COM  *	fts_namelen
24*12068SRoger.Faulkner@Oracle.COM  *	fts_pathlen
25*12068SRoger.Faulkner@Oracle.COM  *	fts_level
26*12068SRoger.Faulkner@Oracle.COM  * changing from [unsigned] short bit to [s]size_t
27*12068SRoger.Faulkner@Oracle.COM  *
28*12068SRoger.Faulkner@Oracle.COM  * ksh (or any other main application) that pulls in -lcmd
29*12068SRoger.Faulkner@Oracle.COM  * at runtime may result in old -last running with new -lcmd
30*12068SRoger.Faulkner@Oracle.COM  * which is not a good situation (tm)
31*12068SRoger.Faulkner@Oracle.COM  *
32*12068SRoger.Faulkner@Oracle.COM  * probably safe to drop after 20150101
33*12068SRoger.Faulkner@Oracle.COM  */
34*12068SRoger.Faulkner@Oracle.COM 
35*12068SRoger.Faulkner@Oracle.COM #include <ast.h>
36*12068SRoger.Faulkner@Oracle.COM #include <fts_fix.h>
37*12068SRoger.Faulkner@Oracle.COM 
38*12068SRoger.Faulkner@Oracle.COM #undef	fts_read
39*12068SRoger.Faulkner@Oracle.COM 
40*12068SRoger.Faulkner@Oracle.COM FTSENT*
_fts_read(FTS * fts)41*12068SRoger.Faulkner@Oracle.COM _fts_read(FTS* fts)
42*12068SRoger.Faulkner@Oracle.COM {
43*12068SRoger.Faulkner@Oracle.COM 	FTSENT*		oe;
44*12068SRoger.Faulkner@Oracle.COM 
45*12068SRoger.Faulkner@Oracle.COM 	static FTSENT*	ne;
46*12068SRoger.Faulkner@Oracle.COM 
47*12068SRoger.Faulkner@Oracle.COM 	if ((oe = _ast_fts_read(fts)) && ast.version < 20100102L && (ne || (ne = newof(0, FTSENT, 1, 0))))
48*12068SRoger.Faulkner@Oracle.COM 	{
49*12068SRoger.Faulkner@Oracle.COM 		*ne = *oe;
50*12068SRoger.Faulkner@Oracle.COM 		oe = ne;
51*12068SRoger.Faulkner@Oracle.COM 		ne->fts_namelen = ne->_fts_namelen;
52*12068SRoger.Faulkner@Oracle.COM 		ne->fts_pathlen = ne->_fts_pathlen;
53*12068SRoger.Faulkner@Oracle.COM 		ne->fts_level = ne->_fts_level;
54*12068SRoger.Faulkner@Oracle.COM 	}
55*12068SRoger.Faulkner@Oracle.COM 	return oe;
56*12068SRoger.Faulkner@Oracle.COM }
57