## gok-branchback-stack gok-branchback-stack |

## Synopsis

    #define             MAX_BRANCHBACKSTACK
    void                gok_branchbackstack_initialize      (void);
    void                gok_branchbackstack_push            (GokKeyboard *pKeyboard);
    GokKeyboard*        gok_branchbackstack_pop             (void);
    gboolean            gok_branchbackstack_is_empty        (void);

## Description

## Details

### MAX_BRANCHBACKSTACK

    #define MAX_BRANCHBACKSTACK 50

### gok_branchbackstack_initialize ()

    void                gok_branchbackstack_initialize      (void);

This must be called prior to using the stack.

Returns : | void

### gok_branchbackstack_push ()

    void                gok_branchbackstack_push            (GokKeyboard *pKeyboard);

Stores a keyboard on the stack.

`pKeyboard` : |

### gok_branchbackstack_pop ()

    GokKeyboard*        gok_branchbackstack_pop             (void);

Remove the last keyboard in the stack and return it.

Returns : | A pointer to the keyboard popped off the stack, NULL if the stack is empty.

### gok_branchbackstack_is_empty ()

    gboolean            gok_branchbackstack_is_empty        (void);

Checks if the branch back stack is empty.

Returns : | TRUE if the stack is empty (you can't branch back). FALSE if there is at least one keyboard in the stack (you can branch back).