typedef struct keeploc_t {
    char    *key;
    int     top_ln;
    int     crs_ln;
    struct  keeploc_t       *next;
} keeploc_t;

keeploc_t 是一個 linked list，紀錄不同的 key（字串）所對應到的游標位置。



keeploc_t *getkeep(char *s, int def_topline, int def_cursline);
  
  給定一個字串 s 當 key（不存在則新增），傳回對應的 keeploc_t。

  1.如果 def_cursline >= 0，表示要從目前的 keeplist 中找出 key s 所對應到的         keeploc_t 並傳回。
    如果該筆記錄的 curse position 不合法，則會先設為 1。沒找到則依下面的動作
    新增。

  2.如果 def_cursline < 0，代表要新增一筆記錄。
    將 def_cursline 取絕對值。然後把參數中的 def_* 填入新記錄中。
    傳回這筆新記錄。
