Author Topic: 9.2.3  (Read 65604 times)

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #120 on: November 14, 2018, 01:05:13 AM »
I'm writing a plugin for REALbasic to use my search and replace classes. Single search and single replace work already. Then I'll write the most cunning search and replace program for classic Mac OS ever. This is important because the new Finder will be able to do similar stuff.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #121 on: December 28, 2018, 08:02:52 AM »
These programs are being replaced with something better:
  • Count virtual trash
  • Hide virtual trash
  • Move to virtual trash
  • Post Speed Disk
  • Pre Speed Disk
  • Show virtual trash
  • Update backup date

The Pseudo delete extension is like TechTool Trash Cache, but it preserves the directory structure and it never renames an item.

Pseudo undelete is used to get the pseudo deleted files and folders back, with the directory structure just like you deleted them. During recovery the files are copied, not moved. It's the first program of its kind, because it can write a detailed report about every deleted file.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #122 on: January 09, 2019, 07:17:18 AM »
The following programs have been replaced with something better:
- Lock volumes,
- No empty icon files,
- No invisible files,
- Search invisibles,
- Unlock volumes.

The following programs are discontinued:
- Delete
- Delete old files
- Empty trash
because they delete files asynchronously and this bypasses the "Pseudo delete" extension.

The remaining set of programs looks now more logic, except if I have "Big join", then there should be also "Big split".

I wrote "Change volume dates". This solves a problem with the alias manager on computers with multiple volumes which were formatted by Drive Setup.

I wrote "Save a volume as a file". The saved file can be mounted with write access by Toast Titanium. It can be used to recover your files on a different computer. On XP I used UltraISO and MacDrive to mount the volume with read access and QPhotoRec to recover the files.

I wrote easy to use classes for PowerPlant programs with Unicode and HTML rendering support.

I improved the REALbasic programs and the documentation. The interface of several programs has changed. Dictionary 98 is being replaced with a C++ program.

If you write in REALbasic, then pay attention to Item(), Child() and GetFolderItem(), because they resolve aliases. It's better to use TrueItem(), TrueChild and GetTrueFolderItem().

All REALbasic programs are now in System, Monaco and Geneva.

All documentation is now in Chicago, Monaco and Geneva.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #123 on: January 22, 2019, 06:50:25 AM »
See the latest progress in the attachment. Now I'm improving "Pseudo undelete". Then I have to check the headers of all my code. Then all my "other" work is finished. Then OS 9.2.3 and the new Finder are all I have to do.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #124 on: February 19, 2019, 01:14:34 AM »
I changed "OS 9.2.3 menu" into "App launcher". Every menu is defined in a separate resource file. You can easily define your own menus.

Then I separated old code from new code.

Example of old code:

Code: [Select]
class FBMM
{
public:
    // Global functions.
    static SInt32 Get_size();

    // Member data.
private:
    UInt8 m_data[28];

    // Construction.
public:
    FBMM(UInt32 blockSize,
         UInt32 cBlockInFBChunkDiv16,
         bool deleteUnusedChunks);

    // Destruction.
    ~FBMM();

    // Forbidden.
private:
    FBMM();
    FBMM(const FBMM &original);
    void operator=(const FBMM &original);

    // Manipulators.
public:
    void *New();
    void Delete(void *ptr);
};

Example of new code:

Code: [Select]
class FBMM;
    typedef FBMM* p_FBMM;
        typedef p_FBMM* pp_FBMM;
        typedef const pp_FBMM cpp_FBMM;
    typedef const p_FBMM cp_FBMM;
        typedef cp_FBMM* pcp_FBMM;
        typedef const pcp_FBMM cpcp_FBMM;
typedef const FBMM c_FBMM;
    typedef c_FBMM* pc_FBMM;
        typedef pc_FBMM* ppc_FBMM;
        typedef const ppc_FBMM cppc_FBMM;
    typedef const pc_FBMM cpc_FBMM;
        typedef cpc_FBMM* pcpc_FBMM;
        typedef const pcpc_FBMM cpcpc_FBMM;
typedef FBMM& r_FBMM;
typedef p_FBMM& rp_FBMM;
typedef pp_FBMM& rpp_FBMM;
typedef cpp_FBMM& rcpp_FBMM;
typedef cp_FBMM& rcp_FBMM;
typedef pcp_FBMM& rpcp_FBMM;
typedef cpcp_FBMM& rcpcp_FBMM;
typedef c_FBMM& rc_FBMM;
typedef pc_FBMM& rpc_FBMM;
typedef ppc_FBMM& rppc_FBMM;
typedef cppc_FBMM& rcppc_FBMM;
typedef cpc_FBMM& rcpc_FBMM;
typedef pcpc_FBMM& rpcpc_FBMM;
typedef cpcpc_FBMM& rcpcpc_FBMM;

