/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
/*                                                                     */
/*        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);
}