2009-05-02 (r5562) Alexander Chernov  <cher@ejudge.ru>

	* file_perms.c:
	initial revision

2009-03-24 (r5554) Alexander Chernov  <cher@ejudge.ru>

	* sock_op_enable_creds.c, sock_op_put_creds.c:
	  copyright notice is updated;
	  python module support is added.

2009-01-28 (r5547) Alexander Chernov  <cher@ejudge.ru>

	* fmemopen.c, open_memstream.c: copyright notice is added.
	file-based implementation of missing functions is added.

2008-12-31 (r5537) Alexander Chernov  <cher@ejudge.ru>

	* ej_process.c:
	`close_memstream' is used to close memory streams
	opened with `open_memstream'.
	

	* fmemopen.c:
	(fmemclose) new function is added.

	* open_memstream.c:
	(close_memstream) new function is added.

2008-12-26 (r5497) Alexander Chernov  <cher@ejudge.ru>

	* fmemopen.c:
	initial revision

2008-12-26 (r5478) Alexander Chernov  <cher@ejudge.ru>

	* full_archive.c: copyright notice is updated;
	(full_archive_append_file) `lseek64' is replaced with 'lseek'.

	* open_memstream.c: initial revision.

2008-12-25 (r5463) Alexander Chernov  <cher@ejudge.ru>

	* sock_op_get_fds.c, sock_op_get_creds.c, sock_op_put_fds.c, sock_op_enable_creds.c, sock_op_put_creds.c:
	initial revision

2008-12-18 (r5433) Alexander Chernov  <cher@ejudge.ru>

	* startstop.c: copyright notice is updated;
	<dirent.h>, <errno.h>, <string.h> are included;
	(start_find_process) new function;
	(start_kill) new function.

2008-12-02 (r5383) Alexander Chernov  <cher@ejudge.ru>

	* interrupt.c: copyright notice is updated;
	(interrupt_flag_interrupt) new function;
	(interrupt_flag_sighup) new function.

2008-11-15 (r5298) Alexander Chernov  <cher@ejudge.ru>

	* startstop.c: moved here from the top directory.

2008-09-29 (r5120) Alexander Chernov  <cher@ejudge.ru>

	* fileutl.c:
	(scan_dir) the lexicographically least file name is picked up
	  instead of the first.

2008-03-05 (r4744) Alexander Chernov  <cher@ejudge.ru>

	* fileutl.c: copyright notice is updated;
	directory creation permissions are relaxed: group write is
	enabled.

2007-08-04 (r4271) Alexander Chernov  <cher@ejudge.ru>

	* fileutl.c: copyright notice is updated;
	(scan_dir) `fi_size' parameter is added to allow specifying
	  the buffer size.

2006-10-05 (r3489) Alexander Chernov  <cher@ejudge.ru>

	* interrupt.c: copyright notice is updated;
	SIGHUP signal is handled separately, and information about
	  whether it was received is available to the application;
	(sighup_handler) function to handle SIGHUP;
	(interrupt_restart_requested) function which returns 1, if SIGHUP
	  was received.

2006-09-09 (r3337) Alexander Chernov  <cher@ejudge.ru>

	* cr_serialize.c:
	"serve_state.h" is included;
	(cr_serialize_init) `state' parameter is added;
	(cr_serialize_lock) `state' parameter is added;
	(cr_serialize_unlock) `state' parameter is added.

2006-09-08 (r3328) Alexander Chernov  <cher@ejudge.ru>

	* cr_serialize.c: copyright notice is updated;
	"prepare_vars.h" is no longer included;
	"serve_state.h" is included;
	`serve_state.global' is used instead of `global'.

2006-06-10 (r3156) Alexander Chernov  <cher@ispras.ru>

	* ChangeLog:
	Transition from CVS to SVN.

2006-02-25  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c:
	copyright notice is updated;
	(scan_dir_add_ignored) new function to add a file name to the list
	  of ignored files;
	(scan_dir) the list of ignored files is supported.

