File:  [Synchronet] / sbbs / sbbs2 / uti / utilstrd.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:37:52 2018 UTC (8 years, 1 month ago) by root
Branches: digitaldynamics, MAIN
CVS tags: v3_00c, v2_30b, HEAD
2.30b OS/2

/* UTILSTRD.C */

/* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */

#include "sbbs.h"
#include "uti.h"

#define READ	1
#define WRITE	2

int main(int argc, char **argv)
{
	char	*p,str[256],name[256],mode=0;
	int 	i,file;
	uint	usernumber;
	time_t	ptr;
	FILE	*stream;

PREPSCREEN;

printf("Synchronet UTILSTRD v%s\n",VER);

if(argc<4)
	exit(1);

if(!stricmp(argv[1],"READ"))
    mode=READ;
else if(!stricmp(argv[1],"WRITE"))
    mode=WRITE;
if(!mode)
    exit(1);

uti_init("UTILSTRD",argc,argv);

if(mode==READ) {
	if((file=nopen(argv[2],O_CREAT|O_TRUNC|O_WRONLY))==-1)
		exit(2); }
else {
	if((file=nopen(argv[2],O_RDONLY))==-1)
		exit(2); }

if((stream=fdopen(file,"wb"))==NULL)
	exit(2);


strcpy(name,argv[3]);		/* build the user name */
for(i=4;i<argc;i++) {
	strcat(name," ");
	strcat(name,argv[i]); }

sprintf(str,"%sUSER\\NAME.DAT",data_dir);
if((file=nopen(str,O_RDONLY))==-1)
	exit(8);

usernumber=1;
while(!eof(file)) {
	read(file,str,LEN_ALIAS+2);
	str[25]=0;
	p=strchr(str,3);
	if(p) *p=0;
	if(!stricmp(str,name))
		break;
	usernumber++; }
if(stricmp(str,name)) {
	printf("Username '%s' not found.\n",name);
	exit(9); }
close(file);

sprintf(str,"%sUSER\\PTRS\\%4.4u.IXB",data_dir,usernumber);
if((file=nopen(str,mode==READ ? O_RDONLY : O_WRONLY|O_CREAT))==-1)
	exit(10);
for(i=0;i<total_subs;i++) {
	lseek(file,((long)sub[i]->ptridx)*10L,SEEK_SET);
	if(mode==READ) {
		read(file,&ptr,4);
		fprintf(stream,"%lu\r\n",ptr); }
	else {
		fgets(str,81,stream);
		ptr=atol(str);
		write(file,&ptr,4); } }
close(file);
printf("\nDone.\n");
bail(0);
return(0);
}


unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.