Exemplo n.º 1
0
main(int argc, char *argv[])
{

	int istat, narg, nchar;
	char process[MAXLINE];


	// set program name

	strcpy(prog_name, PNAME);


	// check command line for correct usage

	fprintf(stdout, "\n%s Arguments: ", prog_name);
	for (narg = 0; narg < argc; narg++)
		fprintf(stdout, "<%s> ", argv[narg]);
	fprintf(stdout, "\n");

	if (argc > 1)
		sscanf(argv[1], "%s", process);
	else
		strcpy(process, "");
	nchar = 0;
	while ( nchar < MAXLINE && (process[nchar] = toupper(process[nchar])) )
		nchar++;

	if (strcmp(process, "90CW") == 0) {
		if (argc < 4) {
			puterr("ERROR wrong number of command line arguments.");
			disp_usage(PNAME, "90CW <input_gridfile> <output_gridfile>");
			exit(-1);
		}
		if ((istat = Rotate90CW(argc, argv)) < 0) {
			puterr("ERROR doing Rotate 90CW process.");
			exit(-1);
		}
	} else {
		sprintf(MsgStr,
			"ERROR unrcognized process - <%s>.", process);
		puterr(MsgStr);
		disp_usage(PNAME, "90CW/... <arguments>");
		exit(-1);
	}


	exit(0);

}
Exemplo n.º 2
0
char			*read_all(int fd, fd_set *readf,
				  t_buffs *buffs, char **chan_nick)
{
  t_list                *tmp_cmd;
  int			ret;

  buffs->cmds ? free_content(buffs->cmds) : 0;
  buffs->cmds ? buffs->cmds->destroy(buffs->cmds) : 0;
  buffs->cmds = NULL;
  if (FD_ISSET(fd, readf))
    {
      if ((ret = get_cmd_buff(fd, buffs)) == -1)
	return (NULL);
      else if (ret == -3)
	return (NULL);
      else if (ret == -2)
	puterr("Reply too long\n", 0);
    }
  tmp_cmd = buffs->cmds;
  while (tmp_cmd)
    {
      fprintf(stderr, "%s\n", (char *)tmp_cmd->struc);
      change_channel((char *)tmp_cmd->struc, chan_nick[0], chan_nick[1]);
      tmp_cmd = tmp_cmd->next;
    }
  if (FD_ISSET(0, readf))
    return (get_next_line(0));
  return ("");
}
Exemplo n.º 3
0
t_list		*create_list(void *struc, t_list *old)
{
  t_list	*list;

  if (!(list = malloc(sizeof(*list))) ||
      !(list->first = old ? old->first : malloc(sizeof(t_list *))) ||
      !(list->last = old ? old->last : malloc(sizeof(t_list *))) ||
      !(list->size = old ? old->size : malloc(sizeof(unsigned int))))
    return (puterr(ERR_MALLOC, NULL));
  !old ? *list->first = list : 0;
  !old ? *list->last = list : 0;
  !old ? *list->size = 1 : 0;
  list->struc = struc;
  list->next = NULL;
  list->prev = NULL;
  list->push_back = &push_back_list;
  list->push_front = &push_front_list;
  list->pop_back = &pop_back_list;
  list->pop_front = &pop_front_list;
  list->insert_at = &insert_at_list;
  list->make_circular = &make_circular_list;
  list->destroy = &destroy_list;
  list->get_nth = &get_nth_list;
  list->delete_nth = &delete_nth_list;
  list->get_size = &get_size_list;
  return (list);
}
Exemplo n.º 4
0
/* sed: perform a basic sed substitution command on input */
int sed(char *s, size_t max, const char *input, const char *sedcmd)
{
	char cmd[MAX_MSG];
	struct sedinfo sedbuf;
	std::regex pattern;
	auto type = std::regex_constants::format_sed;

	strncpy(cmd, sedcmd, MAX_MSG);
	if (!parsecmd(&sedbuf, cmd)) {
		puterr(s, max, &sedbuf);
		return 0;
	}

	try {
		if (!sedbuf.ignore)
			pattern = std::regex(sedbuf.regex);
		else
			pattern = std::regex(sedbuf.regex, std::regex::icase);
	} catch (std::regex_error) {
		snprintf(s, max, "sed: invalid regex");
		return 0;
	}

	if (!sedbuf.global)
		type |= std::regex_constants::format_first_only;
	snprintf(s, max, "%s", std::regex_replace(input, pattern,
				sedbuf.replace, type).c_str());
	return 1;
}
Exemplo n.º 5
0
Arquivo: net.c Projeto: gitpan/DBD-NET
void reterr(char *fmt,...)
{
  va_list args;

  va_start(args, fmt);
  vsprintf(errmsg, fmt, args);
  va_end(args);
  puts(errmsg);
  puterr();
}
Exemplo n.º 6
0
int main(int argc, char** argv)
{

	int narg;
	int nPhases;


	/* set program name */

	strcpy(prog_name, PNAME);


	/* check command line for correct usage */

	fprintf(stdout, "%s Arguments: ", prog_name);
	for (narg = 0; narg < argc; narg++)
		fprintf(stdout, "<%s> ", argv[narg]);
	fprintf(stdout, "\n");

	if (argc < 5) {
		puterr("ERROR wrong number of command line arguments.");
		disp_usage(PNAME,
"<nll_hyp_target> <nll_hyp_phs_source> <nll_hyp_out> dist_max_fract");
		exit(0);
	}

	SetConstants();
	message_flag = 1;
	DispProgInfo();
	message_flag = 0;

	if ((nPhases = doFindEquivPhases(argc, argv)) < 0) {
		puterr("ERROR doing Phase Equivalence process.");
		exit(0);
	}



	exit(nPhases);

}
Exemplo n.º 7
0
int main(int argc, char** argv)
{

	int istat, narg;


	/* set program name */

	strcpy(prog_name, PNAME);


	/* check command line for correct usage */

	fprintf(stdout, "%s Arguments: ", prog_name);
	for (narg = 0; narg < argc; narg++)
		fprintf(stdout, "<%s> ", argv[narg]);
	fprintf(stdout, "\n");

	if (argc < 5) {
		puterr("ERROR wrong number of command line arguments.");
		disp_usage(PNAME,
"hypfile1 hypfile2 time_tolerance nobs_tolerance");
		exit(-1);
	}

	SetConstants();
	message_flag = 1;
	DispProgInfo();
	message_flag = 0;

	if ((istat = DiffHypocenters(argc, argv)) < 0) {
		puterr("ERROR doing difference process.");
		exit(-1);
	}



	exit(0);

}
Exemplo n.º 8
0
int Rotate90CW(int argc, char *argv[])
{
	int istat, narg;

	char fn_grid_in[FILENAME_MAX];
	char fn_grid_out[FILENAME_MAX];
	FILE *fp_grid_in;
	FILE *fp_grid_in_hdr;

	GridDesc grid_in, grid_out;
	
	int ix, iy, iz;
	float val;

	

	// open input grid file

	strcpy(fn_grid_in, argv[2]);
	if ((istat = OpenGrid3dFile(fn_grid_in, &fp_grid_in, &fp_grid_in_hdr,
			&grid_in, "", NULL)) < 0)
	{
		puterr("ERROR opening input grid file.");
		return(-1);
	}

	// cread and initialize output grid

	// output file name
	strcpy(fn_grid_out, argv[3]);

	// create output grid description
	grid_out = grid_in;
	grid_out.numx = grid_in.numy;
	grid_out.numy = grid_in.numx;

	// allocate grid
	grid_out.buffer = AllocateGrid(&grid_out);
	if (grid_out.buffer == NULL) {
		puterr("ERROR: allocating memory for output grid buffer.\n");
		return(-1);
	}

	// create grid array access pointers
	grid_out.array = CreateGridArray(&grid_out);
	if (grid_out.array == NULL) {
		puterr("ERROR: creating array for accessing output grid buffer.\n");
		return(-1);
	}

	// rotate input grid file into output grid

	for (ix = 0; ix < grid_in.numx; ix++) {
		printf("ix = %d/%d\r", ix, grid_in.numx);
		for (iy = 0; iy < grid_in.numy; iy++) {
			for (iz = 0; iz < grid_in.numz; iz++) {
				val = ReadGrid3dValue(fp_grid_in, ix, iy, iz, &grid_in);
				grid_out.array[iy][grid_out.numy - ix - 1][iz] = val;
			}
		}
	}
	printf("\n");


	// save sum grid to disk

	if ((istat = WriteGrid3dBuf(&grid_out, NULL, fn_grid_out, "rot90CW")) < 0) {
		puterr("ERROR: writing rotated grid to disk.\n");
		return(-1);
	}


	close(fp_grid_in);
	close(fp_grid_in_hdr);

	return(0);

}
Exemplo n.º 9
0
main(int argc, char *argv[])
{

	int istat, narg;
	char fngrid_control[MAXLINE], fn_input[MAXLINE], fn_outroot[MAXLINE];
	FILE *fp_grid_control, *fp_outroot, *fp_gmt;
	char filename[MAXLINE], fn_xy_out[MAXLINE];


	// set program name

	strcpy(prog_name, PNAME);


	// check command line for correct usage

	fprintf(stdout, "\n%s Arguments: ", prog_name);
	for (narg = 0; narg < argc; narg++)
		fprintf(stdout, "<%s> ", argv[narg]);
	fprintf(stdout, "\n");

	if (argc != 4)
	{
		puterr("ERROR wrong number of command line arguments.");
		disp_usage(PNAME, 
		    "<controlfile> <punfile> <outroot>");
		exit(-1);
	}


	// read command line arguments

	strcpy(fngrid_control, argv[1]);
	strcpy(fn_input, argv[2]);
	strcpy(fn_outroot, argv[3]);



	// set constants

	SetConstants();


	// read control file

	if ((fp_grid_control = fopen(fngrid_control, "r")) == NULL) {
		puterr("ERROR opening control file.");
		exit(EXIT_ERROR_FILEIO);
	}


	if ((istat = ReadPun2GMT_Input(fp_grid_control)) < 0) {
		puterr("ERROR reading control file.");
		exit(EXIT_ERROR_FILEIO);
	}


	// open GMT command file

	sprintf(filename, "%s.gmt", fn_outroot);
	if ((fp_gmt = fopen(filename, "w")) == NULL) {
		puterr("ERROR opening output GMT script file.");
		exit(EXIT_ERROR_FILEIO);
	}


	// convert .pun to xy

	ConvertPun2GMT(fn_input, "XZ", fn_outroot, fn_xy_out);
	fprintf(fp_gmt, 
		"psxy %s $JVAL $RVAL -W1/0/0/0 -M -K -O >> %s.ps\n\n",
		fn_xy_out, "${POSTSCRIPT_NAME}");
	ConvertPun2GMT(fn_input, "XY", fn_outroot, fn_xy_out);
	fprintf(fp_gmt, 
		"psxy %s $JVAL $RVAL -W1/0/0/0 -M -K -O >> %s.ps\n\n",
		fn_xy_out, "${POSTSCRIPT_NAME}");
	ConvertPun2GMT(fn_input, "ZY", fn_outroot, fn_xy_out);
	fprintf(fp_gmt, 
		"psxy %s $JVAL $RVAL -W1/0/0/0 -M -K -O >> %s.ps\n\n",
		fn_xy_out, "${POSTSCRIPT_NAME}");


	exit(0);

}
Exemplo n.º 10
0
int ReadPun2GMT_Input(FILE* fp_input)
{
	int istat, iscan;
	char param[MAXLINE];
	char line[MAXLINE];

	int flag_control = 0, flag_trans = 0;



	// read each input line

	while (fgets(line, MAXLINE, fp_input) != NULL) { 

		istat = -1;

		//read parameter line

		if ((iscan = sscanf(line, "%s", param)) < 0 )
			continue;

		// skip comment line or white space

		if (strncmp(param, "#", 1) == 0 || isspace(param[0]))
			istat = 0;


		// read control params

		if (strncmp(param, "CONTROL", 6) == 0)
			if ((istat = get_control(strchr(line, ' '))) < 0) 
				puterr("Error reading control params.");
			else
				flag_control = 1;


		//read transform params

		if (strncmp(param, "TRANS", 5) == 0)
    			if ((istat = get_transform(strchr(line, ' '))) < 0)
			    puterr("ERROR reading transformation parameters.");
			else
				flag_trans = 1;


		// unrecognized input

		if (istat < 0 && message_flag > 1) {
			fprintf(stdout, "Skipping input: %s", line);
		}

	}


	// check for missing input

	if (!flag_control) 
		puterr("ERROR no control (CONTROL) params read.");
	if (!flag_trans) 
		puterr("ERROR no transformation (TRANS) params read.");

	
	return (flag_control + flag_trans - 1);
}
Exemplo n.º 11
0
int ConvertPun2GMT(char* fn_input, char* orientation, char* fn_outroot, 
	char* fn_xy_out)
{
	int istat;
	FILE *fp_input, *fp_xy_out, *fp_lonlat_out;
	char  line_in[2*MAXLINE], fn_lonlat_out[MAXLINE];
	int or_xy, or_xz, or_yz, or_zy;
	double vlat, vlong, dlat, dlong, vdepth;
	int ilat, ilong;
	double xgrid, ygrid;
	double errx, erry, errz;
	double barlen = 0.75;


	if ((fp_input = fopen(fn_input, "r")) == NULL) {
		fprintf(stderr, "ERROR: Cannot open .pun file <%s>.\n",
				fn_input);
		return(-1);
    	}

	sprintf(fn_xy_out, "%s.%s", fn_outroot, orientation);
	if ((fp_xy_out = fopen(fn_xy_out, "w")) == NULL) {
		fprintf(stderr, 
			"ERROR: Cannot open xy output file <%s>.\n",
				fn_xy_out);
		return(-1);
    	}
	sprintf(fn_lonlat_out, "%s.lonlat.%s", fn_outroot, orientation);
	if ((fp_lonlat_out = fopen(fn_lonlat_out, "w")) == NULL) {
		fprintf(stderr, 
			"ERROR: Cannot open lonlat output file <%s>.\n",
				fn_lonlat_out);
		return(-1);
    	}

	or_xy = or_xz = or_yz = or_zy = 0;
	if (strcmp(orientation, "XY") == 0)
		or_xy = 1;
	else if (strcmp(orientation, "XZ") == 0)
		or_xz = 1;
	else if (strcmp(orientation, "YZ") == 0)
		or_yz = 1;
	else if (strcmp(orientation, "ZY") == 0)
		or_zy = 1;


	// skip header line

	if (fgets(line_in, 2*MAXLINE, fp_input) == NULL)
		puterr("ERROR: reading header line in .pun file");


	// convert each hypocenter

	fprintf(fp_xy_out, ">\n");
	fprintf(fp_lonlat_out, ">\n");

	while(fgets(line_in, 2*MAXLINE, fp_input) != NULL) {
		dlat = dlong = vdepth = errx = erry = errz = 2.0e2;
		ilat = ilong = 0;
		if ((istat = sscanf(line_in, 
"%*d %*d %*f %d-%lf %d-%lf %lf %*d %*d %*f %*f %*f %*f %*s %lf %lf %lf", 
				&ilat, &dlat, &ilong, &dlong, &vdepth, 
				&errx, &erry, &errz)) != 8) {
			puterr("WARNING: Error reading line in .pun file:");
			puterr(line_in);
		}
		vlat = (double) ilat + dlat / 60.0;
		vlong = ilong + dlong / 60.0;
		latlon2rect(vlat, vlong, &xgrid, &ygrid);
		if (or_xy) {
			Err2GMT(fp_xy_out, xgrid, ygrid, 
				errx, barlen, erry, barlen);
			Err2GMT(fp_lonlat_out, vlong, vlat, 
				errx / (c111 * cos(rpd * vlat)), 
				barlen / (c111 * cos(rpd * vlat)),
				erry / c111, barlen / c111);
		} else if (or_xz) {
			Err2GMT(fp_xy_out, xgrid, vdepth, 
				errx, barlen, errz, barlen);
			Err2GMT(fp_lonlat_out, vlong, vdepth, 
				errx / (c111 * cos(rpd * vlat)), 
				barlen / (c111 * cos(rpd * vlat)),
				errz, barlen);
		} else if (or_yz) {
			Err2GMT(fp_xy_out, ygrid, vdepth, 
				erry, barlen, errz, barlen);
			Err2GMT(fp_lonlat_out, vlat, vdepth, 
				erry / c111, barlen / c111, errz, barlen);
		} else if (or_zy) {
			Err2GMT(fp_xy_out, vdepth, ygrid, 
				errz, barlen, erry, barlen);
			Err2GMT(fp_lonlat_out, vdepth, vlat, 
				errz, barlen, erry / c111, barlen / c111);
		}
	}

	fclose(fp_input);
	fclose(fp_xy_out);
	fclose(fp_lonlat_out);

	return(0);

}
Exemplo n.º 12
0
Arquivo: main.c Projeto: vocho/openqnx
int read_mdm( int nchars, int timeout, uchar *buf ) {
	int		n, i, ungot = 0;

#ifdef DIAG
fprintf(stderr,"read_mdm(%d, %d, buffer)\r\n",nchars, timeout);
#endif

	if ( ungot_char != 0xffff ) {		/* Process unget buffer first	*/
		--nchars;
		*buf++ = (uchar) ungot_char;
		ungot_char = 0xffff;
		ungot = 1;
		}
	if ( timeout == -1 ) timeout = 0;
	n = 0;
#ifndef __QNXNTO__
	if ( !socket ) {
		while ( nchars && ( i = dev_read( mdm, buf, nchars, nchars, 0, timeout, 0, 0 ) ) ) {
			if ( i == -1 ) puterr( "read_mdm(): %s\n", strerror(errno) );
			buf += i; nchars -= i; n += i;
			}
	    }
	else
#endif
		{
		int s=0;
		struct timeval tv;
		fd_set rfd;

		FD_ZERO( &rfd );
		FD_SET( mdm, &rfd );
		memset(&tv,0,sizeof(tv));
		tv.tv_sec = timeout / onesec;

#ifdef DIAG
fprintf(stderr,"select tv.tv_src = %d\r\n",tv.tv_sec);
#endif
		while( nchars && (s = select( 1 + mdm, &rfd, 0, 0, &tv )) == 1 ) {
#ifdef DIAG
fprintf(stderr,"select returned - chars waiting. Set timeout for %d seconds\r\n",timeout/onesec);
#endif
			alarm( timeout / onesec );
#ifdef DIAG
fprintf(stderr,"reading...\r\n");
#endif
			while ( nchars && ( i = read( mdm, buf, nchars ) ) ) {
				if ( i == -1 ) {
					if( errno == EINTR ) {
#ifdef DIAG
					fprintf(stderr,"read_mdm(): alarm timeout\n");
#endif
						goto timeout;
					}
					if( errno != EAGAIN )
						puterr( "read_mdm(): %s\n", strerror(errno) );
					break;
					}
				else {
#ifdef DIAG 
fprintf(stderr,"read_mdm got %d chars [0x%02x 0x%02x 0x%02x...]\r\n",i,buf[0],buf[1],buf[2]);
#endif
					buf += i; nchars -= i; n += i;
					}
				}
			alarm( 0 );
		    }
timeout:
		if ( s == -1 ) puterr( "read_mdm() / select(): %s\n", strerror(errno));
		}

#ifdef DIAG
fprintf(stderr,"read_mdm returning %d(+%d ungot) chars\r\n",n,ungot);
#endif

	return( n + ungot );
	}
