home *** CD-ROM | disk | FTP | other *** search
- /**********************************************************************
- * InterSoft International, Inc *
- * Copyright (C) 1995 *
- ***********************************************************************
- * System: IBM PC *
- * Program: NETEDIT.C *
- * Author: K.R. Robinette *
- * Date: July, 1996 *
- * Function: Remote Editing Support *
- **********************************************************************/
- #include "stdio.h"
- #include "string.h"
- #include "sys/types.h"
- #include "sys/stat.h"
-
- char on[5] = {"\033[5i"};
- char off[5] = {"\033[3i"};
-
- main(argc,argv)
- int argc;
- char **argv;
- {
- int len,flag,mode;
- FILE *fd;
- char line[1024],out[1024];
- struct stat buf;
- if(argc == 2)
- {
- if((stat(argv[1],&buf)) != 0)
- {
- printf("Error, could not open %s\n",argv[1]);
- exit(-1);
- }
- mode = buf.st_mode;
- if((fd = fopen(argv[1],"r")) == NULL)
- {
- printf("Error, could not open %s\n",argv[1]);
- exit(-1);
- }
- if((fwrite(on,1,4,stdout)) != 4)
- {
- printf("Error, writing to network\n");
- exit(-1);
- }
- while(1)
- {
- if(fgets(line,1023,fd) == NULL)
- break;
- len = strlen(line);
- fwrite(line,1,len,stdout);
- }
- fwrite(off,1,4,stdout);
- }
- else
- {
- printf("Input filename required\n");
- exit(-2);
- }
- fclose(fd);
-
- fd = NULL;
- system("stty -echo");
- strcpy(out,argv[1]);
- strcat(out,".new");
- line[0] = 0;
- while(1)
- {
- if(fgets(line,sizeof(line)-1,stdin) == NULL)
- {
- flag = 2;
- break;
- }
- if(line[0] == 0x02)
- {
- system("stty echo");
- printf("File was not modified\n");
- exit(0);
- }
- if(fd == NULL)
- if((fd = fopen(out,"w")) == NULL)
- {
- system("stty echo");
- printf("Error, could not open output file %s\n",out);
- exit(-3);
- }
- if(line[0] == 0x01)
- {
- flag = 1;
- break;
- }
- len = strlen(line);
- fwrite(line,1,len,fd);
- }
- if(fd)
- fclose(fd);
- if(flag == 2)
- remove(out);
- else if(flag == 1)
- {
- remove(argv[1]);
- strcpy(line,"mv ");
- strcat(line,out);
- strcat(line," ");
- strcat(line,argv[1]);
- system(line);
- chmod(argv[1],mode);
- }
- system("stty echo");
- if(flag == 1)
- printf("File was modified\n");
- else
- printf("File was not modified\n");
- }
-