summaryrefslogtreecommitdiff
path: root/support/brief-t/label.cb
blob: 6039d38506d2c66ed29d8ab6da8c484446ed2cae (plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
/*                                                                     */
/*        P†l Hedne 1990                                               */
/*                                                                     */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
_init (...)
{
   int label_key;
   global label_key;

	label_key=0;
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
extern gen_help,
   	_reg_exp,					//	Regular expressions on/off.
		_block_search;				//	Block search on/off.

find_label (...)
{
	int line,col,line1,col1,match,ind,length,buf_key,
       nwrite,maxlength,dum;

   string text,label,fname,ext,bname;

   maxlength=30;
   message("Searching..");  
	inq_position (line, col);
   top_of_buffer();

/*   inq_names(fname,ext,bname);
	ind = search_string (".",fname,length,0,0);
   if (ind>0) fname=substr(fname,1,ind-1);
   fname=fname+".lbl";*/
   fname="LABELS IN FILE "+bname;
   label_key=create_buffer("labels",NULL,1);
   buf_key=inq_buffer();
   nwrite=0;
   match=1;
	while (match > 0)
   {
   	match = search_fwd ("\\label\\{*\\}",1, 0, 0);
      if (match > 0)
		   {
      	inq_position (line1, col1);
  		   text = read();
         text=trim(text);
         length=strlen(text);
         bname=text;
        	while ((ind=search_string(";",text,dum,0,0)) > 0)
        		text=substr(bname,1,ind-1)+":"+substr(bname,ind+1,length);
         if (length>maxlength) maxlength=length;
         while (strlen(text)<maxlength)
            text=text+" ";
               
	      ind = search_string ("\\{*\\}",text,length,1,0);
         if (length>2) 
            {
            label=substr(text,ind+1,length-2);
            set_buffer(label_key);
            insert("Line %d: %s  ;insert_text %c%s%c\n",line1,text,34,label,34);            
            set_buffer(buf_key);
            ++nwrite;
            }
        }
  	   move_rel(0, match);
   }
  	move_abs (line, col);
   if (nwrite>0)
      {
       message(" ");  
       text=gen_help(fname,label_key);
      }
   else
      message("No labels in file.");  

/*   delete_buffer(label_key);*/
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
disp_label (...)
{
   string fname;
   fname=" ";
   if (label_key>0) fname=gen_help(fname,label_key);
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
insert_text(...)
{
   string text;

	if (get_parm (0, text)) insert(text);
}