Drop limit of edited file size.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Этот коммит содержится в:
родитель
ccf82ada12
Коммит
c6d6aaedd5
@ -294,8 +294,10 @@ check_file_access (WEdit * edit, const vfs_path_t * filename_vpath, struct stat
|
|||||||
if (st->st_size > 0)
|
if (st->st_size > 0)
|
||||||
edit->delete_file = 0;
|
edit->delete_file = 0;
|
||||||
|
|
||||||
if (st->st_size >= SIZE_LIMIT)
|
/* TODO:
|
||||||
errmsg = g_strdup_printf (_("File \"%s\" is too large"), vfs_path_as_str (filename_vpath));
|
* Add ini option of file size alarm threshold.
|
||||||
|
* Add here the query dialog "The file is too large. Open it anyway?".
|
||||||
|
*/
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
(void) mc_close (file);
|
(void) mc_close (file);
|
||||||
@ -2413,10 +2415,6 @@ edit_push_redo_action (WEdit * edit, long c)
|
|||||||
void
|
void
|
||||||
edit_insert (WEdit * edit, int c)
|
edit_insert (WEdit * edit, int c)
|
||||||
{
|
{
|
||||||
/* check if file has grown to large */
|
|
||||||
if (edit->last_byte >= SIZE_LIMIT)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* first we must update the position of the display window */
|
/* first we must update the position of the display window */
|
||||||
if (edit->buffer.curs1 < edit->start_display)
|
if (edit->buffer.curs1 < edit->start_display)
|
||||||
{
|
{
|
||||||
@ -2461,9 +2459,6 @@ edit_insert (WEdit * edit, int c)
|
|||||||
void
|
void
|
||||||
edit_insert_ahead (WEdit * edit, int c)
|
edit_insert_ahead (WEdit * edit, int c)
|
||||||
{
|
{
|
||||||
if (edit->last_byte >= SIZE_LIMIT)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (edit->buffer.curs1 < edit->start_display)
|
if (edit->buffer.curs1 < edit->start_display)
|
||||||
{
|
{
|
||||||
edit->start_display++;
|
edit->start_display++;
|
||||||
|
@ -79,6 +79,22 @@
|
|||||||
|
|
||||||
/*** file scope macro definitions ****************************************************************/
|
/*** file scope macro definitions ****************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The editor keeps data in two arrays of buffers.
|
||||||
|
* All buffers have the same size, which must be a power of 2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Configurable: log2 of the buffer size in bytes */
|
||||||
|
#ifndef S_EDIT_BUF_SIZE
|
||||||
|
#define S_EDIT_BUF_SIZE 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Size of the buffer */
|
||||||
|
#define EDIT_BUF_SIZE (((off_t) 1) << S_EDIT_BUF_SIZE)
|
||||||
|
|
||||||
|
/* Buffer mask (used to find cursor position relative to the buffer) */
|
||||||
|
#define M_EDIT_BUF_SIZE (EDIT_BUF_SIZE - 1)
|
||||||
|
|
||||||
/*** file scope type declarations ****************************************************************/
|
/*** file scope type declarations ****************************************************************/
|
||||||
|
|
||||||
/*** file scope variables ************************************************************************/
|
/*** file scope variables ************************************************************************/
|
||||||
@ -127,8 +143,8 @@ edit_buffer_get_byte_ptr (const edit_buffer_t * buf, off_t byte_index)
|
|||||||
void
|
void
|
||||||
edit_buffer_init (edit_buffer_t * buf, off_t size)
|
edit_buffer_init (edit_buffer_t * buf, off_t size)
|
||||||
{
|
{
|
||||||
buf->b1 = g_ptr_array_sized_new (MAXBUFF + 1);
|
buf->b1 = g_ptr_array_sized_new (32);
|
||||||
buf->b2 = g_ptr_array_sized_new (MAXBUFF + 1);
|
buf->b2 = g_ptr_array_sized_new (32);
|
||||||
|
|
||||||
buf->curs1 = 0;
|
buf->curs1 = 0;
|
||||||
buf->curs2 = 0;
|
buf->curs2 = 0;
|
||||||
|
@ -7,33 +7,6 @@
|
|||||||
|
|
||||||
/*** typedefs(not structures) and defined constants **********************************************/
|
/*** typedefs(not structures) and defined constants **********************************************/
|
||||||
|
|
||||||
/*
|
|
||||||
* The editor keeps data in two arrays of buffers.
|
|
||||||
* All buffers have the same size, which must be a power of 2.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Configurable: log2 of the buffer size in bytes */
|
|
||||||
#ifndef S_EDIT_BUF_SIZE
|
|
||||||
#define S_EDIT_BUF_SIZE 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Size of the buffer */
|
|
||||||
#define EDIT_BUF_SIZE (((off_t) 1) << S_EDIT_BUF_SIZE)
|
|
||||||
|
|
||||||
/* Buffer mask (used to find cursor position relative to the buffer) */
|
|
||||||
#define M_EDIT_BUF_SIZE (EDIT_BUF_SIZE - 1)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Configurable: Maximal allowed number of buffers in each buffer array.
|
|
||||||
* This number can be increased for systems with enough physical memory.
|
|
||||||
*/
|
|
||||||
#ifndef MAXBUFF
|
|
||||||
#define MAXBUFF 1024
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Maximal length of file that can be opened */
|
|
||||||
#define SIZE_LIMIT (EDIT_BUF_SIZE * (MAXBUFF - 2))
|
|
||||||
|
|
||||||
/*** enums ***************************************************************************************/
|
/*** enums ***************************************************************************************/
|
||||||
|
|
||||||
/*** structures declarations (and typedefs of structures)*****************************************/
|
/*** structures declarations (and typedefs of structures)*****************************************/
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user