File: misc.sl

package info (click to toggle)
jed 0.98.7-14
  • links: PTS
  • area: main
  • in suites: slink
  • size: 3,088 kB
  • ctags: 3,851
  • sloc: ansic: 29,315; makefile: 257; sh: 248
file content (63 lines) | stat: -rw-r--r-- 1,717 bytes parent folder | download | duplicates (2)
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);
}