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
  
string copy_to = "manual/images"; 
#define DEBUG 
 
void parse_file(string file) { 
 
  string dir = getcwd()+"/"+dirname(file)+"/"; 
 
  string x,y; 
  y = Stdio.read_file(file); 
#ifdef DEBUG 
  array err = catch { 
    x = Tools.AutoDoc.ProcessXML.moveImages 
      (y, dir, copy_to); 
  }; 
  if(!err) { 
    if(x!=y) 
      Stdio.write_file(file, x); 
  } 
  else { 
    if(objectp(err) && _typeof(err) <= Tools.AutoDoc.AutoDocError) 
      werror("%O\n", err); 
    else if(arrayp(err)) 
      werror(describe_backtrace(err)); 
    else 
      werror("%O\n", err); 
  } 
#else 
  x = Tools.AutoDoc.ProcessXML.moveImages 
    (Stdio.read_file(file), dir, copy_to); 
  if(x!=y) 
    Stdio.write_file(directory+file, x); 
#endif 
} 
 
 
int main(int num, array(string) args) { 
 
  if(num<3) throw( "Not enough arguments to autodoc_images.pike\n" ); 
  copy_to = args[1]; 
  foreach(args[2..], string file) { 
    if(has_suffix(file,"sub_manual.xml")) continue; 
    Stdio.Stat st = file_stat(file); 
    if(!st->size) continue; 
    parse_file( file ); 
  } 
}