2005-11-25  Alexander Chernov  <cher@ispras.ru>

	* full_archive.c: "errlog.h" is included.

2005-11-25  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: "errlog.h" is included.

	* cr_serialize.c: "pathutl.h" is replaced with "errlog.h".

2005-11-13  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c:
	(generic_write_file) the output file is not removed on error,
	  if `KEEP_ON_FAIL' flag is set.

2005-11-02  Alexander Chernov  <cher@ispras.ru>

	* cpu.c:
	(cpu_get_bogomips) "use of uninitialized value" warning is fixed.

	* ej_process.c:
	(read_process_output) "missing sentinel point" warning is fixed.

2005-09-12  Alexander Chernov  <cher@ispras.ru>

	* cpu.c: initial revision

2005-08-19  Alexander Chernov  <cher@ispras.ru>

	* ej_process.c: initial revision

2005-07-03  Alexander Chernov  <cher@ispras.ru>

	* cr_serialize.c: copyright notice is updated;
	"prepare_vars.h" is included.

2005-06-15  Alexander Chernov  <cher@ispras.ru>

	* timestamp.c: initial revision

2005-04-13  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c:
	(make_dir) message about creation of a new dir is not printed, if this
	  directory already exists.

2005-03-03  Alexander Chernov  <cher@ispras.ru>

	* curtime.c: initial revision

2005-01-15  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: copyright notice is updated;
	(split_path) function moved here from prepare.c;
	(make_relative_path) function moved here from prepare.c;
	(make_symlink) function moved here from prepare.c.

2004-12-31  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: (generic_file_size) bug in snprintf usage fixed.

	* fileutl.c:
	(generic_file_size) return type is now `ssize_t', NULL `dir' param
	  is handled slightly differently.

2004-11-13  Alexander Chernov  <cher@ispras.ru>

	* interrupt.c: initial revision

	* cr_serialize.c: compile-command is updated.

2004-06-20  Alexander Chernov  <cher@ispras.ru>

	* cr_serialize.c:
	The `koi8-r' charset specification is removed from the file header.

2004-05-04  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c:
	(gzip_read_file) possibly uninitialized variable use warning is fixed.

2004-04-19  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: 
	(scan_dir) a bug introduced in the previous revision is fixed.

2004-04-17  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: "settings.h" is included;
	(scan_dir) all the entries in the given directory are sorted in
	  the priority order, and an entry with the maximal priority
	  is returned.

2004-01-09  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: copyright notice is updated;
	(clear_directory) better error handling is implemented;
	  all the filenames in the directory being cleared first are
	  saved in the list, and then the names from the list are unlinked;
	(make_dir) better error handling is implemented;
	  umask manipulations is now used to set up permissions on the new
	  directory without race conditions;
	(make_all_dir) the error code returned from `make_dir' is returned
	  further from this function;
	(scan_dir) better error handling and recovery is implemented;
	(do_write_file) the same as above;
	(gzip_write_file) the same as above;
	(generic_write_file) the same as above;
	(do_read_file) rewritten from scratch to handle reading of the file's
	  contents into the fixed-size and the extendable buffers;
	(do_fixed_pipe_read_file) removed;
	(do_alloc_pipe_read_file) removed;
	(gzip_read_file) better error handling and recovery is implemented;
	(generic_read_file) better error handling and recovery is implemented;
	  `do_fixed_pipe_read_file' and `do_alloc_pipe_read_file' are
	  no longer used, the `do_read_file' is used instead;
	(dumb_copy_file_to_dos) better error handling and recovery is
	  implemented;
	(dumb_copy_file_from_dos) the same as above;
	(dumb_copy_file) the same as above;
	(gzip_copy_file) the same as above;
	(do_copy_file) the same as above;
	(generic_copy_file) the same as above;
	(sf_read) the `errno' variable's value is restored correctly to the
	  error code before exit from the function;
	(sf_open) the same as above.

