Press and hold a button for 2 seconds and it flashes

the code i posted was untested (i was traveling).
i'm home and when i tested it, it turned the led on and off, but it did not blink.
i corrected the problem and now it turns the led on, off and blinks if held for more than 2 secs but less than 3 (count mississippi)

#undef MyHW
#ifdef MyHW
int pinBut = A1;
int pinLed = 13;

#else
int pinBut =2;
int pinLed = 4;
#endif

byte butLst;

unsigned long msec;
unsigned long time;
unsigned long ledTime;

// -----------------------------------------------------------------------------
#define BlinkPeriod 250
enum { Off = HIGH, On = LOW };

enum { LedOff, LedOn, LedBlink };
int ledState = LedOff;

void
led (void)
{
    switch (ledState) {
    case LedBlink:
        if ( (msec - ledTime) > BlinkPeriod)  {
            ledTime = msec;
            digitalWrite (pinLed, ! digitalRead (pinLed));
        }
        break;

    case LedOn:
        digitalWrite (pinLed, On);
        break;

    case LedOff:
    default:
        digitalWrite (pinLed, Off);
        break;
    }
    
}

// -----------------------------------------------------------------------------
void loop () {
    msec = millis ();

    led ();

    byte but = digitalRead (pinBut);
    if (butLst != but)  {
        butLst = but;

        if (LOW == but)     // pressed
            time = msec;

        else  {             // button released
            if (time)  {    // 3000 not exceeded
                if ( (msec - time) > 2000)  {
                    ledState = LedBlink;
                    Serial.println ("led blink");
                }
                else  {
                    ledState = LedOn;
                    Serial.println ("led On");
                }
                time = 0;
            }
        }
    }

    // turn LED off as soon as time > 3000 w/o waiting for button release
    if (time && (msec - time) > 3000)  {
        time = 0;
        ledState = LedOff;
        Serial.println ("led Off");
    }
}

// -----------------------------------------------------------------------------
void setup (){
    Serial.begin (9600);
    pinMode (pinBut, INPUT_PULLUP);
    butLst = digitalRead (pinBut);
    pinMode (pinLed, OUTPUT);
}