/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1990-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
/*
* search.c
* cmptime()
* search_tag
* gettagbyspec()
* lookup_tagtime()
* lookup_tag_t()
* pattern2time()
* gettagbytime()
* gettagbyname()
* rs_readlink()
*/
#include "vcs_rscs.h"
#include <ls.h>
#include <tm.h>
const void* s1;
const void* s2;
{
}
/*
* versions :: version
* | version ; versions
* | NULL
* version :: id
* | id distance
* id :: string | date_spec
* date_spec :: [ "(" ] date [ ")" ]
* distance :: [ "+" | "-" ] integer
* date :: month day [ time | year]
* time :: hh ":" mm [ ":" ss ]
*
*
*/
char* versions;
int domain;
int mode;
{
int r;
return (-1);
if (dir)
if (!versions)
else
if (r)
return (r);
{
return (-1);
}
return (0);
}
char* versions;
int domain;
{
register char* s;
register int i;
int sort = 0;
int total;
int num;
int flag;
int index;
int distance;
total = i;
s = buf;
for (i = 0; i < num; i++)
{
distance = 0;
{
*s = '\0';
s++;
if (!sort)
{
sort++;
}
}
{
continue;
if (!sort)
{
sort++;
}
continue;
}
if (!distance)
{
return (0);
}
if (!flag)
else
{
return (0);
}
}
return (-1);
}
int total;
int domain;
int first;
{
register int i;
int r;
r = -1;
for (i = 0; i < total; i++)
{
return (r);
continue;
if (first)
return (i);
r = i;
}
return (r);
}
/*
* mode = 0 any;
* mode = 1 domain must match
*/
char* version;
int domain;
int mode;
{
register rdirent_t* p;
register char* v;
int cnt = 0;
if (entries)
return (-1);
if (version)
v = version;
else
v = "LATEST";
{
{
if (domain)
{
{
return (0);
}
}
else
{
cnt++;
if (!sp)
else
ep = p;
}
}
}
if (mode)
return (-1);
switch (cnt)
{
case 0:
if (strcmp(v, "BASE") == 0)
{
/* return the base tag */
{
{
return (0);
}
}
message((0, "can find the base"));
return (-1);
}
else if (strcmp(v, "LATEST") == 0)
{
/* return the latest one */
{
{
}
}
return (0);
}
else
return (-1);
case 1:
return (0);
default:
/*
* return the latest one
*/
{
{
}
}
return (0);
}
}
/*
* mode = 0 any;
* mode = 1 domain must match
*/
int total;
char* version;
int domain;
int mode;
{
register char* v;
register int i;
int cnt = 0;
int r;
v = version;
else
v = "LATEST";
for (i = 0; i < total; i++)
{
{
if (domain)
{
return (i);
}
else
{
cnt++;
r = i;
}
}
}
if (mode)
return (-1);
if (cnt)
return (r);
{
for (i = 0; i < total; i++)
{
return (i);
}
message((0, "can find the base"));
return (-1);
}
return (total-1);
else
return (-1);
}
{
"Jan", "Feb", "Mar",
"Apr", "May", "Jun",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec",
};
char* pattern;
{
register char* s;
int flag = 0;
int mon;
LINIT();
if (*pattern == '(')
{
{
*s = *pattern;
if (*s == '/')
flag++;
}
*s = '\0';
s = buf;
}
else
{
s = pattern;
if (strchr(s, '/'))
flag++;
}
if (flag)
{
return (-1);
if (mon <= 12)
else if (dd <= 12)
{
}
else
return (-1);
}
else if (
{
return (-1);
}
if (yy)
else
return (0);
}
{
{
}
return (NULL);
}
char* name;
int mode;
int level;
{
return (NULL);
{
{
{
}
}
}
return (NULL);
}
char* rs_readlink(s)
char* s;
{
register char* t;
return (NULL);
*t = '\0';
return (++t);
}