[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs clang.c dired.c qe.c qe.h qeconfig.h she...
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs clang.c dired.c qe.c qe.h qeconfig.h she... |
Date: |
Mon, 10 Aug 2015 19:44:20 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 15/08/10 19:44:20
Modified files:
. : clang.c dired.c qe.c qe.h qeconfig.h shell.c
Log message:
dired: improve preview-mode
- pass bf_flags for buffer creation from do_find_file() ...
- do not set BF_PREVIEW flag for existing buffers from dired
- exit preview-mode with C-g and RET
- SPC and BSP move by page in preview-mode
- add Preview mode-line indicator
- add preview-mode() command
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.93&r2=1.94
http://cvs.savannah.gnu.org/viewcvs/qemacs/dired.c?cvsroot=qemacs&r1=1.53&r2=1.54
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.191&r2=1.192
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.189&r2=1.190
http://cvs.savannah.gnu.org/viewcvs/qemacs/qeconfig.h?cvsroot=qemacs&r1=1.49&r2=1.50
http://cvs.savannah.gnu.org/viewcvs/qemacs/shell.c?cvsroot=qemacs&r1=1.95&r2=1.96
Patches:
Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -b -r1.93 -r1.94
--- clang.c 10 Aug 2015 18:29:49 -0000 1.93
+++ clang.c 10 Aug 2015 19:44:19 -0000 1.94
@@ -1390,8 +1390,11 @@
static void do_c_electric(EditState *s, int key)
{
int offset = s->offset;
+ int was_preview = s->b->flags & BF_PREVIEW;
do_char(s, key, 1);
+ if (was_preview)
+ return;
/* reindent line at original point */
if (s->mode->indent_func)
(s->mode->indent_func)(s, eb_goto_bol(s->b, offset));
@@ -1400,8 +1403,11 @@
static void do_c_return(EditState *s)
{
int offset = s->offset;
+ int was_preview = s->b->flags & BF_PREVIEW;
do_return(s, 1);
+ if (was_preview)
+ return;
/* reindent line to remove indent on blank line */
if (s->mode->indent_func) {
(s->mode->indent_func)(s, eb_goto_bol(s->b, offset));
Index: dired.c
===================================================================
RCS file: /sources/qemacs/qemacs/dired.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -b -r1.53 -r1.54
--- dired.c 24 Jun 2015 12:38:53 -0000 1.53
+++ dired.c 10 Aug 2015 19:44:19 -0000 1.54
@@ -859,7 +859,7 @@
e->b->flags &= ~BF_PREVIEW;
#endif
} else {
- do_find_file(s, filename);
+ do_find_file(s, filename, 0);
}
}
}
@@ -882,7 +882,9 @@
}
if (e) {
- do_find_file(e, filename);
+ /* If buffer is not present already, mark it as preview, so
+ * that it will get recycled if needed */
+ do_find_file(e, filename, BF_PREVIEW);
/* disable wrapping to get nicer display */
/* XXX: should wrap lines unless window is narrow */
//e->wrap = WRAP_TRUNCATE;
@@ -891,9 +893,6 @@
b = eb_new("*scratch*", BF_SAVELOG | BF_UTF8);
e->b = b;
}
- /* mark buffer as preview, so that it will get recycled if needed */
- /* CG: this is wrong if buffer existed already */
- b->flags |= BF_PREVIEW;
}
}
Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -b -r1.191 -r1.192
--- qe.c 10 Aug 2015 18:35:13 -0000 1.191
+++ qe.c 10 Aug 2015 19:44:20 -0000 1.192
@@ -813,6 +813,13 @@
{
int offset1;
+#ifndef CONFIG_TINY
+ if (s->b->flags & BF_PREVIEW) {
+ do_scroll_up_down(s, -2);
+ return;
+ }
+#endif
+
if (s->b->flags & BF_READONLY) {
/* CG: could scroll down */
return;
@@ -1336,6 +1343,17 @@
void do_char(EditState *s, int key, int argval)
{
+#ifndef CONFIG_TINY
+ if (s->b->flags & BF_PREVIEW) {
+ if (key == KEY_SPC) {
+ do_scroll_up_down(s, 2);
+ return;
+ }
+ do_preview_mode(s, 0);
+ return;
+ }
+#endif
+
if (s->b->flags & BF_READONLY)
return;
@@ -1534,10 +1552,37 @@
}
}
+#ifndef CONFIG_TINY
+void do_preview_mode(EditState *s, int set)
+{
+ const char *state = NULL;
+
+ if (set < 0 && (s->b->flags & BF_PREVIEW)) {
+ s->b->flags &= ~BF_PREVIEW;
+ state = "exited";
+ } else
+ if (set > 0 && !(s->b->flags & BF_PREVIEW)) {
+ s->b->flags |= BF_PREVIEW;
+ state = "started";
+ } else
+ if (set == 0) {
+ state = (s->b->flags & BF_PREVIEW) ? "active" : "inactive";
+ }
+ if (state)
+ put_status(s, "Preview mode %s", state);
+}
+#endif
+
void do_return(EditState *s, int move)
{
int len;
+#ifndef CONFIG_TINY
+ if (s->b->flags & BF_PREVIEW) {
+ do_preview_mode(s, -1);
+ return;
+ }
+#endif
if (s->b->flags & BF_READONLY)
return;
@@ -1560,6 +1605,12 @@
void do_break(EditState *s)
{
+#ifndef CONFIG_TINY
+ if (s->b->flags & BF_PREVIEW) {
+ do_preview_mode(s, -1);
+ return;
+ }
+#endif
/* deactivate region hilite */
s->region_style = 0;
@@ -2263,6 +2314,8 @@
buf_printf(out, " Ovwrt");
if (s->interactive)
buf_printf(out, " Interactive");
+ if (s->b->flags & BF_PREVIEW)
+ buf_printf(out, " Preview");
buf_printf(out, ")--");
}
@@ -5923,7 +5976,7 @@
/* Should take bits from enumeration instead of booleans */
static void do_load1(EditState *s, const char *filename1,
- int kill_buffer, int load_resource)
+ int kill_buffer, int load_resource, int bflags)
{
u8 buf[4097];
char filename[MAX_FILENAME_SIZE];
@@ -5974,7 +6027,7 @@
}
/* Create new buffer with unique name from filename */
- b = eb_new("", BF_SAVELOG);
+ b = eb_new("", BF_SAVELOG | bflags);
eb_set_filename(b, filename);
s->offset = 0;
@@ -6098,27 +6151,27 @@
}
#endif
-void do_find_file(EditState *s, const char *filename)
+void do_find_file(EditState *s, const char *filename, int bflags)
{
- do_load1(s, filename, 0, 0);
+ do_load1(s, filename, 0, 0, bflags);
}
-void do_find_file_other_window(EditState *s, const char *filename)
+void do_find_file_other_window(EditState *s, const char *filename, int bflags)
{
QEmacsState *qs = s->qe_state;
do_split_window(s, 0);
- do_load1(qs->active_window, filename, 0, 0);
+ do_load1(qs->active_window, filename, 0, 0, bflags);
}
-void do_find_alternate_file(EditState *s, const char *filename)
+void do_find_alternate_file(EditState *s, const char *filename, int bflags)
{
- do_load1(s, filename, 1, 0);
+ do_load1(s, filename, 1, 0, bflags);
}
-void do_load_file_from_path(EditState *s, const char *filename)
+void do_load_file_from_path(EditState *s, const char *filename, int bflags)
{
- do_load1(s, filename, 0, 1);
+ do_load1(s, filename, 0, 1, bflags);
}
void do_insert_file(EditState *s, const char *filename)
@@ -8150,7 +8203,7 @@
/* Handle +linenumber before file */
line_num = atoi(argv[i++]);
}
- do_find_file(s, argv[i]);
+ do_find_file(s, argv[i], 0);
if (line_num)
do_goto_line(qs->active_window, line_num, 1);
}
Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.189
retrieving revision 1.190
diff -u -b -r1.189 -r1.190
--- qe.h 10 Aug 2015 18:35:13 -0000 1.189
+++ qe.h 10 Aug 2015 19:44:20 -0000 1.190
@@ -1767,10 +1767,11 @@
/* loading files */
void do_exit_qemacs(EditState *s, int argval);
-void do_find_file(EditState *s, const char *filename);
-void do_load_from_path(EditState *s, const char *filename);
-void do_find_file_other_window(EditState *s, const char *filename);
+void do_find_file(EditState *s, const char *filename, int bflags);
+void do_load_from_path(EditState *s, const char *filename, int bflags);
+void do_find_file_other_window(EditState *s, const char *filename, int bflags);
void do_switch_to_buffer(EditState *s, const char *bufname);
+void do_preview_mode(EditState *s, int set);
void do_break(EditState *s);
void do_insert_file(EditState *s, const char *filename);
// should take argument?
@@ -1931,8 +1932,8 @@
void do_less_exit(EditState *s);
void do_toggle_read_only(EditState *s);
void do_not_modified(EditState *s, int argval);
-void do_find_alternate_file(EditState *s, const char *filename);
-void do_load_file_from_path(EditState *s, const char *filename);
+void do_find_alternate_file(EditState *s, const char *filename, int bflags);
+void do_load_file_from_path(EditState *s, const char *filename, int bflags);
void do_set_visited_file_name(EditState *s, const char *filename,
const char *renamefile);
int eb_search(EditBuffer *b, int offset, int dir, int flags,
Index: qeconfig.h
===================================================================
RCS file: /sources/qemacs/qemacs/qeconfig.h,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- qeconfig.h 26 May 2014 12:42:58 -0000 1.49
+++ qeconfig.h 10 Aug 2015 19:44:20 -0000 1.50
@@ -130,14 +130,14 @@
/*---------------- Buffer and file handling ----------------*/
- CMD2( KEY_CTRLX(KEY_CTRL('f')), KEY_NONE,
- "find-file", do_find_file, ESs,
+ CMD3( KEY_CTRLX(KEY_CTRL('f')), KEY_NONE,
+ "find-file", do_find_file, ESsi, 0,
"s{Find file: }[file]|file|") /* u? */
- CMD2( KEY_CTRL('x'), KEY_META('f'),
- "find-file-other-window", do_find_file_other_window, ESs,
+ CMD3( KEY_CTRL('x'), KEY_META('f'),
+ "find-file-other-window", do_find_file_other_window, ESsi, 0,
"s{Find file: }[file]|file|") /* u? */
- CMD2( KEY_CTRLX(KEY_CTRL('v')), KEY_NONE,
- "find-alternate-file", do_find_alternate_file, ESs,
+ CMD3( KEY_CTRLX(KEY_CTRL('v')), KEY_NONE,
+ "find-alternate-file", do_find_alternate_file, ESsi, 0,
"s{Find alternate file: }[file]|file|") /* u? */
CMD2( KEY_CTRLX('i'), KEY_NONE,
"insert-file", do_insert_file, ESs,
@@ -280,6 +280,8 @@
"scroll-left", do_scroll_left_right, -1)
CMD1( KEY_META(')'), KEY_NONE,
"scroll-right", do_scroll_left_right, 1)
+ CMD1( KEY_NONE, KEY_NONE,
+ "preview-mode", do_preview_mode, 1)
#endif
CMD1( KEY_CTRLX('0'), KEY_NONE,
"delete-window", do_delete_window, 0)
@@ -405,8 +407,8 @@
"ui{Fill column: }")
/* other stuff */
- CMD2( KEY_NONE, KEY_NONE,
- "load-file-from-path", do_load_file_from_path, ESs,
+ CMD3( KEY_NONE, KEY_NONE,
+ "load-file-from-path", do_load_file_from_path, ESsi, 0,
"s{Load file from path: }|file|")
CMD2( KEY_NONE, KEY_NONE,
"load-config-file", do_load_config_file, ESs,
Index: shell.c
===================================================================
RCS file: /sources/qemacs/qemacs/shell.c,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -b -r1.95 -r1.96
--- shell.c 10 Aug 2015 18:35:13 -0000 1.95
+++ shell.c 10 Aug 2015 19:44:20 -0000 1.96
@@ -1896,7 +1896,7 @@
/* CG: Should remove popups, sidepanes, helppanes... */
/* go to the error */
- do_find_file(s, filename);
+ do_find_file(s, filename, 0);
do_goto_line(qs->active_window, line_num, col_num);
put_status(s, "=> %s", error_message);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs clang.c dired.c qe.c qe.h qeconfig.h she...,
Charlie Gordon <=