home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
DOOG
/
CBASE09.ZIP
/
LSEQ.ZIP
/
LSSETCUR.C
< prev
next >
Wrap
Text File
|
1989-08-30
|
2KB
|
91 lines
/* Copyright (c) 1989 Citadel */
/* All Rights Reserved */
/* #ident "lssetcur.c 1.1 - 89/07/03" */
#include <blkio.h>
#include <errno.h>
/* #include <string.h> */
#include "lseq_.h"
/*man---------------------------------------------------------------------------
NAME
lssetcur - set lseq cursor
SYNOPSIS
#include <lseq.h>
int lssetcur(lsp, lspos_p)
lseq_t *lsp;
lspos_t *lspos_p;
DESCRIPTION
The lssetcur function sets the current cursor position of lseq lsp to
the value pointed to by lspos_p. lspos_p should point to a cursor
value saved previously with lsgetcur. If lspos_p is the NULL pointer,
the cursor is set to null. It is important to remember that an lseq
position saved with lsgetcur is not valid after that lseq has been
unlocked.
lssetcur will fail if one or more of the following is true:
[EINVAL] lsp is not a valid lseq pointer.
[LSELOCK] lsp is not locked.
[LSENOPEN] lsp is not open.
SEE ALSO
lsgetcur.
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Otherwise, a
value of -1 is returned, and errno set to indicate the error.
------------------------------------------------------------------------------*/
int lssetcur(lsp, lspos_p)
lseq_t * lsp;
lspos_t * lspos_p;
{
int rs = 0;
errno = 0;
/* validate arguments */
if (!ls_valid(lsp)) {
errno = EINVAL;
return -1;
}
/* check if not open */
if (!(lsp->flags & LSOPEN)) {
errno = EINVAL;
return -1;
}
/* check locks */
if (!(lsp->flags & LSLOCKS)) {
errno = LSELOCK;
return -1;
}
/* set new currency */
if (lspos_p == NULL) {
memset((void *)&lsp->clspos, 0, sizeof(lsp->clspos));
} else {
memcpy((void *)&lsp->clspos, (void *)lspos_p, sizeof(lsp->clspos));
}
/* read in new current record */
if (lsp->clspos == 0) {
ls_rcinit(lsp, lsp->clsrp);
} else {
rs = ls_rcget(lsp, lsp->clspos, lsp->clsrp);
if (rs == -1) {
LSEPRINT;
return -1;
}
}
errno = 0;
return 0;
}