2003-12-01  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: <zlib.h> is included;
	(gzip_write_file) a new function to write a gzipped file from memory;
	(generic_write_file) `GZIP' flag (file compression) is handled;
	(gzip_read_file) a new function to read from a gzipped file to memory;
	(generic_read_file) `GZIP' flag (file compression) is handled;
	(gzip_copy_file) a new function to copy files, decompressing/compressing
	  them if needed. Also unix<->dos text conversion is performed,
	  if `CONVERT' flag is specified;
	(do_copy_file) `GZIP' flag is handled and `gzip_copy_file' is called;
	(generic_file_size) a new function to return the size of the file.

2003-10-12  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c:
	(clear_directory) the new `remove_directory_recursively' function is
	  called for directories. So the `clear_directory' function now
	  correctly removes all the directory's content;
	(dumb_copy_file_to_dos) bug: need to read the next character in loop;
	(dumb_copy_file) bug: `|' was used instead of '&';
	(do_remove_recursively) a new helper function to traverse the
	  filesystem tree and remove all the files;
	(free_file_hierarchy) a new helper function to deallocate filesystem
	  tree;
	(remove_directory_recursively) new function to remove the given
	  directory with all its content.

2003-01-06  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: copyright notice is updated;
	(make_dir) no message is printed, if the directory already
	  exists.

2002-12-08  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: "unix_fileutl.h" include directive is changed.

2002-03-22  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c: copyright notice is updated;
	`logger.h', `osdeps.h', `xalloc.h' are included from reuse library.

2002-01-08  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c: copyright notice is updated;
	(os_readint) moved to `reuse/number_io';
	(os_readdouble) moved to `reuse/number_io';
	(reuse_strtoll) moved to `reuse/number_io';
	(reuse_strtoull) moved to `reuse/number_io';
	(os_readll) moved to `reuse/number_io';
	(os_readull) moved to `reuse/number_io';
	(os_writell) moved to `reuse/number_io';
	(os_writeull) moved to `reuse/number_io';
	(os_snprintf) moved to `reuse/number_io';
	(os_vsnprintf) moved to `reuse/number_io'.

	* exec.c, logger.c: copyright notice is updated;
	new "number_io.h" file is included.

2001-12-26  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c:
	(os_writell) a new function, which converts a long long number into
	  a string in various formats;
	(os_writeull) a new function, similar to the previous one, but for
	  unsigned long long values.

2001-12-24  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c:
	(os_readll) if endptr parameter equals to (void*) 1, the string
	  ending is not checked;
	(os_readull) if endptr parameter equals to (void*) 1, the string
	  ending is not checked.

2001-12-03  Alexander Chernov  <cher@ispras.ru>

	* exec.c: 
	(struct tTask) new fields clear_env, env;
	(task_Delete) memory, allocated for the new fields are correctly
	  removed;
	(task_PutEnv) new function: adds an environment variable for the
	  process to start;
	(task_ClearEnv) new function: sets `clear_env' flag, which indicates
	  that all the environment must be cleared;
	(task_Start) the environment is cleared, if `clear_env' flag is set,
	  environment variables are set.

2001-11-08  Alexander Chernov  <cher@ispras.ru>

	* exec.c:
	(struct tTask) new fields: termsig, max_stack_size, max_data_size,
	  max_vm_size, disable_core;
	(task_New) termsig is SIGTERM by default;
	(task_DisableCoreDump) a new function, which disables core dumps of
	  the child process;
	(task_SetDataSize) a new function, which allows setting maximum
	  data segment size of the process (does not work on Linux by unknown
	  reason);
	(task_SetStackSize) a new function, which allows setting maximum
	  stack segment size;
	(task_SetVMSize) a new function, which allows setting the overall
	  maximum virtual memory size of the process;
	(task_SetKillSignal) a new function, which allows setting the
	  signal, which is used to kill the process due to timeout;
	(task_Start) added support for all the new features described above.

2001-11-07  Alexander Chernov  <cher@ispras.ru>

	* exec.c:
	(task_Wait) the waiting time must be updated if nanosleep returned
	  due to signal arrived.

2001-06-23  Alexander Chernov  <cher@ispras.ru>

	* logger.c:
	Include of <string.h> added to eliminate compiler (gcc 3.0)
	warnings.

2001-06-16  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c:
	1) added own definition of constants LONG_LONG_MAX, LONG_LONG_MIN,
	   ULONG_LONG_MAX, this constants are not exported out of the
	   module, though;
	2) added implementation of reuse_strtoll, reuse_strtoull, which
	   are own implementations of strtoll, strtoull for the platforms
	   that lack those functions.
	3) implemeneted os_readll, os_readull, which are more
	   platform-independent versions of strtoll, strtoull
	   (they report error in their return value, accept pointer to
	   the result as void* for the best portability).

2001-03-25  Alexander Chernov  <cher@ispras.ru>

	* unix_fileutl.h, osdeps.c, logger.c, fileutl.c, exec.c:
	copyright notice updated

2000-11-03  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c 1.8: 1) error reporting is changed:
	   write_log(0, LOG_ERR... -> err(...;
	2) implemented check_readable_dir;
	3) implemented check_writable_dir;
	4) implemented check_writable_spool;
	5) implemented check_executable;
	6) implemented relaxed_remove;
	7) implemented syscall wrappers:
	   sf_read, sf_write, sf_open, sf_close, sf_lseek, sf_chmod,
	   sf_mkfifo.

	* osdeps.c 6.19: 1) copyright notice updated;
	2) os_ErrorMsg implemeted;
	3) char * -> const char * for many functions;
	4) some function documentation added.

	* logger.c 6.9: 1) copyright header updated;
	2) char* -> const char* in arguments of write_log, vwrite_log.

	* exec.c 6.13: 1) copyright header updated;
	2) resource utilization field added to Task struct;
	3) wait4 syscall is used instead of waitpid;
	4) resource utilization is stored upon termination;
	5) added some documenting comments to the new functions;
	6) reworked process startup error reporting using aux. pipe;
	7) _exit is used instead of exit in child;
	8) implemented task_GetRunningTime;
	9) implemented task_ErrorCode.

	* unix_fileutl.h 1.1: New file.

2000-10-25  Alexander Chernov  <cher@ispras.ru>

	* exec.c 6.12: added explicit flag 'is_timeout' which is set upon
	timeout.

2000-10-20  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c 1.7: make_writable function added

	* exec.c 6.11: 1) task is killed with SIGTERM in case of timeout;
	2) if task is interrupted with SIGTERM, SIGKILL, or
	returned code 15, timeout is reported;
	3) stub for task_Kill added.

2000-10-18  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.18: fixed parameter types of os_rGetBasename.

2000-10-17  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c 1.6: fixed bug in generic_copy_file

	* exec.c 6.10: run-time limit implemented with nanosleep instead of
	setting limit of CPU time

	* osdeps.c 6.17: added implementation of os_rDirName

	* fileutl.c 1.5: added permission bits to make_dir, make_all_dirs

	* exec.c 6.9: 1) added support for time-limited program execution:
	task_SetMaxTime, task_IsTimeout.
	2) added support for platform-independent open flags
	added to exec.h earlier.

2000-10-11  Alexander Chernov  <cher@ispras.ru>

	* fileutl.c 1.4: added flag PIPE for generic_read_file
	to read files correctly from pipes;
	implemented mostly, but pipe read with fixed buffer
	throws "not implemented" error yet

2000-10-10  Alexander Chernov  <cher@ispras.ru>

	* logger.c 6.8: added global logging level and function
	logger_set_level.

	* fileutl.c 1.3: rewrited: instead of lots functions only
	3 is introduced: generic_read_file, generic_write_file,
	generic_copy_file.

	* osdeps.c 6.16: 1) os_GetBasename_r renamed to os_rGetBasename;
	2) implemented os_rGetWorkingDir and os_IsAbsolutePath.

2000-10-07  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.15: os_GetBasename_r implemented

	* fileutl.c 1.2: additions

2000-10-01  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.14: minor fix

	* logger.c 6.7:
	1) REUSE fancy stuff ("lconfig.h", "reuse/..." includes)
	is used only if __REUSE__ symbol defined;
	2) implemented logger_init_ex;
	3) implemented support for primary and secondary
	log streams; secondary log stream is currently written
	to stderr.

	* osdeps.c 6.13:
	1) REUSE fancy stuff ("lconfig.h", "reuse/..." includes)
	is used only if __REUSE__ symbol defined;
	2) added function os_Sleep.

	* exec.c 6.8: 1) REUSE fancy stuff ("lconfig.h", "reuse/..." includes)
	is used only if __REUSE__ symbol defined;
	2) added support for changind the working directory
	in the spawned program;
	3) fixed bug in DUP redirection.

	* fileutl.c 1.1: initial revision

2000-07-01  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.12: correction to work on the latest cygwin release

1999-08-30  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.11:
	1) reuse_version.h is included using CONF_DEPFILE instead of CONF_GENFILE;
	2) CVSID macro is no longer used, plain constant definition is
	put instead.

	* logger.c 6.6:
	1) reuse_version.h is included using CONF_DEPFILE instead of CONF_GENFILE;
	2) all module variables are properly initialized upon the first
	invocation of the functions from this module, so call to
	logger_init is no longer necessary, unless the list of modules
	is defined;
	3) removed some unused and uncompiled code (in write_log);
	4) commented out fd_vprintf etc. stuff --- candidate for removal;
	5) added emacs-specific fontification options.

	* exec.c 6.7:
	1) reuse_version.h is included using CONF_DEPFILE instead of CONF_GENFILE;
	2) CVSID macro is no longer used, plain constant definition is
	put instead;
	3) added emacs-specific fontification options.

1999-08-16  Alexander Chernov  <cher@ispras.ru>

	* exec.c 6.6, logger.c 6.5, osdeps.c 6.10:
	Copyright notice added (GNU LGPL).

1999-08-04  Alexander Chernov  <cher@ispras.ru>

	* logger.c 6.4: os_vsnprintf is used instead of snprintf.

	* osdeps.c 6.9:
	New implementation of [v]snprintf (taken from DJGPP) is used
	when neither vsnprintf, nor _[v]snprintf present.

1999-07-30  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.8:
	1) os_GuessProjectEnv enhanced to support win32 feature:
	if the program is found in PATH list, argv[0] does not contain
	the path to the executable, only its basename;
	2) os_AttachFILE implemented;

1999-07-24  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.7: 1) os_CheckAccess: implemented;
	2) os_GuessProjectEnv: feature test CONF_HAS_FCHDIR is used instead
	of __CYGWIN32__.

	* exec.c 6.5, logger.c 6.3, osdeps.c 6.6:
	Moved from reuse to reuse/unix directory.

1999-06-12  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.5: Fixes to compile on cygwin (B20.1).

1999-06-02  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.4: added functions get_PRJ_HOME_name, get_PRJ_HOME,
	get_PRJ_CONFIG_name, get_PRJ_CONFIG

1999-06-01  Alexander Chernov  <cher@ispras.ru>

	* exec.c 6.4: 1) compilation warnings fixed.

1999-05-31  Alexander Chernov  <cher@ispras.ru>

	* exec.c 6.3: changes in logging usage

	* logger.c 6.2, osdeps.c 6.3: copyright notice updated;
	merged with the UniCad's version of the file.

	* exec.c 6.2: Copyright notice updated

1999-05-30  Alexander Chernov  <cher@ispras.ru>

	* osdeps.c 6.2: tabulation converted to spaces

	* exec.c 6.1, logger.c 6.1, osdeps.c 6.1:
	Адаптация к новому окружению компиляции.

	* exec.c 6.0, logger.c 6.0, osdeps.c 6.0: New file.

END

	$Id: ChangeLog 5589 2009-09-04 20:24:20Z cher $

