[comp.sys.mac.programmer] OrphanFiles Tool

bowman@reed.UUCP (Eric Bowman) (02/04/90)

I have no idea whether such a program has already been distributed (frankly, 
I wasn't paying attention), but having come face to face with grim, cold 
reality that OrphanFiles is a SCRIPT (?) and takes a VERY VERY LONG TIME 
on REALLY REALLY BIG PROJECTS, I just submitted to comp.sources.mac the 
source for a quick n dirty tool to strip out the ckid's from a file list 
to comp.sources.mac.

==============================================================================
| The Insidious Uncle BoBo                                                   |
------------------------------------------------------------------------------
|  "As I see it, my friends can access my private                            |
|   members in a public class..."                                            |
==============================================================================
| Eric Bowman ->                                                             |
| ShitNet:         bowman@reed.bitnet                                        |
| FarFromFreeNet:  (503)234-7158  (Like I'll Really Answer)                  |
| Disclaimer: "If my employer ever found out my opinions, well..."           |
/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=

bowman@reed.UUCP (Eric Bowman) (02/04/90)

/*  MPW 3.0 Tool to replace that God-Forsaken script, OrphanFiles */
/*  This might work on 2.0.2 -- I haven't tried -- I don't see why
it wouldn't */


/* Deez Part, C:  (3.0) */

#include <stdio.h>
#include <string.h>
#include <resources.h>

main(int argc,char *argv[])
{
char i,j,k;
short resid,oldres;
Boolean progress;
Handle tempHandle;

if (argc < 2) {
fprintf(stderr,"##  OrphanFiles [-p] file [filesI]\n");
return 1;
}

InitCursorCtl(nil);

for (i=1;i<argc;i++) {
SpinCursor(1);
if (!strcmp(argv[i],"-p")) {
progress = true;
for (j=i+1;j<argc;j++)
argv[j-1] = argv[j];
argc--;
break;
} else progress = false;
}
if (progress) {    
printf("\nOrphanFiles -- Very Fast Tool to replace Very Slow Script\n");
printf("February 3, 1990 by [Go For It]\n\n");
}

SetResLoad(false);
oldres = CurResFile();
for (i=1;i<argc;i++) {
SpinCursor(1);
resid = openresfile(argv[i]);
if (ResError()) {
fprintf(stderr,"# File %s not found\n",argv[i]);
break;
}
if (j = CountResources('ckid')) {
for (k=1;k<=j;k++) {
tempHandle=GetIndResource('ckid',k);
if (ResError() && progress)
printf(
"# Could not access 'ckid' resource index %d (error :%d) in file: %s\n"
,k,ResError(),argv[i]);
RmveResource(tempHandle);
if (progress) {
if (ResError())
printf(
"# Could not remove 'ckid' resource index %d (error :%d) in file: %s\n"
,k,ResError(),argv[i]);
else
printf("# Removed 'ckid' resource in file: %s\n",argv[i]);
}
}
} else if (progress)
printf("# %s has no 'ckid' resource\n",argv[i]);

CloseResFile(resid);
}
UseResFile(oldres);
}    

/*  Deez Part, rez */

#include "cmdo.r"

resource 'cmdo' (323, "OrphanFiles") {
{    /* array dialogs: 1 elements */
/* [1] */
175,
"Disassociate a file from a project by de"
"leting the ckid of the file.The content "
"of the project is unaffected.",
{    /* array itemArray: 1 elements */
/* [1] */
NotDependent {

},
MultiFiles {
"Files to OrphanI",
"This button brings up a dialog allowing "
"selection of files to orphan.",
{30, 161, 50, 321},
"Files to orphan:",
"",
MultiInputFiles {
{    /* array MultiTypesArray: 1 elements */
/* [1] */
text
},
FilterTypes,
"Only TEXT files",
"All Files"
}
},
NotDependent { },
CheckOption {
NotSet, {20,10,36,235}, "Progress Info","-p",
"Prints progress information to StdOut",
}
}
}
};

==============================================================================
| The Insidious Uncle BoBo                                                   |
------------------------------------------------------------------------------
|  "As I see it, my friends can access my private                            |
|   members in a public class..."                                            |
==============================================================================
| Eric Bowman ->                                                             |
| ShitNet:         bowman@reed.bitnet                                        |
| FarFromFreeNet:  (503)234-7158  (Like I'll Really Answer)                  |
| Disclaimer: "If my employer ever found out my opinions, well..."           |
/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=
"Tabs are for wienies"