1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
% misc functions that should be in site.sl but they are not because we want
% jed to start up fast and they are not always needed.
%!% Prototype: String make_tmp_buffer_name (String base);
%!% Generates a unique buffer name using the string 'base' for the beginning
%!% of the name. The buffer name is returned. The buffer is not created.
define make_tmp_buffer_name (tmp)
{
variable n = 0, buf;
variable t = time ();
tmp = strcat (tmp, time);
do
{
buf = sprintf("%s%d", tmp, n);
n++;
}
while (bufferp(buf));
buf;
}
define misc_do_write_to_file (str, file, write_function)
{
variable ret = -1;
variable buf = make_tmp_buffer_name (Null_String);
variable cbuf = whatbuf ();
setbuf (buf);
insert (str);
set_buffer_modified_flag (0);
push_mark ();
bob ();
#iffalse
ERROR_BLOCK
{
_clear_error ();
}
#endif
ret = @write_function (file);
setbuf (cbuf);
delbuf (buf);
ret;
}
%!% Prototype: Integer append_string_to_file (String str, String file);
%!% The string 'str' is appended to file 'file'. This function returns -1
%!% upon failure or the number of lines written upon success.
%!% See append_region_to_file for more information.
define append_string_to_file (str, file)
{
misc_do_write_to_file (str, file, &append_region_to_file);
}
%!% Prototype: Integer write_string_to_file (String str, String file);
%!% The string 'str' is written to file 'file'. This function returns -1
%!% upon failure or the number of lines written upon success.
%!% This function does not modify a buffer visiting the file.
define write_string_to_file (str, file)
{
misc_do_write_to_file (str, file, &write_region_to_file);
}
|