/[ofm]/ofm/iface.c
ViewVC logotype

Diff of /ofm/iface.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by eses, Sat Jan 11 23:42:24 2003 UTC revision 1.10 by eses, Sat Jan 18 23:34:37 2003 UTC
# Line 115  DirStruct *Bookmarks=NULL; Line 115  DirStruct *Bookmarks=NULL;
115    
116  /* ***** ***** ***** */  /* ***** ***** ***** */
117    
118    DirStruct *bookmarkDelete(DirStruct *bm){
119        DirStruct *tmp;
120        DirStruct *new_sel;
121    
122        new_sel=NULL;
123        if (bm!=NULL) {
124            if (bm->prev==NULL && bm->next==NULL) {
125                Bookmarks=NULL;
126                b_sel_ds=NULL;
127                b_first=NULL;
128                b_sel_name=NULL;
129            }
130            else {
131                if (bm->next!=NULL) bm->next->prev=bm->prev;
132                else Bookmarks->last=bm->prev;
133                if (bm->prev!=NULL) {
134                    bm->prev->next=bm->next;
135                    new_sel=bm->prev;
136                } else {
137                    new_sel=bm->next;
138                    Bookmarks=bm->next;
139                    Bookmarks->index=1;
140                    Bookmarks->first=Bookmarks;
141                }
142                bm->next=bm->prev=NULL;
143                
144                tmp=Bookmarks;
145                if (bm->dir) tmp->dir_count--;
146                else tmp->files_count--;
147                
148                while (tmp->next!=NULL) {
149                    tmp->next->dir_count=tmp->dir_count;
150                    tmp->next->files_count=tmp->files_count;
151                    tmp->next->index=tmp->index+1;
152                    tmp->next->first=tmp->first;
153                    tmp->next->last=tmp->last;
154                    tmp=tmp->next;
155                }
156                
157            }
158            dirFree(bm);
159        }
160    
161        return new_sel;
162    }
163    
164  DirStruct *bookmarkInsert(DirStruct *bm){  DirStruct *bookmarkInsert(DirStruct *bm){
165      DirStruct *tmp;      DirStruct *tmp;
166      int ti;      int ti;
# Line 1097  int keyReact(int i) Line 1143  int keyReact(int i)
1143          OClock();          OClock();
1144          viewportRefresh();          viewportRefresh();
1145      }      }
1146        
1147        /* change of sort mode */
1148      else if(i==CTRL('u')){      else if(i==CTRL('u')){
1149          tmp->sort_mode=(++tmp->sort_mode)%SORT_MODES;          tmp->sort_mode=(++tmp->sort_mode)%SORT_MODES;
1150          tmp->reread=1;          tmp->reread=1;
1151          opanelRefresh(tmp);          opanelRefresh(tmp);
1152      }      }
1153        
1154        /* switch to subshell */
1155      else if (i==CTRL('o')) {      else if (i==CTRL('o')) {
1156          erase();          erase();
1157          refresh();          refresh();
# Line 1114  int keyReact(int i) Line 1164  int keyReact(int i)
1164          viewportRefresh();          viewportRefresh();
1165          curs_set(0);          curs_set(0);
1166      }      }
1167        
1168        /* switch to/from bookmarks' dir displaying in active panel */
1169      else if (i==CTRL('b') && Bookmarks!=NULL) {      else if (i==CTRL('b') && Bookmarks!=NULL) {
1170          if (bookmark_is_active) {          if (bookmark_is_active-1==opanelActive) {
1171              if (bookmark_is_active-1==opanelActive) {              bookmarkRestoreState(tmp);
1172                  bookmarkRestoreState(tmp);              tmp->reread=1;
1173                  tmp->reread=1;              bookmark_is_active=0;
             }  
1174          } else {          } else {
1175                if (bookmark_is_active) {
1176                    bookmarkRestoreState(opanels[! opanelActive]);
1177                    opanels[! opanelActive]->reread=1;
1178                    opanelRefresh(opanels[! opanelActive]);
1179                }
1180                
1181              bookmark_is_active=opanelActive+1;              bookmark_is_active=opanelActive+1;
1182              bookmarkSaveState(tmp);              bookmarkSaveState(tmp);
1183              tmp->reread=1;              tmp->reread=1;
1184          }          }
1185    
1186          opanelRefresh(tmp);          opanelRefresh(tmp);
1187      }      }
1188        
1189        /* add bookmark */
1190      else if (i==CTRL('a')) {      else if (i==CTRL('a')) {
1191          if (opanelActive+1!=bookmark_is_active) {          if (opanelActive+1!=bookmark_is_active) {
1192              bookmarkInsert(tmp->sel_ds);              bookmarkInsert(tmp->sel_ds);
# Line 1136  int keyReact(int i) Line 1196  int keyReact(int i)
1196              }              }
1197          }          }
1198      }      }
1199        
1200        /* delete selected bookmark */
1201        else if (i==CTRL('d')) {
1202            if (bookmark_is_active==opanelActive+1) {
1203                tmp->sel_ds=bookmarkDelete(tmp->sel_ds);
1204                if (Bookmarks==NULL) {
1205                    bookmarkRestoreState(tmp);
1206                    tmp->reread=1;
1207                } else {
1208                    tmp->dir=Bookmarks;
1209                    tmp->first=Bookmarks->first;
1210                    tmp->sel_name=NULL;
1211                }
1212                opanelRefresh(tmp);
1213            }
1214        }
1215        
1216        /* add ascii character to command's string */
1217      else if (isascii(i)) {      else if (isascii(i)) {
1218          if (cmd_size<sizeof(cmd_buffer)) {          if (cmd_size<sizeof(cmd_buffer)) {
1219              cmd_buffer[cmd_size++]=(char)i;              cmd_buffer[cmd_size++]=(char)i;
1220              writeinfo(2); //refresh bottom info              writeinfo(2); //refresh bottom info
1221          }              }    
1222      }      }
1223        
1224        /* delete last character in command's string */
1225      else if (i==KEY_BACKSPACE && cmd_size>0) {      else if (i==KEY_BACKSPACE && cmd_size>0) {
1226          cmd_buffer[--cmd_size]='\0';          cmd_buffer[--cmd_size]='\0';
1227          writeinfo(2);          writeinfo(2);

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26