projects
/
debian
/
cpmtools
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
New upstream version 2.20
[debian/cpmtools]
/
fsck.cpm.c
diff --git
a/fsck.cpm.c
b/fsck.cpm.c
index 572823b1c7ce537466b25d84b3b0585b5d5a937b..585015b0cac3f91db0cc337b4bf42004dbd4d3e4 100644
(file)
--- a/
fsck.cpm.c
+++ b/
fsck.cpm.c
@@
-1,17
+1,20
@@
/* #includes */ /*{{{C}}}*//*{{{*/
/* #includes */ /*{{{C}}}*//*{{{*/
+#include "config.h"
+
#include <assert.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <errno.h>
#include <errno.h>
-#include "config.h"
-
-extern char *optarg;
-extern int optind,opterr,optopt;
-int getopt(int argc, char * const *argv, const char *optstring);
+#include "getopt_.h"
#include "cpmdir.h"
#include "cpmfs.h"
#include "cpmdir.h"
#include "cpmfs.h"
+
+#ifdef USE_DMALLOC
+#include <dmalloc.h>
+#endif
/*}}}*/
/* #defines */ /*{{{*/
/* your favourite password *:-) */
/*}}}*/
/* #defines */ /*{{{*/
/* your favourite password *:-) */
@@
-246,7
+249,7
@@
static int fsck(struct cpmInode *root, const char *image)
if (block>0)
{
++usedBlocks;
if (block>0)
{
++usedBlocks;
- if (block<min || block>max)
+ if (block<min || block>
=
max)
{
printf("Error: Bad block number (extent=%d, name=\"%s\", block=%d)\n",extent,prfile(sb,extent),block);
if (ask("Remove file"))
{
printf("Error: Bad block number (extent=%d, name=\"%s\", block=%d)\n",extent,prfile(sb,extent),block);
if (ask("Remove file"))
@@
-568,13
+571,14
@@
int main(int argc, char *argv[])
{
const char *err;
const char *image;
{
const char *err;
const char *image;
- const char *format
=FORMAT
;
+ const char *format;
const char *devopts=NULL;
int c,usage=0;
struct cpmSuperBlock sb;
struct cpmInode root;
enum Result ret;
const char *devopts=NULL;
int c,usage=0;
struct cpmSuperBlock sb;
struct cpmInode root;
enum Result ret;
+ if (!(format=getenv("CPMTOOLSFMT"))) format=FORMAT;
while ((c=getopt(argc,argv,"T:f:nh?"))!=EOF) switch(c)
{
case 'f': format=optarg; break;
while ((c=getopt(argc,argv,"T:f:nh?"))!=EOF) switch(c)
{
case 'f': format=optarg; break;
@@
-585,7
+589,7
@@
int main(int argc, char *argv[])
}
if (optind!=(argc-1)) usage=1;
}
if (optind!=(argc-1)) usage=1;
- else image=argv[optind];
+ else image=argv[optind
++
];
if (usage)
{
if (usage)
{
@@
-596,15
+600,19
@@
int main(int argc, char *argv[])
{
if ((err=Device_open(&sb.dev, image,O_RDONLY, devopts)))
{
{
if ((err=Device_open(&sb.dev, image,O_RDONLY, devopts)))
{
- fprintf(stderr,"%s: can
not open %s: %s\n",cmd,image,err);
+ fprintf(stderr,"%s: cannot open %s: %s\n",cmd,image,err);
exit(1);
}
else
{
exit(1);
}
else
{
- fprintf(stderr,"%s: can
not open %s for writing, no repair possible\n",cmd,image);
+ fprintf(stderr,"%s: cannot open %s for writing, no repair possible\n",cmd,image);
}
}
}
}
- cpmReadSuper(&sb,&root,format);
+ if (cpmReadSuper(&sb,&root,format)==-1)
+ {
+ fprintf(stderr,"%s: cannot read superblock (%s)\n",cmd,boo);
+ exit(1);
+ }
ret=fsck(&root,image);
if (ret&MODIFIED)
{
ret=fsck(&root,image);
if (ret&MODIFIED)
{