aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2020-09-01 10:35:53 +0000
committerGitHub <noreply@github.com>2020-09-01 10:35:53 +0000
commit2fb3ed9defd5a435b3257a8dda308028505c7731 (patch)
treea424bfa6c09522eac476fa7ea71bdfeb365a51c7
parentUpdate ChangeLog (diff)
parentRemoved an unnecessary variable declaration (diff)
downloadw3m-2fb3ed9defd5a435b3257a8dda308028505c7731.tar.gz
w3m-2fb3ed9defd5a435b3257a8dda308028505c7731.zip
Merge pull request #148 from bptato/master
New commands for moving cursor on screen
-rw-r--r--doc-de/README.func3
-rw-r--r--doc/README.func3
-rw-r--r--main.c50
-rw-r--r--proto.h5
-rw-r--r--scripts/w3mhelp.cgi.in2
5 files changed, 53 insertions, 10 deletions
diff --git a/doc-de/README.func b/doc-de/README.func
index 036ae9d..cb175db 100644
--- a/doc-de/README.func
+++ b/doc-de/README.func
@@ -12,6 +12,9 @@ CLOSE_TAB Schließe Reiter
CLOSE_TAB_MOUSE Schließe Reiter bei Mauszeiger
COMMAND Rufe w3m Funktion(en) auf
COOKIE Cookie-Liste ansehen
+CURSOR_TOP Cursor auf die höchste Zeile bewegen
+CURSOR_MIDDLE Cursor auf die mittlere Zeile bewegen
+CURSOR_BOTTOM Cursor auf die unterste Zeile bewegen
DEFAULT_CHARSET Ändere die Voreinstellung für die Zeichenkodierung
DEFINE_KEY Definiere eine Verbindung zwischen einer Tastenkombination und einem Kommando
DELETE_PREVBUF Lösche vorherigen Puffer (hauptsächlich für lokale CGI-Skripte)
diff --git a/doc/README.func b/doc/README.func
index 0430855..3bdec74 100644
--- a/doc/README.func
+++ b/doc/README.func
@@ -12,6 +12,9 @@ CLOSE_TAB Close tab
CLOSE_TAB_MOUSE Close tab at mouse pointer
COMMAND Invoke w3m function(s)
COOKIE View cookie list
+CURSOR_TOP Move cursor to the top line on the screen
+CURSOR_MIDDLE Move cursor to the middle line on the screen
+CURSOR_BOTTOM Move cursor to the bottom line on the screen
DEFAULT_CHARSET Change the default character encoding
DEFINE_KEY Define a binding between a key stroke combination and a command
DELETE_PREVBUF Delete previous buffer (mainly for local CGI-scripts)
diff --git a/main.c b/main.c
index 2fcc60c..2d08762 100644
--- a/main.c
+++ b/main.c
@@ -871,7 +871,7 @@ main(int argc, char **argv, char **envp)
#ifdef USE_M17N
wtf_init(DocumentCharset, DisplayCharset);
/* if (w3m_dump)
- * WcOption.pre_conv = WC_TRUE;
+ * WcOption.pre_conv = WC_TRUE;
*/
#endif
@@ -882,7 +882,7 @@ main(int argc, char **argv, char **envp)
char *image_url = conv_from_system(getimage_args[0]);
char *base_url = conv_from_system(getimage_args[1]);
ParsedURL base_pu;
-
+
parseURL2(base_url, &base_pu, NULL);
image_source = getimage_args[2];
newbuf = loadGeneralFile(image_url, &base_pu, NULL, 0, NULL);
@@ -978,7 +978,7 @@ main(int argc, char **argv, char **envp)
SearchHeader = search_header;
DefaultType = default_type;
char *url;
-
+
url = load_argv[i];
if (getURLScheme(&url) == SCM_MISSING && !ArgvIsURL)
url = file_to_url(load_argv[i]);
@@ -1579,7 +1579,7 @@ SigPipe(SIGNAL_ARG)
}
#endif
-/*
+/*
* Command functions: These functions are called with a keystroke.
*/
@@ -2354,9 +2354,9 @@ DEFUN(movR1, MOVE_RIGHT1, "Cursor right. With edge touched, slide")
}
/* movLW, movRW */
-/*
+/*
* From: Takashi Nishimoto <g96p0935@mse.waseda.ac.jp> Date: Mon, 14 Jun
- * 1999 09:29:56 +0900
+ * 1999 09:29:56 +0900
*/
#if defined(USE_M17N) && defined(USE_UNICODE)
#define nextChar(s, l) do { (s)++; } while ((s) < (l)->len && (l)->propBuf[s] & PC_WCHAR2)
@@ -2373,7 +2373,7 @@ is_wordchar(wc_uint32 c)
{
return wc_is_ucs_alnum(c);
}
-#else
+#else
#define nextChar(s, l) (s)++
#define prevChar(s, l) (s)--
#define getChar(p) ((int)*(p))
@@ -3057,7 +3057,7 @@ handleMailto(char *url)
return 1;
}
#endif
-
+
/* invoke external mailer */
if (MailtoOptions == MAILTO_OPTIONS_USE_MAILTO_URL) {
to = Strnew_charp(html_unquote(url));
@@ -6893,3 +6893,37 @@ DEFUN(redoPos, REDO, "Cancel the last undo")
for (i = 0; i < PREC_NUM && b->next; i++, b = b->next) ;
resetPos(b);
}
+
+DEFUN(cursorTop, CURSOR_TOP, "Move cursor to the top of the screen")
+{
+ if (Currentbuf->firstLine == NULL)
+ return;
+ Currentbuf->currentLine = lineSkip(Currentbuf, Currentbuf->topLine,
+ 0, FALSE);
+ arrangeLine(Currentbuf);
+ displayBuffer(Currentbuf, B_NORMAL);
+}
+
+DEFUN(cursorMiddle, CURSOR_MIDDLE, "Move cursor to the middle of the screen")
+{
+ int offsety;
+ if (Currentbuf->firstLine == NULL)
+ return;
+ offsety = (Currentbuf->LINES - 1) / 2;
+ Currentbuf->currentLine = currentLineSkip(Currentbuf, Currentbuf->topLine,
+ offsety, FALSE);
+ arrangeLine(Currentbuf);
+ displayBuffer(Currentbuf, B_NORMAL);
+}
+
+DEFUN(cursorBottom, CURSOR_BOTTOM, "Move cursor to the bottom of the screen")
+{
+ int offsety;
+ if (Currentbuf->firstLine == NULL)
+ return;
+ offsety = Currentbuf->LINES - 1;
+ Currentbuf->currentLine = currentLineSkip(Currentbuf, Currentbuf->topLine,
+ offsety, FALSE);
+ arrangeLine(Currentbuf);
+ displayBuffer(Currentbuf, B_NORMAL);
+}
diff --git a/proto.h b/proto.h
index d513527..b20538e 100644
--- a/proto.h
+++ b/proto.h
@@ -1,5 +1,5 @@
/* $Id: proto.h,v 1.104 2010/07/25 09:55:05 htrb Exp $ */
-/*
+/*
* This file was automatically generated by version 1.7 of cextract.
* Manual editing not recommended.
*
@@ -156,6 +156,9 @@ extern Anchor *list_menu(Buffer *buf);
#endif
extern void undoPos(void);
extern void redoPos(void);
+extern void cursorTop(void);
+extern void cursorMiddle(void);
+extern void cursorBottom(void);
extern int currentLn(Buffer *buf);
extern void tmpClearBuffer(Buffer *buf);
diff --git a/scripts/w3mhelp.cgi.in b/scripts/w3mhelp.cgi.in
index 11f9b68..55358f8 100644
--- a/scripts/w3mhelp.cgi.in
+++ b/scripts/w3mhelp.cgi.in
@@ -140,7 +140,7 @@ print "<P><A HREF=\"$keymap\">$head</A>\n";
goLine goLineF goLineL movRW movLW
topA lastA nextA prevA movlistMn
nextR nextL nextD nextU nextRD nextLU
- undoPos redoPos"));
+ undoPos redoPos cursorTop cursorMiddle cursorBottom"));
&show_keymap('Hyperlink Operations',
split(" ", "followA tabA svA followI svI submitForm