aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--history.c16
-rw-r--r--history.h3
-rw-r--r--main.c33
4 files changed, 47 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 07565b4..5468575 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2002-01-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
+
+ * [w3m-dev 02914]
+ * history.c (copyHist): added
+ * history.h (copyHist): ditto
+ * main.c (goURL0): copyHist(URLHist), push current and anchor URLs
+ default set by DefaultURLString
+
2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 02913] wrong table width calculation
@@ -2308,4 +2316,4 @@
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.264 2002/01/25 17:25:44 ukai Exp $
+$Id: ChangeLog,v 1.265 2002/01/26 17:24:01 ukai Exp $
diff --git a/history.c b/history.c
index 44f3d75..2ecc731 100644
--- a/history.c
+++ b/history.c
@@ -1,4 +1,4 @@
-/* $Id: history.c,v 1.6 2001/12/10 17:02:44 ukai Exp $ */
+/* $Id: history.c,v 1.7 2002/01/26 17:24:01 ukai Exp $ */
#include "fm.h"
#ifdef USE_HISTORY
@@ -82,6 +82,20 @@ newHist()
return hist;
}
+Hist *
+copyHist(Hist *hist)
+{
+ Hist *new;
+ HistItem *item;
+
+ if (hist == NULL)
+ return NULL;
+ new = newHist();
+ for (item = hist->list->first; item; item = item->next)
+ pushHist(new, (char *)item->ptr);
+ return new;
+}
+
HistItem *
unshiftHist(Hist *hist, char *ptr)
{
diff --git a/history.h b/history.h
index 7cc648f..4c41099 100644
--- a/history.h
+++ b/history.h
@@ -1,4 +1,4 @@
-/* $Id: history.h,v 1.4 2001/12/10 17:02:44 ukai Exp $ */
+/* $Id: history.h,v 1.5 2002/01/26 17:24:01 ukai Exp $ */
#ifndef HISTORY_H
#define HISTORY_H
@@ -18,6 +18,7 @@ typedef struct {
} Hist;
extern Hist *newHist();
+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);
diff --git a/main.c b/main.c
index 1d65b15..7d1b36d 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.72 2002/01/24 17:46:50 ukai Exp $ */
+/* $Id: main.c,v 1.73 2002/01/26 17:24:01 ukai Exp $ */
#define MAINPROGRAM
#include "fm.h"
#include <signal.h>
@@ -3621,19 +3621,28 @@ goURL0(char *prompt, int relative)
url = searchKeyData();
if (url == NULL) {
- if (DefaultURLString == DEFAULT_URL_CURRENT) {
- current = baseURL(Currentbuf);
- if (current)
- url = parsedURL2Str(current)->ptr;
+ Hist *hist = copyHist(URLHist);
+ Anchor *a;
+
+ current = baseURL(Currentbuf);
+ if (current) {
+ char *c_url = parsedURL2Str(current)->ptr;
+ if (DefaultURLString == DEFAULT_URL_CURRENT)
+ url = c_url;
+ else
+ pushHist(hist, c_url);
}
- else if (DefaultURLString == DEFAULT_URL_LINK) {
- Anchor *a = retrieveCurrentAnchor(Currentbuf);
- if (a) {
- parseURL2(a->url, &p_url, baseURL(Currentbuf));
- url = parsedURL2Str(&p_url)->ptr;
- }
+ a = retrieveCurrentAnchor(Currentbuf);
+ if (a) {
+ char *a_url;
+ parseURL2(a->url, &p_url, current);
+ a_url = parsedURL2Str(&p_url)->ptr;
+ if (DefaultURLString == DEFAULT_URL_LINK)
+ url = a_url;
+ else
+ pushHist(hist, a_url);
}
- url = inputLineHist(prompt, url, IN_URL, URLHist);
+ url = inputLineHist(prompt, url, IN_URL, hist);
if (url != NULL)
SKIP_BLANKS(url);
}