From 534d3bdcb2796ab1575a15b2cc9d61a096b3aa3a Mon Sep 17 00:00:00 2001 From: krustur Date: Sun, 16 Dec 2018 22:06:44 +0100 Subject: [PATCH] Run from Workbench fixes --- IconSnap.info | Bin 2737 -> 2737 bytes src/main.c | 76 ++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 67 insertions(+), 9 deletions(-) diff --git a/IconSnap.info b/IconSnap.info index df66dd6ec1f3da0d8993dbc4078144d9f03fff69..c57ab82370277913a2696b840ecc095c7cd5d97f 100644 GIT binary patch delta 148 zcmdlex>0n3xVnI&goEIb1O{}#$b8L#sds{dV7CDS1LL!acG4_tkuR7hFJv~@*vrAh z!j{qi=4?L6B*4VQr4i;D0n3xVqq$9S(w94H(b?Bl9%}!KDuzgc&Rt7#L?vw3B9GEC^tpypY*oV=o62 z3zLimn6vpLlK@jVN0@7nlYg))$P^)Gf4^XVA6FMwAIC^rLjwb_;oJd^Esm_ArgList[i].wa_Name); @@ -189,8 +197,47 @@ int main(int argc, char **argv) { BPTR oldDir = CurrentDir(wbStartup->sm_ArgList[i].wa_Lock); - Verbose("AlignFile %s\n", wbStartup->sm_ArgList[i].wa_Name); - AlignFile(wbStartup->sm_ArgList[i].wa_Name); + if (wbStartup->sm_ArgList[i].wa_Name[0] != 0) + { + wbFixCount = AlignFile(wbStartup->sm_ArgList[i].wa_Name); + } + else + { + NameFromLock(wbStartup->sm_ArgList[i].wa_Lock, MainParamFolder, PATH_MAX - 2); + if (StringEndsWith(MainParamFolder, ":")) + { + + // size_t t = strlen("kurt"); + // Information("t: %li\n", t); + + // size_t mainParamFolderLen = strlen(MainParamFolder); + size_t mainParamFolderLen = strlen(MainParamFolder); + size_t fullLen = mainParamFolderLen + 4; + if (fullLen > PATH_MAX - 2) + { + Information("full path to %s is too long - skipping!\n", MainParamFolder); + } + else + { + + strcpy(MainParamFolderFixed, MainParamFolder); + strcat(MainParamFolderFixed, "disk"); + // StringToLower(AlignDirFullPath, fullLen, fullLen - 4); + // if (StringEndsWith(AlignDirFullPath, ".info")) + // { + // // Verbose("AlignDirFullPath: %s\n", AlignDirFullPath); + wbFixCount += AlignFile(MainParamFolderFixed); + // } + } + } + else + { + wbFixCount += AlignFile(MainParamFolder); + } + // AlignFile("dh0:disk"); + } + // Verbose("Folder %s\n", MainParamFolder); + // Verbose("AlignFile %s\n", wbStartup->sm_ArgList[i].wa_Name); // struct DiskObject *dobj; // dobj = GetDiskObjectNew(wbStartup->sm_ArgList[i].wa_Name); // if (dobj != NULL) @@ -207,7 +254,10 @@ int main(int argc, char **argv) } // Verbose(""); } - + if (wbFixCount == 0) + { + Information("No icons found\n"); + } exit(RETURN_OK); } @@ -317,6 +367,14 @@ int main(int argc, char **argv) void CleanExit() { + if (MainParamFolder != NULL) + { + FreeVec(MainParamFolder); + } + if (MainParamFolderFixed != NULL) + { + FreeVec(MainParamFolderFixed); + } if (AlignCurrentWorkingDirTempPath != NULL) { FreeVec(AlignCurrentWorkingDirTempPath); @@ -490,8 +548,8 @@ unsigned int AlignFile(unsigned char *diskObjectName) // Verbose(" Width: %hi\n", diskObject->); // Verbose(" SpecialInfo: %p\n", diskObject->do_Gadget.SpecialInfo); // Verbose(" UserData: %p\n", diskObject->do_Gadget.UserData); - Verbose(" Width: %hi\n", diskObject->do_Gadget.Width); - Verbose(" Height: %hi\n", diskObject->do_Gadget.Height); + // Verbose(" Width: %hi\n", diskObject->do_Gadget.Width); + // Verbose(" Height: %hi\n", diskObject->do_Gadget.Height); // Verbose(" GadgetRender: %p\n", diskObject->do_Gadget.GadgetRender); // Verbose(" SelectRender: %p\n", diskObject->do_Gadget.SelectRender); // struct Image *gadgetImage = (struct Image *)(diskObject->do_Gadget.GadgetRender); @@ -507,8 +565,8 @@ unsigned int AlignFile(unsigned char *diskObjectName) // Verbose(" Flags: %hi\n", diskObject->U); // Verbose(" Flags: %hi\n", diskObject->do_Gadget.Flags); // Verbose(" GadgetType: %hi\n", diskObject->do_Gadget.GadgetType); - // Verbose(" LeftEdge: %hi\n", diskObject->do_Gadget.LeftEdge); - // Verbose(" TopEdge: %hi\n", diskObject->do_Gadget.TopEdge); + //Verbose(" LeftEdge: %hi\n", diskObject->do_Gadget.LeftEdge); + //Verbose(" TopEdge: %hi\n", diskObject->do_Gadget.TopEdge); // unsigned char *toolType = NULL; // toolType = FindToolType(diskObject->do_ToolTypes, "IM1"); // if (toolType)