Add very old versions (for history).
[opsoft_archive.git] / silentbob / silentbob-1.4 / src / init.cxx
blobfbfeb2b99a72f6b476de9dbe21af4e0d5a280a84
1 /*
2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
4 *
5 */
7 #include "head.h"
8 #include "mod.h"
9 #include "temp_names.h"
11 #define SB_IMMUNE_FILE ".silent_bob/silent_bob_immune"
12 char * c_ops [] = { "if", "else", "do", "while",
13 "switch", "case", "for", "return", NULL };
15 void mk_dirs ()
17 char m_buf[4096];
18 sprintf (m_buf, "%s/.silent_bob", ENV->home_dir);
19 mkdir (m_buf, 0700);
20 sprintf (m_buf, "%s/.silent_bob/plugins", ENV->home_dir);
21 mkdir (m_buf, 0700);
22 ENV->home_plugins = strdup (m_buf);
23 ENV->shared_plugins = strdup ("/usr/lib/silent_bob/");
26 int sb_init ()
28 char * sb_immune_path = CNEW (char, 256);
29 char * stdout_vbuf;
31 stdout_vbuf = CNEW (char, 4096 * 100);
32 setvbuf (stdout, stdout_vbuf, _IOFBF, 4096*100);
34 ENV = CNEW(env_t, 1);
35 memset (ENV, 0, sizeof (env_t));
37 ENV->d_cops = new EArray(10);
38 ENV->d_cops->push (c_ops);
39 ENV->d_depth = 6;
40 ENV->sb_flags = 0;
42 ENV->d_tags_file = NULL;
43 ENV->immune_list = NULL;
44 ENV->cgrep_A = 0;
45 ENV->cgrep_B = 0;
47 ENV->home_dir = getenv ("HOME");
48 ENV->tmp_files = CNEW (char, strlen (ENV->home_dir) + strlen (TMPNAME_FILES) + 20);
49 sprintf (ENV->tmp_files, "%s/.silent_bob/%s", ENV->home_dir, TMPNAME_FILES);
50 ENV->tmp_tags = CNEW (char, strlen (ENV->home_dir) + strlen (TMPNAME_TAGS) + 20);
51 sprintf (ENV->tmp_tags, "%s/.silent_bob/%s", ENV->home_dir, TMPNAME_TAGS);
53 mk_dirs ();
54 sprintf (sb_immune_path, "%s/.silent_bob/%s", getenv ("HOME"), SB_IMMUNE_FILE);
56 ENV->immune_list = new EArray;
57 ENV->immune_list->from_file (sb_immune_path);
58 ENV->immune_list->foreach ((Dfunc_t) chomp);
59 ENV->full_list = new EArray;
60 ENV->settings = new EHash;
62 ENV->d_stream_dbg = fopen ("/dev/null", "w");
63 ENV->max_proc = 1;
64 ENV->nproc = 1;
65 ENV->proc_list = new DJobs;
66 modding_init ();
67 log_init ();
68 return 0;