diff --git a/configure.in b/configure.in index 418fecb25..2e4c2c41b 100644 --- a/configure.in +++ b/configure.in @@ -1014,8 +1014,8 @@ AC_ARG_WITH(termcap, ] ) -AC_ARG_WITH(our-slang, - [--with-our-slang SLANG: Don't use system-installed SLang],[ +AC_ARG_WITH(included-slang, + [--with-included-slang SLANG: use the SLang library included here],[ slang_use_system_installed_lib=false slang_check_lib=true ] @@ -1179,8 +1179,13 @@ AC_DEFUN(AC_EXT2_UNDEL, [ AC_ARG_WITH(ext2undel, [--with-ext2undel Compile with ext2 undelete code],[ - if test x$withval = xyes; + if test x$withval != xno; then + if test x$withval != xyes + then + LIBS="$LIBS -L$withval/lib" + CPPFLAGS="$CPPFLAGS -I$withval/include" + fi AC_EXT2_UNDEL fi], dnl Default: detect diff --git a/gnome/ChangeLog b/gnome/ChangeLog index 7867546d6..37beeafca 100644 --- a/gnome/ChangeLog +++ b/gnome/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 28 06:52:24 1998 Norbert Warmuth + + * gcmd.c (gnome_open_terminal): Changed my_system(1,...) to + my_system(EXECUTE_AS_SHELL,...) + 1998-04-27 Miguel de Icaza * glayout.c (layout_panel_gone): Removed debugging information. diff --git a/gnome/gcmd.c b/gnome/gcmd.c index f7dd44134..e40ac4e80 100644 --- a/gnome/gcmd.c +++ b/gnome/gcmd.c @@ -58,7 +58,7 @@ gnome_open_terminal (void) p = gnome_is_program_in_path ("xterm"); if (p) - my_system (1, shell, p); + my_system (EXECUTE_AS_SHELL, shell, p); else message (1, MSG_ERROR, " Could not start a terminal "); } diff --git a/src/ChangeLog b/src/ChangeLog index 0451c0691..99407f308 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,40 @@ +Tue Apr 28 06:11:08 1998 Norbert Warmuth + + * view.c (toggle_wrap_mode, toggle_hex_mode): Force recalculation + of bottom_first (we mustn't use an already calculated and cached + value because it is invalid for the new mode and the End key would + not move to the end of the file). + + * configure.in: Renamed the option `--with-our-slang' to + `--with-included-slang' (this one looks better because we also + have an `--with-included-gettext'). + Make the option `--with-ext2undel' recognice a given path. + + * cmd.c (view_file_at_line): In plain view (F13) set the default + magic flag to zero in order to view the file content unprocessed + (esp. don't uncompress files if they are compressed). The + view_simple_cmd got broken when the default magic flag in view.c + was changed from 0 to 1. + + * view.c (do_view_init, goto_line): Set wrap mode temporary off + to make goto line number work, i.e. `line number' now always means + line number in file and not line number on screen (in wrap mode + one long line wrapped once is displayed in two lines on the screen). + That's important when the viewer is invoked from the find file + dialog to display even in wrap mode approxiamtly the part of the + file where we found the content we searched for. + + (move_forward2): In wrap mode lines were sometimes counted wrong + causing cursor up to move more than one line. + + (move_backward2): Fixed the movement in wrap mode. + + (change_viewer): Always re-init viewer when we have a filename, + i. e. if the viewer is invoked with simple_view_cmd then we can switch + with the F8 key between unprocessed file content und uncompressed + file content. + (view_init): re-init view also when magic flag was altered + 1998-04-27 Miguel de Icaza * screen.c (is_a_panel): Added a routine to determine if a widget diff --git a/src/cmd.c b/src/cmd.c index bd032c794..197c9539d 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -146,20 +146,27 @@ int view_file_at_line (char *filename, int plain_view, int internal, int start_l if (plain_view) { int changed_hex_mode = 0; int changed_nroff_flag = 0; + int changed_magic_flag = 0; altered_hex_mode = 0; altered_nroff_flag = 0; + altered_magic_flag = 0; if (default_hex_mode) changed_hex_mode = 1; if (default_nroff_flag) changed_nroff_flag = 1; + if (default_magic_flag) + changed_magic_flag = 1; default_hex_mode = 0; default_nroff_flag = 0; + default_magic_flag = 0; view (0, filename, &move_dir, start_line); if (changed_hex_mode && !altered_hex_mode) default_hex_mode = 1; if (changed_nroff_flag && !altered_nroff_flag) default_nroff_flag = 1; + if (changed_magic_flag && !altered_magic_flag) + default_magic_flag = 1; repaint_screen (); return move_dir; } diff --git a/src/view.c b/src/view.c index 2833a2a59..b8f33e07d 100644 --- a/src/view.c +++ b/src/view.c @@ -629,8 +629,12 @@ do_view_init (WView *view, char *_command, char *_file, int start_line) view->last_byte = view->first + view->s.st_size; if (start_line > 1 && !error){ + int saved_wrap_mode = view->wrap_mode; + + view->wrap_mode = 0; get_byte (view, 0); view_move_forward (view, start_line - 1); + view->wrap_mode = saved_wrap_mode; } view->edit_cursor = view->first; view->file_dirty = 0; @@ -658,7 +662,7 @@ view_init (WView *view, char *_command, char *_file, int start_line) view->bytes_per_line = 2 * (cols - 7) / 9; view->bytes_per_line &= 0xfffc; view->dirty = max_dirt_limit + 1; /* To force refresh */ - if (!view->view_active || strcmp (_file, view->filename)) + if (!view->view_active || strcmp (_file, view->filename) || altered_magic_flag) return do_view_init (view, _command, _file, start_line); else return 0; @@ -1084,9 +1088,6 @@ move_forward2 (WView *view, long current, int lines, long upto) int line; int col = 0; - if (!upto && !view->hex_mode && view->last == view->last_byte) - return current; - if (view->hex_mode){ p = current + lines * view->bytes_per_line; p = (p >= view->last_byte) ? current : p; @@ -1110,6 +1111,8 @@ move_forward2 (WView *view, long current, int lines, long upto) q = upto; } else q = view->last_byte; + if (get_byte (view, q) != '\n') + q++; for (line = col = 0, p = current; p < q; p++){ int c; @@ -1166,7 +1169,7 @@ move_forward2 (WView *view, long current, int lines, long upto) static long move_backward2 (WView *view, long current, int lines) { - long p, q; + long p, q, pm; int line; if (!view->hex_mode && current == view->first) @@ -1193,24 +1196,26 @@ move_backward2 (WView *view, long current, int lines) line = 1; else line = 0; - for (q = p = current - 1; p > view->first; p--) - if (get_byte (view, p) == '\n') + for (q = p = current - 1; p >= view->first; p--) + if (get_byte (view, p) == '\n' || p == view->first) { + pm = p > view->first ? p + 1 : view->first; if (!view->wrap_mode){ if (line == lines) - return p + 1; + return pm; line++; } else { - line += move_forward2 (view, p + 1, 0, q); + line += move_forward2 (view, pm, 0, q); if (line >= lines){ if (line == lines) - return p + 1; + return pm; else - return move_forward2 (view, p + 1, line - lines, 0); + return move_forward2 (view, pm, line - lines, 0); } q = p + 1; } + } } - return p; + return p > view->first ? p : view->first; } void @@ -1776,7 +1781,7 @@ void toggle_wrap_mode (WView *view) if (view->growing_buffer != 0) { return; } - get_bottom_first (view, 1, 0); + get_bottom_first (view, 1, 1); if (view->hexedit_mode) { view->view_side = 1 - view->view_side; } else { @@ -1788,7 +1793,7 @@ void toggle_wrap_mode (WView *view) return; } view->wrap_mode = 1 - view->wrap_mode; - get_bottom_first (view, 1, 0); + get_bottom_first (view, 1, 1); if (view->wrap_mode) view->start_col = 0; else { @@ -1822,7 +1827,7 @@ toggle_hex_mode (WView *view) view->widget.options &= ~W_WANT_CURSOR; } altered_hex_mode = 1; - get_bottom_first (view, 1, 0); + get_bottom_first (view, 1, 1); view_labels (view); view->dirty++; view_update (view); @@ -1841,7 +1846,9 @@ goto_line (WView *view) { char *line, prompt [100]; int i, oldline = 1; + int saved_wrap_mode = view->wrap_mode; + view->wrap_mode = 0; for (i = view->first; i < view->start_display; i++) if (get_byte (view, i) == '\n') oldline ++; @@ -1856,6 +1863,7 @@ goto_line (WView *view) free (line); } view->dirty++; + view->wrap_mode = saved_wrap_mode; view_update (view); } @@ -1928,25 +1936,27 @@ normal_search_cmd (WView *view) void change_viewer (WView *view) { - altered_magic_flag = 1; - if (!view->command){ - view->viewer_magic_flag = !view->viewer_magic_flag; - view_labels (view); - } else { - char *s = strdup (view->filename); - char *t = strdup (view->command); + char *s; + char *t; + + + if (*view->filename) { + altered_magic_flag = 1; + view->viewer_magic_flag = !view->viewer_magic_flag; + s = strdup (view->filename); + if (view->command) + t = strdup (view->command); + else + t = 0; view_done (view); - - /* Is it possible to not use the growing buffers? */ - if (!(*t && !*s)) - view->viewer_magic_flag = !view->viewer_magic_flag; view_init (view, t, s, 0); free (s); - free (t); - view_labels (view); - view->dirty++; - view_update (view); + if (t) + free (t); + view_labels (view); + view->dirty++; + view_update (view); } } diff --git a/vfs/ChangeLog b/vfs/ChangeLog index 49527ec81..604993742 100644 --- a/vfs/ChangeLog +++ b/vfs/ChangeLog @@ -1,3 +1,9 @@ +Tue Apr 28 06:06:03 1998 Norbert Warmuth + + * extfs.c (extfs_open, extfs_close): Changed my_system(1,...) to + my_system(EXECUTE_AS_SHELL,...), this fixes the broken copyin and + copyout of 4.1.32. + 1998-04-23 Miguel de Icaza * ftpfs.c (retrieve_file_start2): Open file exclusively. diff --git a/vfs/extfs.c b/vfs/extfs.c index 93938523e..fddea5b5c 100644 --- a/vfs/extfs.c +++ b/vfs/extfs.c @@ -760,7 +760,7 @@ static void *extfs_open (char *file, int flags, int mode) " ", q, " ", entry->inode->local_filename, 0); free (q); free (archive_name); - if (my_system (1, shell, cmd) && !do_create){ + if (my_system (EXECUTE_AS_SHELL, shell, cmd) && !do_create){ free (entry->inode->local_filename); entry->inode->local_filename = NULL; free (cmd); @@ -823,7 +823,7 @@ static int extfs_close (void *data) file->entry->inode->local_filename, 0); free (archive_name); free (file_name); - if (my_system (1, shell, cmd)) + if (my_system (EXECUTE_AS_SHELL, shell, cmd)) errno_code = EIO; free (cmd); {