mirror of
https://git.freebsd.org/ports.git
synced 2025-04-30 02:26:38 -04:00
This source code used to compile for about 40 years now since its original creation. Now, C compilers no longer compile traditional (= pre-C89) source code, so a large patch was needed to add function prototypes.
829 lines
15 KiB
Text
829 lines
15 KiB
Text
--- ./src/cpm.c~ 1994-06-04 18:46:13.000000000 +0200
|
|
+++ ./src/cpm.c 2023-03-13 22:35:26.379615000 +0100
|
|
@@ -51,8 +51,9 @@
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
#include <signal.h>
|
|
+#include <stdlib.h>
|
|
+#include <unistd.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
#define BIG 2147483647
|
|
|
|
@@ -75,12 +76,13 @@
|
|
|
|
char *string;
|
|
|
|
+int
|
|
main(argc, argv)
|
|
int argc;
|
|
char *argv[];
|
|
{
|
|
|
|
- char *cpmname, *unixname, *malloc();
|
|
+ char *cpmname, *unixname;
|
|
int xflag = 0, stat=0, Cflag = 0, Iflag = 0, Bflag = 0;
|
|
|
|
if (argc == 1)
|
|
@@ -314,13 +316,14 @@
|
|
exit(0);
|
|
}
|
|
if (tflag > 0) {
|
|
- copy(cpmname, stdout, 0);
|
|
+ copy(cpmname, (char *)stdout, 0);
|
|
exit(0);
|
|
}
|
|
}
|
|
|
|
-
|
|
+long
|
|
number(big)
|
|
+ long big;
|
|
{
|
|
register char *cs;
|
|
long n;
|
|
@@ -351,14 +354,15 @@
|
|
|
|
case '\0':
|
|
if (n >= big || n < 0) {
|
|
- fprintf(stderr,"number: argument %D out of range\n", n);
|
|
+ fprintf(stderr,"number: argument %ld out of range\n", n);
|
|
exit(1);
|
|
}
|
|
return (n);
|
|
}
|
|
}
|
|
|
|
-usage()
|
|
+void
|
|
+usage(void)
|
|
{
|
|
printf("Usage: cpm [-i][-d][-p name][-c|C name1 name2] file-name\n");
|
|
printf("Disk geometry options:\n");
|
|
--- ./src/interact.c~ 1994-05-01 23:08:18.000000000 +0200
|
|
+++ ./src/interact.c 2023-03-13 22:53:16.660087000 +0100
|
|
@@ -1,20 +1,24 @@
|
|
/* interact.c 1.8 83/07/27 */
|
|
#include <stdio.h>
|
|
+#include <string.h>
|
|
#include "command.h"
|
|
#include <setjmp.h>
|
|
#include <signal.h>
|
|
+#include "cpmio.h"
|
|
|
|
#define errinp { printf("??\n"); break; }
|
|
+#define index(s, c) strchr(s, c)
|
|
|
|
jmp_buf env;
|
|
int firsttime = 0;
|
|
|
|
-interact()
|
|
+int
|
|
+interact(void)
|
|
|
|
{
|
|
|
|
- int i, intrpt();
|
|
- char cmd[80], *rest, *index();
|
|
+ int i;
|
|
+ char cmd[80], *rest;
|
|
|
|
for (;;) {
|
|
if (firsttime++ == 0) {
|
|
@@ -62,7 +66,7 @@
|
|
return(0);
|
|
|
|
case CMD_TYPE:
|
|
- copy(rest, stdout, 0);
|
|
+ copy(rest, (char *)stdout, 0);
|
|
break;
|
|
|
|
case CMD_HELP:
|
|
@@ -90,7 +94,9 @@
|
|
* just (long)jump back to command input mode
|
|
*/
|
|
|
|
-intrpt()
|
|
+void
|
|
+intrpt(signo)
|
|
+ int signo;
|
|
{
|
|
firsttime = 0;
|
|
printf("\n");
|
|
--- ./src/gensktab.c~ 2023-03-13 21:24:48.963957000 +0100
|
|
+++ ./src/gensktab.c 2023-03-13 22:28:27.370903000 +0100
|
|
@@ -1,8 +1,8 @@
|
|
/* gensktab.c 1.4 83/05/13 */
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
#include "cpmio.h"
|
|
|
|
-extern int skew;
|
|
int *skewtab;
|
|
|
|
/*
|
|
@@ -12,11 +12,11 @@
|
|
* accesses are attempted.
|
|
*/
|
|
|
|
-gen_sktab()
|
|
+void
|
|
+gen_sktab(void)
|
|
{
|
|
|
|
int *i, *j;
|
|
- char *malloc();
|
|
|
|
if (( skewtab = (int *) malloc(sectrk*4)) == NULL) {
|
|
fprintf(stderr,
|
|
--- ./src/ffc.c~ 1983-06-24 00:20:29.000000000 +0200
|
|
+++ ./src/ffc.c 2023-03-13 22:53:42.692364000 +0100
|
|
@@ -16,6 +16,7 @@
|
|
* hs 10/29/82
|
|
*/
|
|
|
|
+int
|
|
ffc(start, len, field)
|
|
|
|
#ifndef VAX
|
|
--- ./src/cmdhdl.c~ 1994-05-28 09:00:02.000000000 +0200
|
|
+++ ./src/cmdhdl.c 2023-03-13 21:59:35.088747000 +0100
|
|
@@ -2,6 +2,8 @@
|
|
|
|
#include <ctype.h>
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <string.h>
|
|
#include "cpmio.h"
|
|
|
|
#ifndef HELPFILE
|
|
@@ -14,6 +16,7 @@
|
|
* return the number of characters read.
|
|
*/
|
|
|
|
+int
|
|
cmdinp(cmd)
|
|
char cmd[];
|
|
{
|
|
@@ -58,6 +61,7 @@
|
|
"!! ", 2, 0, /* 15 */
|
|
"" , 0 };
|
|
|
|
+int
|
|
chkcmd(cmd)
|
|
char *cmd;
|
|
|
|
@@ -84,7 +88,8 @@
|
|
return (++index);
|
|
}
|
|
|
|
-help()
|
|
+void
|
|
+help(void)
|
|
{
|
|
|
|
FILE *fd, *fopen();
|
|
@@ -103,6 +108,7 @@
|
|
* bad file name, otherwise 1.
|
|
*/
|
|
|
|
+int
|
|
namesep(fname, name, ext)
|
|
char fname[], name[], ext[];
|
|
{
|
|
@@ -125,7 +131,7 @@
|
|
} else {
|
|
if (fname[i] != ' ' && fname[i] != '\0') {
|
|
fprintf(stderr, "Illegal filename\n");
|
|
- return (NULL);
|
|
+ return (0);
|
|
}
|
|
}
|
|
#ifdef DEBUG
|
|
@@ -133,11 +139,12 @@
|
|
#endif
|
|
if (!(isalnum(name[0]))) {
|
|
fprintf(stderr, "Illegal filename\n");
|
|
- return(NULL);
|
|
+ return(0);
|
|
}
|
|
return(1);
|
|
}
|
|
|
|
+void
|
|
clean(str, len)
|
|
char str[];
|
|
int len;
|
|
--- ./src/extent.c~ 1994-05-28 12:47:09.000000000 +0200
|
|
+++ ./src/extent.c 2023-03-13 22:45:10.645426000 +0100
|
|
@@ -1,8 +1,8 @@
|
|
/* extent.c 1.7 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <string.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Allocate a new extent to the file pointed to by curext,
|
|
@@ -12,6 +12,7 @@
|
|
* the index to the new extent.
|
|
*/
|
|
|
|
+int
|
|
creext(curext)
|
|
int curext;
|
|
{
|
|
@@ -44,6 +45,7 @@
|
|
* return the new extent's index if found, otherwise NULL.
|
|
*/
|
|
|
|
+int
|
|
getnext(cur)
|
|
C_FILE *cur;
|
|
{
|
|
@@ -67,5 +69,5 @@
|
|
#endif
|
|
return (ind);
|
|
}
|
|
- return (NULL);
|
|
+ return (0);
|
|
}
|
|
--- ./src/cpmio.h~ 1994-05-28 12:27:27.000000000 +0200
|
|
+++ ./src/cpmio.h 2023-03-13 22:50:35.766391000 +0100
|
|
@@ -34,3 +34,53 @@
|
|
extern int *bitmap, *skewtab;
|
|
extern int bm_size;
|
|
extern int use16bitptrs;
|
|
+
|
|
+#include "cpmfio.h"
|
|
+
|
|
+int ffc(long, int, int);
|
|
+int alloc(void);
|
|
+void dbmap(char *);
|
|
+int blks_used(void);
|
|
+void build_bmap(void);
|
|
+int getblock(int, char[], int);
|
|
+int putblock(int, char[], int);
|
|
+int putpsect(int, int, char[]);
|
|
+int getpsect(int, int, char[]);
|
|
+int initcpm(char *);
|
|
+int c_close(C_FILE *);
|
|
+C_FILE *c_creat(char *, char *, int);
|
|
+void dispdir(void);
|
|
+void getdir(void);
|
|
+void savedir(void);
|
|
+int searchdir(char *, char *);
|
|
+int creext(int);
|
|
+int getnext(C_FILE *);
|
|
+int c_fillbuf(C_FILE *);
|
|
+int c_flush(C_FILE *);
|
|
+int c_flsbuf(int, C_FILE *);
|
|
+int c_write(C_FILE *, char *, int);
|
|
+int cmdinp(char[]);
|
|
+int chkcmd(char *);
|
|
+void help(void);
|
|
+int namesep(char[], char[], char[]);
|
|
+void clean(char[], int);
|
|
+C_FILE *c_open(char *, char *, int);
|
|
+void fnfound(char[], char[]);
|
|
+void copyc(char[], int);
|
|
+void copy(char[], char[], int);
|
|
+void copytext(C_FILE *, FILE *);
|
|
+void copybin(C_FILE *, FILE *);
|
|
+void usage(void);
|
|
+long number(long);
|
|
+void gen_sktab(void);
|
|
+int interact(void);
|
|
+void intrpt(int);
|
|
+void pip(char[], int);
|
|
+void pipc(char[], char[], int);
|
|
+void piptext(C_FILE *, FILE *);
|
|
+void pipbin(C_FILE *, FILE *);
|
|
+void delete(char *);
|
|
+void dump(char[]);
|
|
+void hexdump(C_FILE *);
|
|
+void printline(FILE *, int[], int);
|
|
+int Rename(char *);
|
|
--- ./src/copy.c~ 1994-05-05 00:23:14.000000000 +0200
|
|
+++ ./src/copy.c 2023-03-13 22:06:10.049082000 +0100
|
|
@@ -1,8 +1,9 @@
|
|
/* copy.c 1.8 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <unistd.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
#define CTRL_Z 0x1a /* CP/M end-of-file */
|
|
|
|
@@ -10,6 +11,7 @@
|
|
* copy cpmfile to unix file
|
|
*/
|
|
|
|
+void
|
|
copyc(cmdline, bin)
|
|
char cmdline[];
|
|
{
|
|
@@ -24,10 +26,10 @@
|
|
copy(cmdline, i+1, bin);
|
|
}
|
|
|
|
+void
|
|
copy(cpmfile, unixfile, bin)
|
|
char cpmfile[], unixfile[];
|
|
{
|
|
- extern char *getenv();
|
|
FILE *ufid;
|
|
char name[9], ext[4];
|
|
char *pager = 0;
|
|
@@ -65,6 +67,7 @@
|
|
pclose(ufid);
|
|
}
|
|
|
|
+void
|
|
copytext(cid, ufid)
|
|
FILE *ufid;
|
|
C_FILE *cid;
|
|
@@ -81,6 +84,7 @@
|
|
fclose(ufid);
|
|
}
|
|
|
|
+void
|
|
copybin(cid, ufid)
|
|
FILE *ufid;
|
|
C_FILE *cid;
|
|
--- ./src/hexdmp.c~ 1994-05-28 11:02:14.000000000 +0200
|
|
+++ ./src/hexdmp.c 2023-03-13 22:44:54.086889000 +0100
|
|
@@ -3,8 +3,8 @@
|
|
#include <ctype.h>
|
|
#include <stdio.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
+void
|
|
dump(cmdline)
|
|
char cmdline[];
|
|
{
|
|
@@ -23,6 +23,7 @@
|
|
c_close(cid);
|
|
}
|
|
|
|
+void
|
|
hexdump(fp)
|
|
C_FILE *fp;
|
|
{
|
|
@@ -56,9 +57,10 @@
|
|
pclose(piped);
|
|
}
|
|
|
|
+void
|
|
printline(piped, cbuf, nc)
|
|
FILE *piped;
|
|
- int cbuf[];
|
|
+ int cbuf[], nc;
|
|
{
|
|
int i1;
|
|
|
|
--- ./src/dirhdl.c~ 1994-05-02 23:39:23.000000000 +0200
|
|
+++ ./src/dirhdl.c 2023-03-13 22:42:19.809668000 +0100
|
|
@@ -1,11 +1,14 @@
|
|
/* dirhdl.c 1.7 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <string.h>
|
|
#include "cpmio.h"
|
|
|
|
/* Display cp/m directory on stdout */
|
|
|
|
-dispdir()
|
|
+void
|
|
+dispdir(void)
|
|
{
|
|
|
|
int cnt, i;
|
|
@@ -39,7 +42,8 @@
|
|
return;
|
|
}
|
|
|
|
-getdir()
|
|
+void
|
|
+getdir(void)
|
|
|
|
{
|
|
|
|
@@ -50,7 +54,7 @@
|
|
if ((maxdir*32)%blksiz > 0)
|
|
++blks;
|
|
for (bl = 0; blks > 0; bl++, blks--) {
|
|
- if (getblock(bl,dirbuf+offset,-1) == EOF) {
|
|
+ if (getblock(bl,(char *)(dirbuf+offset),-1) == EOF) {
|
|
fprintf(stderr, "getdir: fatal error\n");
|
|
exit (0);
|
|
}
|
|
@@ -59,7 +63,8 @@
|
|
}
|
|
|
|
|
|
-savedir()
|
|
+void
|
|
+savedir(void)
|
|
|
|
{
|
|
|
|
@@ -70,7 +75,7 @@
|
|
if ((maxdir*32)%blksiz > 0)
|
|
++blks;
|
|
for (bl = 0; blks > 0; bl++, blks--) {
|
|
- if (putblock(bl,dirbuf+offset,-1) == EOF) {
|
|
+ if (putblock(bl,(char *)(dirbuf+offset),-1) == EOF) {
|
|
fprintf(stderr, "savedir: fatal error\n");
|
|
exit (0);
|
|
}
|
|
@@ -84,6 +89,7 @@
|
|
* returned if found.
|
|
*/
|
|
|
|
+int
|
|
searchdir(name,ext)
|
|
char *name, *ext;
|
|
|
|
--- ./src/delete.c~ 1983-06-24 00:19:48.000000000 +0200
|
|
+++ ./src/delete.c 2023-03-13 22:36:55.216932000 +0100
|
|
@@ -2,12 +2,12 @@
|
|
|
|
#include <stdio.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Delete cp/m file
|
|
*/
|
|
|
|
+void
|
|
delete(cmdline)
|
|
char *cmdline;
|
|
|
|
--- ./src/bitmap.c~ 1994-05-28 08:52:55.000000000 +0200
|
|
+++ ./src/bitmap.c 2023-03-13 21:33:33.379559000 +0100
|
|
@@ -1,6 +1,7 @@
|
|
/* bitmap.c 1.9 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
#include "cpmio.h"
|
|
int bm_size;
|
|
|
|
@@ -21,7 +22,7 @@
|
|
* Allocate a new disk block, return NULL if disk full
|
|
*/
|
|
int
|
|
-alloc()
|
|
+alloc(void)
|
|
|
|
{
|
|
|
|
@@ -47,6 +48,7 @@
|
|
* Dump the bitmap in hex to stdout, used only for debugging
|
|
*/
|
|
|
|
+void
|
|
dbmap(str)
|
|
char *str;
|
|
{
|
|
@@ -65,7 +67,8 @@
|
|
* directory, including the directory blocks
|
|
*/
|
|
|
|
-blks_used()
|
|
+int
|
|
+blks_used(void)
|
|
{
|
|
|
|
int j, i, temp;
|
|
@@ -89,10 +92,11 @@
|
|
}
|
|
|
|
|
|
-build_bmap()
|
|
+void
|
|
+build_bmap(void)
|
|
{
|
|
|
|
- int i, j, *malloc(), offset, block;
|
|
+ int i, j, offset, block;
|
|
|
|
bm_size = 1 + ((seclth*sectrk*(tracks-restrk))/blksiz)/INTSIZE;
|
|
|
|
--- ./src/pip.c~ 1983-06-24 00:20:48.000000000 +0200
|
|
+++ ./src/pip.c 2023-03-13 22:53:58.575346000 +0100
|
|
@@ -1,15 +1,17 @@
|
|
/* pip.c 1.5 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <unistd.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Copy unix file to cpm
|
|
*/
|
|
|
|
+void
|
|
pip(cmdline, bin)
|
|
char cmdline[];
|
|
+ int bin;
|
|
{
|
|
|
|
char *index(), *i;
|
|
@@ -22,8 +24,10 @@
|
|
pipc(cmdline,i+1, bin);
|
|
}
|
|
|
|
+void
|
|
pipc(unixfile, cpmfile, bin)
|
|
char cpmfile[], unixfile[];
|
|
+ int bin;
|
|
{
|
|
|
|
FILE *ufid;
|
|
@@ -49,6 +53,7 @@
|
|
fclose(ufid);
|
|
}
|
|
|
|
+void
|
|
piptext(cid, ufid)
|
|
FILE *ufid;
|
|
C_FILE *cid;
|
|
@@ -65,6 +70,7 @@
|
|
}
|
|
}
|
|
|
|
+void
|
|
pipbin(cid, ufid)
|
|
FILE *ufid;
|
|
C_FILE *cid;
|
|
--- ./src/cclose.c~ 1994-05-28 12:28:10.000000000 +0200
|
|
+++ ./src/cclose.c 2023-03-13 21:48:51.189287000 +0100
|
|
@@ -1,7 +1,7 @@
|
|
/* cclose.c 1.10 83/05/13 */
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Close cp/m file
|
|
@@ -9,6 +9,7 @@
|
|
* buffer to disk and update directory
|
|
*/
|
|
|
|
+int
|
|
c_close(fptr)
|
|
register C_FILE *fptr;
|
|
{
|
|
@@ -47,5 +48,5 @@
|
|
/* deallocate buffer memory and file descriptor */
|
|
fptr->c_flag = 0;
|
|
free(fptr->c_base);
|
|
- return (NULL);
|
|
+ return (0);
|
|
}
|
|
--- ./src/physio.c~ 1994-05-04 00:47:23.000000000 +0200
|
|
+++ ./src/physio.c 2023-03-13 22:52:08.309089000 +0100
|
|
@@ -3,13 +3,16 @@
|
|
#include <stdio.h>
|
|
#include "cpmio.h"
|
|
#include <fcntl.h>
|
|
+#include <unistd.h>
|
|
|
|
/*
|
|
* Write physical sector to floppy disk file
|
|
*/
|
|
|
|
+int
|
|
putpsect(tr, sect, buf)
|
|
char buf[];
|
|
+ int tr, sect;
|
|
{
|
|
|
|
long newpos;
|
|
@@ -35,8 +38,10 @@
|
|
* Read physical sector from floppy disk file
|
|
*/
|
|
|
|
+int
|
|
getpsect(tr, sect, buf)
|
|
char buf[];
|
|
+ int tr, sect;
|
|
{
|
|
|
|
long newpos;
|
|
@@ -64,6 +69,7 @@
|
|
* return its file pointer.
|
|
*/
|
|
|
|
+int
|
|
initcpm(name)
|
|
char *name;
|
|
{
|
|
--- ./src/blockio.c~ 1994-05-02 23:24:00.000000000 +0200
|
|
+++ ./src/blockio.c 2023-03-13 21:39:57.913922000 +0100
|
|
@@ -9,8 +9,10 @@
|
|
* if nsect is negative then always read a full block.
|
|
*/
|
|
|
|
+int
|
|
getblock(blockno, buffer, nsect)
|
|
char buffer[];
|
|
+ int blockno, nsect;
|
|
{
|
|
|
|
int sect, track, counter;
|
|
@@ -42,8 +44,10 @@
|
|
* If nsects is negative, write a full block.
|
|
*/
|
|
|
|
+int
|
|
putblock(blockno, buffer, nsect)
|
|
char buffer[];
|
|
+ int blockno, nsect;
|
|
{
|
|
|
|
int sect, track, counter;
|
|
--- ./src/cfillbuf.c~ 1994-05-04 00:45:39.000000000 +0200
|
|
+++ ./src/cfillbuf.c 2023-03-13 21:53:52.999972000 +0100
|
|
@@ -2,18 +2,18 @@
|
|
|
|
#include <stdio.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
+int
|
|
c_fillbuf(fptr)
|
|
register C_FILE *fptr;
|
|
{
|
|
|
|
- int getnext(), nsect;
|
|
+ int nsect;
|
|
|
|
if (++fptr->c_blk == (use16bitptrs? 8: 16))
|
|
if (fptr->c_dirp->blkcnt == (char) 0x80) {
|
|
/* find next extent (if it exists) */
|
|
- if (getnext(fptr) == NULL)
|
|
+ if (getnext(fptr) == 0)
|
|
return (EOF);
|
|
}
|
|
else
|
|
--- ./src/rename.c~ 1994-05-01 23:08:50.000000000 +0200
|
|
+++ ./src/rename.c 2023-03-13 22:52:55.083376000 +0100
|
|
@@ -1,14 +1,15 @@
|
|
/* rename.c 1.8 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <string.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Rename a cp/m file
|
|
* returns: 1 = failure, 0 = success
|
|
*/
|
|
|
|
+int
|
|
Rename(cmdline)
|
|
char *cmdline;
|
|
|
|
@@ -34,7 +35,7 @@
|
|
do {
|
|
strncpy(cio->c_dirp->name, newname, 8);
|
|
strncpy(cio->c_dirp->ext, newext, 3);
|
|
- } while (getnext(cio) != NULL);
|
|
+ } while (getnext(cio) != 0);
|
|
} else {
|
|
fnfound(oldname, oldext);
|
|
return (1);
|
|
--- ./src/copen.c~ 1994-05-28 12:46:30.000000000 +0200
|
|
+++ ./src/copen.c 2023-03-13 22:00:48.175250000 +0100
|
|
@@ -1,8 +1,8 @@
|
|
/* copen.c 1.7 83/05/13 */
|
|
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Open cp/m file with the given file name and extension, return
|
|
@@ -18,7 +18,6 @@
|
|
|
|
int i, index, scnt;
|
|
register C_FILE *fptr;
|
|
- char *malloc();
|
|
|
|
if ((index = searchdir(name, ext)) == -1) {
|
|
fnfound(name, ext);
|
|
@@ -68,6 +67,7 @@
|
|
return (fptr);
|
|
}
|
|
|
|
+void
|
|
fnfound(name, ext)
|
|
char name[], ext[];
|
|
{
|
|
--- ./src/ccreat.c~ 1994-05-04 00:36:44.000000000 +0200
|
|
+++ ./src/ccreat.c 2023-03-13 21:52:02.090429000 +0100
|
|
@@ -1,7 +1,8 @@
|
|
/* ccreat.c 1.9 83/05/13 */
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <string.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Create cp/m file with the given file name and extension, return
|
|
@@ -16,14 +17,12 @@
|
|
|
|
int i, index;
|
|
register C_FILE *fptr;
|
|
- char *malloc();
|
|
- int alloc();
|
|
|
|
if (searchdir(name, ext) != -1) {
|
|
fprintf(stderr, "file already exists: %s %s\n",name, ext);
|
|
return(NULL);
|
|
}
|
|
- if ((index = creext(-1)) < NULL) {
|
|
+ if ((index = creext(-1)) < 0) {
|
|
fprintf(stderr, "c_creat: no directory space\n");
|
|
return (NULL);
|
|
}
|
|
--- ./src/cflsbuf.c~ 1994-05-28 09:48:52.000000000 +0200
|
|
+++ ./src/cflsbuf.c 2023-03-13 21:56:11.480036000 +0100
|
|
@@ -2,7 +2,6 @@
|
|
|
|
#include <stdio.h>
|
|
#include "cpmio.h"
|
|
-#include "cpmfio.h"
|
|
|
|
/*
|
|
* Flush a full block to floppy disk file
|
|
@@ -11,12 +10,12 @@
|
|
* Create a new extent if required
|
|
*/
|
|
|
|
+int
|
|
c_flush(fptr)
|
|
register C_FILE *fptr;
|
|
{
|
|
|
|
int it;
|
|
- int alloc();
|
|
|
|
if (!(fptr->c_flag & WRITE)) {
|
|
fprintf(stderr, "no write access");
|
|
@@ -31,7 +30,7 @@
|
|
fptr->c_dirp->blkcnt = (char) 0x80;
|
|
savedir();
|
|
/* create new extent */
|
|
- if ((it = creext(fptr->c_ext)) == NULL) {
|
|
+ if ((it = creext(fptr->c_ext)) == 0) {
|
|
fprintf(stderr,"can't create new extent, current: %d\n",
|
|
fptr->c_ext);
|
|
return (EOF);
|
|
@@ -57,6 +56,7 @@
|
|
return (0);
|
|
}
|
|
|
|
+int
|
|
c_flsbuf(c, fptr)
|
|
register C_FILE *fptr;
|
|
{
|
|
@@ -72,6 +72,7 @@
|
|
* flush the buffer if full (for binary file transfers)
|
|
*/
|
|
|
|
+int
|
|
c_write(fptr, buf, cnt)
|
|
register C_FILE *fptr;
|
|
char *buf;
|
|
--- ./README~ 1994-06-05 01:28:04.000000000 +0200
|
|
+++ ./README 2023-03-13 22:56:43.728910000 +0100
|
|
@@ -12,3 +12,13 @@
|
|
|
|
Cpm lets UNIX users read and write standard cp/m 8" floppy disks and
|
|
provides a cp/m like user interface for manipulating cp/m files.
|
|
+
|
|
+-----------
|
|
+
|
|
+Remark from 2023:
|
|
+
|
|
+This source code used to be compilable for about 40 years by now.
|
|
+Meanwhile, C compilers stopped to still tolerate "traditional" (=
|
|
+pre-C89) C source code, so a larger patch was needed to provide
|
|
+function prototypes for everything, and include the now standardized
|
|
+library header files.
|