]> mj.ucw.cz Git - minsk.git/blobdiff - minsk.c
Minsk: Accept \r\n
[minsk.git] / minsk.c
diff --git a/minsk.c b/minsk.c
index bc13ae46f0b3bdcf6451ead39320b7497687499c..4b4b2a3995ac5fd2ab0907a14a7fce692606b5d9 100644 (file)
--- a/minsk.c
+++ b/minsk.c
@@ -185,6 +185,8 @@ static void parse_in(void)
       if (!eol)
        parse_error("Строка слишком долгая");
       *eol = 0;
+      if (eol > line && eol[-1] == '\r')
+       *--eol = 0;
 
       char *c = line;
       if (!c[0] || c[0] == ';')
@@ -198,6 +200,9 @@ static void parse_in(void)
          continue;
        }
 
+      if (c[0] == '.')
+       return;
+
       if (c[0] == '@')
        {
          c++;
@@ -369,15 +374,13 @@ static void print_ins(int x, int y)
       eat = 1;
       break;
     case 4:                            // One Russian symbol
-      bit = 6;
-      fmt = "r";
+      fmt = "xr";
       break;
     case 5:                            // Russian text
       fmt = "xrrrrrr";
       break;
     case 6:                            // One Latin symbol
-      bit = 6;
-      fmt = "l";
+      fmt = "xl";
       break;
     default:                           // Latin text
       fmt = "xllllll";
@@ -434,7 +437,7 @@ static void print_ins(int x, int y)
       linebuf[pos] = ch;
       pos = (pos+1) & 0177;
     }
-  assert(!bit);
+  assert(bit >= 0);
 }
 
 static void run(void)
@@ -821,9 +824,9 @@ static void run(void)
 #define TBF_MAX 5                      // Max number of tokens in the bucket
 #define TBF_REFILL_PER_SEC 0.2         // Bucket refill rate (buckets/sec)
 
-#define PID_FILE "/var/run/minsk.pid"
-#define UID 65534
-#define GID 65534
+#define PID_FILE "/var/run/pd-minsk.pid"
+#define UID 124
+#define GID 125
 
 static void die(char *msg)
 {
@@ -1253,11 +1256,12 @@ int main(int argc, char **argv)
        run_as_daemon(1);
       else if (!strcmp(argv[1], "--net"))
        run_as_daemon(0);
+      else if (!strncmp(argv[1], "--trace=", 8))
+       trace = atoi(argv[1] + 8);
       else
        die("Usage: minsk [--daemon | --net]");
     }
 
-  trace = 3;
   parse_in();
   run();
   return 0;