Blinking LED on MSP430 with three conditions
I've done projects that require discrimination of long and short button presses. It's a classification problem, and in general not entirely trivial to detect unambiguously. This is, in particular, true in the presence of debounce requirements (as are present with virtually all buttons). 

My recommendation would be to devote a timer interrupt to sampling the button at regular intervals (say 50ms) and stores these samples in a circular buffer (of say 25 samples, representing 1250ms worth of data). Then in your main loop, analyze the contents of that buffer to determine whether it contains a long press, a short press, or neither - and respond accordingly. You can apply whatever logic you want to filter that data as well, e.g. to apply a software debounce. If you detect an event, you should probably clear the buffer, or maybe wait for the event condition to clear the buffer before emitting another event.

I'm not going to write the code for you, but that's one approach that I've actually used.

If you have to do it purely in hardware, my answer is obviously not applicable. It's just how I would do it for flexibility's sake.