Exemplo n.º 13
0
int exec_cmd(int under_glob, int under_until)
	{
	register int status;
	register char *p;
	int n;

	if((status = getrange()) <= ERROR)
		return( status );
	status = ERROR9;

	switch( *lp++ ) {

	case 'i':
		laddr2 = prevln(laddr2);

	case 'a':
		status = append(laddr2, under_glob);
		break;

	case 'b':
			if(!under_glob  &&  !under_until)
				status = branch();
		break;

	case 'c':
		if((status = delete(laddr1, laddr2, SAVE)) == OK)
			status = append(prevln(laddr1), under_glob);
		break;

	case 'd':
		if((status = delete(laddr1, laddr2, SAVE)) == OK && nextln(curln) != 0)
			curln = nextln(curln);
		break;

	case 'e':
		if(lastln  &&  dirty  &&  *lp != 'e') {
			status = ERROR4;
			break;
			}

		if(*lp == 'e')
			++lp;

		if(nladdrs == 0  &&  !under_glob  &&  !under_until  &&
			(status = getfn()) == OK) {
			set_fn(curfile, lp);
			if(lastln != 0)
				delete(1, lastln, NOSAVE);
			num_delete_lines = 0;
			if((status = _read( lp, 0, 0)) == OK) {
				dirty = 0;
				if(lastln)
					curln = 1;
				}
			}
		lp = "\n";
		break;

	case 'f':
		if(nladdrs == 0  &&  (status = getfn()) == OK) {
			set_fn(curfile, lp);
			putmsg(curfile);
			lp = "\n";
			}
		change_state(CMD);
		break;

	case 'g':
		if(!under_glob) {
			if(*lp == '^') {
				++lp;
				n = 0;
				}
			else
				n = 1;
			status = exec_glob(n, under_until);
			}
		break;

	case 'h':
		n = getint();
#ifndef __STDC__
		while(n--)
			for(n1 = 0; n1 < 10; ++n1)
				time_slice();
#endif
		status = OK;
		break;

	case 'j':
		status = join(laddr2);
		break;

	case 'k':
		if((status = get_laddr_expr(&n)) == OK)
			status = kopy(n);
		break;

	case 'l':
		if(nladdrs == 0)
			status = learn();
		break;

	case 'm':
		if((status = get_laddr_expr(&n)) == OK)
			status = move(n);
		break;

	case 'o':
		status = option();
		break;

	case 'p':
	case 'P':
		status = prnt(laddr1, laddr2);
		break;

	case 'q':
		if(nladdrs==0 && !under_glob) {
			if((*lp=='\n' && !dirty) || *lp=='q'  ||  lastln == 0)
				status = EOF;
			else
				status = ERROR4;
		}
		break;

	case 'r':
		if(!under_glob  &&  !under_until  &&  (status = getfn()) == OK)
			status = _read(lp, laddr2, 0);
		lp = "\n";
		break;

	case 's':
		n = getint(); /* read occurance if present */
		if((status=getpat()) == OK  &&  (status=getsubst_str(tbuff)) == OK)
			status = substitute(tbuff, under_glob, n);
		break;

	case 't':
	case 'T':
		if(nladdrs == 0)
			status = translate(*(lp - 1) == 't');
		break;

	case 'u':
		status = until(laddr1, laddr2, under_glob);
		break;

	case 'v':
		if(nladdrs <= 1)
			status = view(laddr1);
		break;

	case 'w':
		n = 0;
		if(*lp == 'w') {
			n |= 2;
			++lp;
			}
		if(*lp == 'a') {
			n |= 1;
			++lp;
			}

		if((status = getfn()) == OK) {
			if(nladdrs == 0) {
				if(curfile[0] == '\0')
					set_fn(curfile, lp);
				else {
					if((n & 2) == 0  &&  strcmp(curfile, lp) != 0) {
						for(p = lp ; *p ; ++p)
							if(*p == '$')
								goto ok;
						puterr(-19);
						lp = "\n";
						break;
						}
					}
				ok:
				if((status = _write(lp, 1, lastln, n & 1, 0)) == OK)
					dirty = 0;
				}
			} else {
				status = _write(lp, laddr1, laddr2, n & 1, 0);
			}
		lp = "\n";
		break;

    case 'x':
		if(!under_glob  &&  !under_until  &&  (status = getfn()) == OK)
			if(nladdrs == 0)
				status = exec_file(lp, under_glob, under_until);
		lp = "\n";
		break;

	case 'y':
		status = yut();
		break;

	case 'z':
		status = zap();
		break;

	case '\n':
		--lp; /* put back newline for main */
		if(laddr2 < 0  ||  laddr2 > lastln)
			status = lastln ? ERROR5 : OK;
		else {
			curln = laddr2;
			status = OK;
			}
		break;

	case ' ':
	case '\t':
	case CMD_CHAR:
		status = OK;
		break;

	case '=':
		dtoc(rbuff, laddr2);
		if(under_glob)
			prnt_screen(rbuff, 1);
		else
			putmsg(rbuff);
		status = OK;
		break;

	case '"':
		lp = "\n";	/* Ignore rest of line */
		status = OK;
		break;

	case '!':
		if(escape_char == 0  ||  restrict_flag) {
			putmsg("Escape from ED inhibited");
			status = NOTHING;
			}
		else
			status = exec_sys_cmd(under_glob, under_until);
		break;

	default:
		status = ERROR2;
		}
	return(status);
	}