home *** CD-ROM | disk | FTP | other *** search
- /*
-
- atconv.c
-
-
-
- program to translate ATASCII to ASCII or vice-versa.
-
- call:
-
- atconv filename
-
-
-
- function: program translates all occurrences of 0x9b to
-
- ox0d,0x0a and all occurrences of 0x0a to 0x9b.
-
- Occurrences of 0x0d in the input are ignored.
-
- The result of this translation is that files in
-
- ATASCII are readable in ASCII and files in ASCII
-
- are readable in ATASCII.
-
-
-
- warnings: This program writes a temporary file "xyzzy.tmp"
-
- which replaces the original file upon completion.
-
- If the user wishes to retain the original file, a copy
-
- should be made beforehand.
-
-
-
- author: Bruce D. Nelson
-
- */
-
-
-
- #include <stdio.h>
-
- #include <osbind.h>
-
-
-
- main (argc, argv)
-
- int argc;
-
- char *argv[];
-
- {
-
- int c1,dtabuff[22],whway;
-
- long l,len;
-
- FILE *fp1,*fp2;
-
-
-
- if (argc < 2) {
-
- printf("Usage: atconv filename\n");
-
- exit();
-
- }
-
-
-
- if ((fp1 = fopen (argv[1], "br")) == NULL) {
-
- printf ("Can't open %s\n",argv[1]);
-
- exit();
-
- }
-
- if ((fp2 = fopen ("xyzzy.tmp", "bw")) == NULL) {
-
- printf ("Can't open xyzzy.tmp");
-
- exit();
-
- }
-
-
-
- Fsetdta (dtabuff);
-
- Fsfirst (argv[1],0);
-
- len = *(long *)(dtabuff+13);
-
- whway = 0; /* indicates which way the translation was assumed */
-
-
-
- for (l=0;l<len;l++){
-
- c1 = fgetc(fp1);
-
- switch (c1){
-
- case 0x9b:{
-
- whway = 1;
-
- wputc(0x0d,fp2);
-
- wputc(0x0a,fp2);
-
- break;
-
- }
-
- case 0x0d:{
-
- break;
-
- }
-
- case 0x0a:{
-
- whway = 2;
-
- wputc(0x9b,fp2);
-
- break;
-
- }
-
- default:{
-
- wputc(c1,fp2);
-
- break;
-
- }
-
- } /* end switch */
-
- }/* end for */
-
-
-
- fclose (fp1);
-
- fclose (fp2);
-
-
-
- Fdelete(argv[1]);
-
- Frename(0,"xyzzy.tmp",argv[1]);
-
-
-
- if (whway == 1) printf ("%s converted from ATASCII to ASCII",argv[1]);
-
- if (whway == 2) printf ("%s converted from ASCII to ATASCII",argv[1]);
-
-
-
- }
-
-
-
- wputc (c,f) /* fputc with error handling */
-
- int c;
-
- FILE *f;
-
- {
-
- if ((fputc(c,f))==EOF){
-
- printf ("End of file on temp file\n");
-
- exit();
-
- }
-
- }
-
-
-
-