#usage "<b>Edit next device, symbol, or package in library</b>\n"
       "<p>"
       "<author>Author: support@cadsoft.de</author>"

// THIS PROGRAM IS PROVIDED AS IS AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED

string cmd = "";
string dev[];
string sym[];
string pac[];
string edit = "";
int    scount = 0;
int    dcount = 0;
int    pcount = 0;
int    n = 0;

if (library) library(L) {
  L.devicesets(D) {
    dcount++;
    dev[dcount] = D.name;
    }
  L.symbols(S) {
    scount++;
    sym[scount] = S.name;
    }
  L.packages(P) {
    pcount++;
    pac[pcount] = P.name;
    }

   if (deviceset) deviceset(D) {
      edit = D.name;
      for (n = 1; n < dcount; n++) {
         if (edit == dev[n]) {
            break;
            }
         }

      if (n < dcount) {
         cmd += "EDIT " + dev[n + 1] + ".dev;\n" ;
         }
      else exit (0);
      }
   if (symbol) symbol(S) {
      edit = S.name;
      for (n = 1; n < scount; n++) {
         if (edit == sym[n]) {
            break;
            }
         }

      if (n < scount) {
         cmd += "EDIT " + sym[n + 1] + ".sym;\n" ;
         }
      else exit (0);
      }
   if (package) package(P) {
      edit = P.name;
      for (n = 1; n < pcount; n++) {
         if (edit == pac[n]) {
            break;
            }
         }

      if (n < pcount) {
         cmd += "EDIT " + pac[n + 1] + ".pac;\n" ;
         }
      else exit (0);
      }
  exit(cmd);
  }
