w3m reads the history file on startup and writes it on exit. That means if you open multiple instances of w3m, the history file will contain the history of the last instance closed. All other history changes are lost. Check if the modification time of the history file has changed before writing. If it has changed read the history file from the disk into a new history. Push the entries that are in the current history but not in the history file into the new history and write the new history to disk.
41 lines
993 B
C
41 lines
993 B
C
/* $Id: history.h,v 1.5 2002/01/26 17:24:01 ukai Exp $ */
|
|
#ifndef HISTORY_H
|
|
#define HISTORY_H
|
|
|
|
#include "textlist.h"
|
|
#include "hash.h"
|
|
|
|
#define HIST_LIST_MAX GENERAL_LIST_MAX
|
|
#define HIST_HASH_SIZE 127
|
|
|
|
typedef ListItem HistItem;
|
|
|
|
typedef GeneralList HistList;
|
|
|
|
typedef struct {
|
|
HistList *list;
|
|
HistItem *current;
|
|
Hash_sv *hash;
|
|
long long mtime;
|
|
} Hist;
|
|
|
|
extern Hist *newHist(void);
|
|
extern Hist *copyHist(Hist *hist);
|
|
extern HistItem *unshiftHist(Hist *hist, char *ptr);
|
|
extern HistItem *pushHist(Hist *hist, char *ptr);
|
|
extern HistItem *pushHashHist(Hist *hist, char *ptr);
|
|
extern HistItem *getHashHist(Hist *hist, char *ptr);
|
|
extern char *lastHist(Hist *hist);
|
|
extern char *nextHist(Hist *hist);
|
|
extern char *prevHist(Hist *hist);
|
|
|
|
#ifdef USE_HISTORY
|
|
extern int loadHistory(Hist *hist);
|
|
extern void saveHistory(Hist *hist, size_t size);
|
|
extern void ldHist(void);
|
|
#else /* not USE_HISTORY */
|
|
#define ldHist nulcmd
|
|
#endif /* not USE_HISTORY */
|
|
|
|
#endif /* HISTORY_H */
|