When and how was the double-dash (–) introduced as an end of options delimiter in Unix/Linux?

I don’t think the shell/utilities in historical Unix nor in something as “recent” as 4.4BSD supported using a double-dash(or two consecutive hyphens) as an end of options delimiter. With FreeBSD, you can see for instance a note introduced in the rm manpages with the 2.2.1 release(1997). But this is just the documentation for one command.

How do I test to see if an application exists in $PATH?

I’m trying to write all of my sh startup/env scripts to work with as much DRY and as much: “works on every *nix I clone it to”, as possible. This means making sure that if I try to run code that’s not there, that the code fails gracefully. To that end I need to be able to test if programs exist. I know how to test if a file exists, but I’m not sure how to test to see if an application is executable within the path. I’d rather use the $PATH, as some of these need to work on arch, ubuntu, and centos. Some might be installed in my homedir, on systems where I don’t have root, others might not be installed, and others yet my be installed in system paths.