qemacs-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemacs-commit] qemacs dired.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs dired.c
Date: Tue, 28 May 2019 00:27:34 -0400 (EDT)

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        19/05/28 00:27:34

Modified files:
        .              : dired.c 

Log message:
        disable preview mode on enter from dired pane

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/dired.c?cvsroot=qemacs&r1=1.81&r2=1.82

Patches:
Index: dired.c
===================================================================
RCS file: /sources/qemacs/qemacs/dired.c,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -b -r1.81 -r1.82
--- dired.c     10 May 2017 15:46:16 -0000      1.81
+++ dired.c     28 May 2019 04:27:34 -0000      1.82
@@ -2,7 +2,7 @@
  * Directory editor mode for QEmacs.
  *
  * Copyright (c) 2001-2002 Fabrice Bellard.
- * Copyright (c) 2002-2017 Charlie Gordon.
+ * Copyright (c) 2002-2019 Charlie Gordon.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -87,6 +87,7 @@
 
 /* opaque structure for sorting DiredState.items StringArray */
 struct DiredItem {
+    char    *fullname;
     mode_t  mode;   /* inode protection mode */
     nlink_t nlink;  /* number of hard links to the file */
     uid_t   uid;    /* user-id of owner */
@@ -149,6 +150,8 @@
         int i;
 
         for (i = 0; i < ds->items.nb_items; i++) {
+            DiredItem *dip = ds->items.items[i]->opaque;
+            qe_free(&dip->fullname);
             qe_free(&ds->items.items[i]->opaque);
         }
 
@@ -985,6 +988,7 @@
             int plen = strlen(p);
 
             dip = qe_malloc_hack(DiredItem, plen);
+            dip->fullname = qe_strdup(filename);
             dip->mode = st.st_mode;
             dip->nlink = st.st_nlink;
             dip->uid = st.st_uid;
@@ -1007,7 +1011,7 @@
 }
 
 /* select current item */
-static void dired_select(EditState *s)
+static void dired_select(EditState *s, int exit_preview)
 {
     char filename[MAX_FILENAME_SIZE];
     DiredState *ds;
@@ -1037,6 +1041,10 @@
         if (e) {
 #if 1
             s->qe_state->active_window = e;
+            if (exit_preview) {
+                /* XXX: should keep BF_PREVIEW flag and set pager-mode */
+                e->b->flags &= ~BF_PREVIEW;
+            }
 #else
             /* delete dired window */
             do_delete_window(s, 1);
@@ -1302,8 +1310,10 @@
 
 /* specific dired commands */
 static CmdDef dired_commands[] = {
-    CMD0( KEY_RET, KEY_RIGHT,
-          "dired-select", dired_select)
+    CMD1( KEY_RET, KEY_NONE,
+          "dired-enter", dired_select, 1)
+    CMD1( KEY_RIGHT, KEY_NONE,
+          "dired-right", dired_select, 0)
     CMD0( KEY_TAB, KEY_NONE,
           "dired-tab", do_other_window)
     /* dired-abort should restore previous buffer in right-window */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]