class FBMM
{
public:
    // Globale functies.
    static z4 Get_size();

    // Eigen data.
private:
    c_n4 i_blokGrootte;
    c_n4 i_aBlokInChunk;
    c_bool i_deleteUnusedChunks;
    p_FBChunk m_eersteChunk;
    p_FBChunk m_laatsteChunk;
    p_FB m_eersteVrij;
    p_FB m_laatsteVrij;

    // Constructie.
public:
    FBMM(n4 blockSize,
         n4 cBlockInFBChunkDiv16,
         bool deleteUnusedChunks);

    // Destructie.
    ~FBMM();

    // Verboden.
private:
    FBMM();
    FBMM(rc_FBMM origineel);
    void operator=(rc_FBMM origineel);

    // Manipulators.
public:
    p_void New();
    void Delete(p_void ptr);
};

I'm changing the error handling in all my programs. You get now feedback for every error, except for PowerPlant errors.

Example:

Code: [Select]
Bool MenuLezer::Lees(rc_FSSpec spec)
{
    z2 refNum;
    OSErr err=Resources::OSERR_FSpOpenResFile(spec,
                                              permission_wr,
                                              refNum);
    if (err)
        {
        Return_false_err("\pFSpOpenResFile fails",err);
        }

    c_Bool ok=Lees();

    err=Resources::OSERR_CloseResFile(refNum);
    if (err)
        {
        Return_false_err("\pCloseResFile fails",err);
        }

    if (!ok)
        {
        Return_false("\pRead fails.");
        }

    return True;
}

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #125 on: February 27, 2019, 05:23:53 AM »
Just a few screenshots so that you can follow. Before 2008 I worked on my own framework, but I found the part about the GUI too difficult and I had to stop. Then I continued writing PP programs. In 2011 the tools were finished. But I was sorry that I had used PP. I tried to replace PP with something similar by removing the exceptions from the PP classes and improving those classes and some were really unrecognizable. This was too difficult and I had to stop. Then I rewrote the general functionality of the tools, which you find in the ToolsLib, with my new notation that uses many typedefs (this includes special headers for the toolbox). These classes are much better. A part of this has been linked as static PPC libraries, and these get special simplified headers in Apple's notation. I use these libraries in the SDK projects, but also in other programs that use Apple's notation, especially PP programs, but also extensions. Now the plan is to rewrite all the high level tools with low level functions, and to stuff them as "Low level tools" in OS 9.3. The static PPC libraries can then be linked as shared libraries. This will simplify the whole thing and make it easier to maintain. I can also make it partially open source and then it's a good thing that I used PowerPlant. The CW Pro 6.3 with corrected MSL (because of GetCaretTime instead of 0) will be part of the SDK. I'll also adapt it to make it work like Finder and Sherlock 2, which ignore visible files in invisible folders. Most of the tools will use plugins that you can replace with your own to extend the functionality. There will be example plugins in the SDK. This means that the name OS 9.2.3 disappears, the old version is abandonware and this discussion may be closed.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #126 on: March 01, 2019, 05:53:14 AM »

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #127 on: March 11, 2019, 08:22:39 AM »
I upgraded to CW Pro 6.2.
There were a few problems:
- shift left shifts one more than shift right,
- Grammarian now requires that there's no return in the middle of a sentence,
- Grammarian crashes when called from the CW IDE.
Grammarian still works correctly with REALbasic programs. I'll paste my text in a REALbasic program and then use Grammarian.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #128 on: March 21, 2019, 06:51:17 AM »
This discussion is finished. Go to 9.3

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #129 on: March 08, 2021, 07:36:58 AM »
I upgraded to CW Pro 6.2.
There were a few problems:
- shift left shifts one more than shift right,
This happens only if you type spaces instead of tabs. I found a solution: define this macro: 4 times tab shift tab.

Offline OS923

  • Platinum Member
  • *****
  • Posts: 888
Re: 9.2.3
« Reply #130 on: June 08, 2021, 11:35:51 AM »
notice pattern of OS923s Domains/URLs going ~poof~
Someone revived one of my websites:
https://gangstalkingworld.neocities.org/
At the bottom there are icons that go to 2 more of my websites.