Lantern with SOS LED

I wrote #7 above away from the big rig and also in a food coma.

This is a modification to the code in the post I linked, which should be obvious if you are employing it, to @johnwasser's idea:

bool myDelay(unsigned long milliseconds)
{
  unsigned long startTime = millis();

  while (millis() - startTime <= milliseconds) {
    if (digitalRead(buttonPin))
      return true;
  }

  return false;
}

and as he goes on to say

 Then, in place of 'delay(x)' use:
 
    if (myDelay(x)) return;

This will give the strobe_sos() the ability to return almost immediately the button is
detected.

I note that @sionaggutraidh #8 comments about the timing. It doesn't look, at a glance, to be standard Morse code durations for dots, dashes &c.

Is SOS timed out differently to regular text besides being one symbol (no inter-character gap)?

a7