#!/usr/bin/php -Cq
<?php
//  include "/usr/local/astium/web/php/cms/db.php";
//  include "/usr/local/astium/web/php/config.php";

$output = "";
$pos = "";
$message = "";
$language = "";
$fieldname = "";
$name = "";
$subject = "";

function process_line($line, $tablename)
{
  global $output, $pos, $message, $language, $fieldname, $name, $subject;

  if ((substr($line, 10, 4) != "LONG") && ($pos == "atlong")) {
    $message = addslashes(trim($message));
    $subject = addslashes(trim($subject));
    $output .= "DELETE FROM astmessage where name = '$name' and " .
               "language = '$language' and class = 'help';\n";
    $output .= "INSERT INTO astmessage (name, language, class, subject, ascii, html, description) " .
               "VALUES ('$name', '$language', 'help', '$subject', '$message', '$message', '');\n";
    $message = "";
    $pos = "";
  }
  $wordArray = explode(" ", trim($line));
  if (($wordArray[0] != "CHECK") && (substr($line, 0, 2) != "--")) {
    $fieldname = $wordArray[0];
    $name = "$tablename.$fieldname";
  }
  if (substr($line, 0, 6) == "--HELP") {
    $language = strtolower(substr($line, 7, 2));
    if (substr($line, 10, 4) == "INFO") {
      $subject = trim(substr($line, 15));
    }
    if (substr($line, 10, 4) == "LONG") {
      $message .= substr($line, 15);
      $pos = "atlong";
    }
  }
}

  $fh = file($argv[1]);

  $tablename = basename($argv[1], ".table");
  $output = "";
  $pos = "";
  $message = "";
  $language = "";

  foreach($fh as $line) {
    $wordArray = explode(" ", trim($line));
    if ($wordArray[0] == '\i') {
      $fh2 = file($wordArray[1]);
      foreach($fh2 as $line) {
        process_line($line, $tablename);
      }
    } else {
      process_line($line, $tablename);
    }
  }
  printf("BEGIN;\n");
  printf("%s", $output);
  printf("COMMIT;\n");
?>
