/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/* Copyright (c) 1988 AT&T */
/* All Rights Reserved */
/*
* Copyright (c) 1997, by Sun Microsystems, Inc.
* All rights reserved.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*LINTLIBRARY*/
#include "utility.h"
/* next - return next active field on page after f(user defined order) */
static FIELD *
{
do
while ((!Active(*p)) && (*p != f));
return (*p);
}
/* prev - return previous active field on page before f */
static FIELD *
{
do
while ((!Active(*p)) && (*p != f));
return (*p);
}
/* snext - return next active field on page after f(sorted order) */
static FIELD *
{
FIELD *x = f;
do
f = f->snext;
while ((!Active(f)) && (f != x));
return (f);
}
/* sprev - return previous active field on page before f(sorted order) */
static FIELD *
{
FIELD *x = f;
do
f = f->sprev;
while ((!Active(f)) && (f != x));
return (f);
}
/* left - return active field on page left of f */
static FIELD *
{
do
f = sprev(f);
return (f);
}
/* right - return active field on page right of f */
static FIELD *
{
do
f = snext(f);
return (f);
}
/* up - return active field on page above f */
static FIELD *
{
do
f = sprev(f);
f = sprev(f);
f = snext(f);
}
return (f);
}
/* down - return active field on page below f */
static FIELD *
{
do
f = snext(f);
f = snext(f);
f = sprev(f);
}
return (f);
}
/*
* _next_field
*/
int
{
return (_set_current_field(f, next(C(f))));
}
int
{
return (_set_current_field(f, prev(C(f))));
}
int
{
}
int
{
}
int
{
return (_set_current_field(f, snext(C(f))));
}
int
{
return (_set_current_field(f, sprev(C(f))));
}
int
{
}
int
{
}
int
{
return (_set_current_field(f, left(C(f))));
}
int
{
return (_set_current_field(f, right(C(f))));
}
int
{
return (_set_current_field(f, up(C(f))));
}
int
{
return (_set_current_field(f, down(C(f))));
}
FIELD *
{
}