There are many issues to address, including:
- The 32 bit version doesn’t report when a site’s too big for it. Larger sites should use the 64 bit version.
- The code needs to be portable. It’s not there yet, for basically rather silly reasons, but it is written to be portable so it shouldn’t take too long to get that sorted.
- Meanwhile, the included makefile is a demonstration makefile only, and needs replacing with a CMake configuration file, or something else portable.
- The code is rushed (I wrote it in a long weekend), and thus certainly has idiotic bugs.
- Because the code was rushed, it doesn’t have appropriate exception handing, so it’s not at all robust (although it’s slowly getting better).
- Connected with that, the error reporting is in a pretty awful state.
- I have great admiration for coding standards, such as suggested in Sutter’s works, and need to go back through the code and get that right.
- The code is single threaded, so is much slower that it should be. This is not a simple fix, but does need consideration.
- I’m not into pointless comments (e.g. int x = 1; // set x to 1; ) or comments that risk leading to contradictory code, but this code is entirely uncommented. That needs correcting.
- I’ve used a compressed layout that annoys the heck out of Visual Studio. I use one screen, and I want to see my software on that one screen, rather than covering an inconvenient wall with displays to show off all the traditionally required pointless blank lines. In other words, I strongly dislike standard code layout.
- The program does not check all HTML elements with URLs, only the most common ones. I have to go study the byzantium HTML spec to apply all I find there (more added!). I shall refrain from repeating clichés about kitchen sinks, but I get the sense HTML needs replacing by something with a minimalist touch.
- External link checking works on Windows, but throws a wobbly on macos (it uses too many resources too quickly).
- There’s no tag checking in place yet (e.g. URLs with #xxx at the end). It probably ought to be added.
- A switch to specify files to be ignored would be useful.
- swlc is case sensitive when checking internal links, which is incorrect. It must be said I regard breaking case in URLs as naughty, even though it’s not actually wrong. I ought to make the URL checking case insensitive.