After a decade (plus change) less prudent side finally won internal struggle.
Unified · Split
| @@ -1366,7 +1366,12 @@ ML (mbtoutf8 (value s_v)) · 1365 unmodified lines | ||
| 1366 | 1366 | CAMLreturn (ret_v); |
| 1367 | 1367 | } |
| 1368 | 1368 | |
| 1369 | −static void * mainloop (void UNUSED_ATTR *unused) | |
| 1369 | +enum { | |
| 1370 | + Copen, Ccs, Cfreepage, Cfreetile, Csearch, Cgeometry, Creqlayout, | |
| 1371 | + Cpage, Ctile, Ctrimset, Csettrim, Csliceh, Cinterrupt | |
| 1372 | +}; | |
| 1373 | + | |
| 1374 | +static void *mainloop (void UNUSED_ATTR *unused) | |
| 1370 | 1375 | { |
| 1371 | 1376 | char *p = NULL; |
| 1372 | 1377 | int len, ret, oldlen = 0; |
| @@ -1389,9 +1394,8 @@ static void * mainloop (void UNUSED_ATTR *unused) · 16 unmodified lines | ||
| 1389 | 1394 | readdata (state.csock, p, len); |
| 1390 | 1395 | p[len] = 0; |
| 1391 | 1396 | |
| 1392 | −#define CASE(n) else if (!strncmp (#n, p, sizeof (#n) - 1)) | |
| 1393 | − if (0) ; | |
| 1394 | − CASE (open) { | |
| 1397 | + switch (p[len-1]) { | |
| 1398 | + case Copen: { | |
| 1395 | 1399 | int off, usedoccss, ok = 0, layouth; |
| 1396 | 1400 | char *password; |
| 1397 | 1401 | char *filename; |
| @@ -1399,12 +1403,12 @@ static void * mainloop (void UNUSED_ATTR *unused) · 1 unmodified line | ||
| 1399 | 1403 | size_t filenamelen; |
| 1400 | 1404 | |
| 1401 | 1405 | fz_var (ok); |
| 1402 | − ret = sscanf (p + 5, " %d %d %n", &usedoccss, &layouth, &off); | |
| 1406 | + ret = sscanf (p, " %d %d %n", &usedoccss, &layouth, &off); | |
| 1403 | 1407 | if (ret != 2) { |
| 1404 | 1408 | errx (1, "malformed open `%.*s' ret=%d", len, p, ret); |
| 1405 | 1409 | } |
| 1406 | 1410 | |
| 1407 | − filename = p + 5 + off; | |
| 1411 | + filename = p + off; | |
| 1408 | 1412 | filenamelen = strlen (filename); |
| 1409 | 1413 | password = filename + filenamelen + 1; |
| 1410 | 1414 | |
| @@ -1431,11 +1435,12 @@ static void * mainloop (void UNUSED_ATTR *unused) · 20 unmodified lines | ||
| 1431 | 1435 | } |
| 1432 | 1436 | unlock ("open"); |
| 1433 | 1437 | state.needoutline = ok; |
| 1438 | + break; | |
| 1434 | 1439 | } |
| 1435 | − CASE (cs) { | |
| 1440 | + case Ccs: { | |
| 1436 | 1441 | int i, colorspace; |
| 1437 | 1442 | |
| 1438 | − ret = sscanf (p + 2, " %d", &colorspace); | |
| 1443 | + ret = sscanf (p, " %d", &colorspace); | |
| 1439 | 1444 | if (ret != 1) { |
| 1440 | 1445 | errx (1, "malformed cs `%.*s' ret=%d", len, p, ret); |
| 1441 | 1446 | } |
| @@ -1446,41 +1451,44 @@ static void * mainloop (void UNUSED_ATTR *unused) · 4 unmodified lines | ||
| 1446 | 1451 | state.tex.owners[i].slice = NULL; |
| 1447 | 1452 | } |
| 1448 | 1453 | unlock ("cs"); |
| 1454 | + break; | |
| 1449 | 1455 | } |
| 1450 | − CASE (freepage) { | |
| 1456 | + case Cfreepage: { | |
| 1451 | 1457 | void *ptr; |
| 1452 | 1458 | |
| 1453 | − ret = sscanf (p + 8, " %" SCNxPTR, (uintptr_t *) &ptr); | |
| 1459 | + ret = sscanf (p, " %" SCNxPTR, (uintptr_t *) &ptr); | |
| 1454 | 1460 | if (ret != 1) { |
| 1455 | 1461 | errx (1, "malformed freepage `%.*s' ret=%d", len, p, ret); |
| 1456 | 1462 | } |
| 1457 | 1463 | lock ("freepage"); |
| 1458 | 1464 | freepage (ptr); |
| 1459 | 1465 | unlock ("freepage"); |
| 1466 | + break; | |
| 1460 | 1467 | } |
| 1461 | − CASE (freetile) { | |
| 1468 | + case Cfreetile: { | |
| 1462 | 1469 | void *ptr; |
| 1463 | 1470 | |
| 1464 | − ret = sscanf (p + 8, " %" SCNxPTR, (uintptr_t *) &ptr); | |
| 1471 | + ret = sscanf (p, " %" SCNxPTR, (uintptr_t *) &ptr); | |
| 1465 | 1472 | if (ret != 1) { |
| 1466 | 1473 | errx (1, "malformed freetile `%.*s' ret=%d", len, p, ret); |
| 1467 | 1474 | } |
| 1468 | 1475 | lock ("freetile"); |
| 1469 | 1476 | freetile (ptr); |
| 1470 | 1477 | unlock ("freetile"); |
| 1478 | + break; | |
| 1471 | 1479 | } |
| 1472 | − CASE (search) { | |
| 1480 | + case Csearch: { | |
| 1473 | 1481 | int icase, pageno, y, len2, forward; |
| 1474 | 1482 | char *pattern; |
| 1475 | 1483 | regex_t re; |
| 1476 | 1484 | |
| 1477 | − ret = sscanf (p + 6, " %d %d %d %d,%n", | |
| 1485 | + ret = sscanf (p, " %d %d %d %d,%n", | |
| 1478 | 1486 | &icase, &pageno, &y, &forward, &len2); |
| 1479 | 1487 | if (ret != 4) { |
| 1480 | 1488 | errx (1, "malformed search `%s' ret=%d", p, ret); |
| 1481 | 1489 | } |
| 1482 | 1490 | |
| 1483 | − pattern = p + 6 + len2; | |
| 1491 | + pattern = p + len2; | |
| 1484 | 1492 | ret = regcomp (&re, pattern, |
| 1485 | 1493 | REG_EXTENDED | (icase ? REG_ICASE : 0)); |
| 1486 | 1494 | if (ret) { |
| @@ -1496,12 +1504,13 @@ static void * mainloop (void UNUSED_ATTR *unused) · 9 unmodified lines | ||
| 1496 | 1504 | unlock ("search"); |
| 1497 | 1505 | regfree (&re); |
| 1498 | 1506 | } |
| 1507 | + break; | |
| 1499 | 1508 | } |
| 1500 | − CASE (geometry) { | |
| 1509 | + case Cgeometry: { | |
| 1501 | 1510 | int w, h, fitmodel; |
| 1502 | 1511 | |
| 1503 | 1512 | printd ("clear"); |
| 1504 | − ret = sscanf (p + 8, " %d %d %d", &w, &h, &fitmodel); | |
| 1513 | + ret = sscanf (p, " %d %d %d", &w, &h, &fitmodel); | |
| 1505 | 1514 | if (ret != 3) { |
| 1506 | 1515 | errx (1, "malformed geometry `%.*s' ret=%d", len, p, ret); |
| 1507 | 1516 | } |
| @@ -1521,16 +1530,16 @@ static void * mainloop (void UNUSED_ATTR *unused) · 13 unmodified lines | ||
| 1521 | 1530 | state.gen++; |
| 1522 | 1531 | unlock ("geometry"); |
| 1523 | 1532 | printd ("continue %d", state.pagecount); |
| 1533 | + break; | |
| 1524 | 1534 | } |
| 1525 | − CASE (reqlayout) { | |
| 1535 | + case Creqlayout: { | |
| 1526 | 1536 | char *nameddest; |
| 1527 | 1537 | int rotate, off, h; |
| 1528 | 1538 | int fitmodel; |
| 1529 | 1539 | pdf_document *pdf; |
| 1530 | 1540 | |
| 1531 | 1541 | printd ("clear"); |
| 1532 | − ret = sscanf (p + 9, " %d %d %d %n", | |
| 1533 | − &rotate, &fitmodel, &h, &off); | |
| 1542 | + ret = sscanf (p, " %d %d %d %n", &rotate, &fitmodel, &h, &off); | |
| 1534 | 1543 | if (ret != 3) { |
| 1535 | 1544 | errx (1, "bad reqlayout line `%.*s' ret=%d", len, p, ret); |
| 1536 | 1545 | } |
| @@ -1545,7 +1554,7 @@ static void * mainloop (void UNUSED_ATTR *unused) · 8 unmodified lines | ||
| 1545 | 1554 | layout (); |
| 1546 | 1555 | process_outline (); |
| 1547 | 1556 | |
| 1548 | − nameddest = p + 9 + off; | |
| 1557 | + nameddest = p + off; | |
| 1549 | 1558 | if (pdf && nameddest && *nameddest) { |
| 1550 | 1559 | fz_point xy; |
| 1551 | 1560 | struct pagedim *pdim; |
| @@ -1559,13 +1568,14 @@ static void * mainloop (void UNUSED_ATTR *unused) · 7 unmodified lines | ||
| 1559 | 1568 | state.gen++; |
| 1560 | 1569 | unlock ("reqlayout"); |
| 1561 | 1570 | printd ("continue %d", state.pagecount); |
| 1571 | + break; | |
| 1562 | 1572 | } |
| 1563 | − CASE (page) { | |
| 1573 | + case Cpage: { | |
| 1564 | 1574 | double a, b; |
| 1565 | 1575 | struct page *page; |
| 1566 | 1576 | int pageno, pindex; |
| 1567 | 1577 | |
| 1568 | − ret = sscanf (p + 4, " %d %d", &pageno, &pindex); | |
| 1578 | + ret = sscanf (p, " %d %d", &pageno, &pindex); | |
| 1569 | 1579 | if (ret != 2) { |
| 1570 | 1580 | errx (1, "bad page line `%.*s' ret=%d", len, p, ret); |
| 1571 | 1581 | } |
| @@ -1577,15 +1587,16 @@ static void * mainloop (void UNUSED_ATTR *unused) · 5 unmodified lines | ||
| 1577 | 1587 | unlock ("page"); |
| 1578 | 1588 | |
| 1579 | 1589 | printd ("page %" PRIxPTR " %f", (uintptr_t) page, b - a); |
| 1590 | + break; | |
| 1580 | 1591 | } |
| 1581 | − CASE (tile) { | |
| 1592 | + case Ctile: { | |
| 1582 | 1593 | int x, y, w, h; |
| 1583 | 1594 | struct page *page; |
| 1584 | 1595 | struct tile *tile; |
| 1585 | 1596 | double a, b; |
| 1586 | 1597 | void *data; |
| 1587 | 1598 | |
| 1588 | − ret = sscanf (p + 4, " %" SCNxPTR " %d %d %d %d %" SCNxPTR, | |
| 1599 | + ret = sscanf (p, " %" SCNxPTR " %d %d %d %d %" SCNxPTR, | |
| 1589 | 1600 | (uintptr_t *) &page, &x, &y, &w, &h, |
| 1590 | 1601 | (uintptr_t *) &data); |
| 1591 | 1602 | if (ret != 6) { |
| @@ -1602,12 +1613,13 @@ static void * mainloop (void UNUSED_ATTR *unused) · 10 unmodified lines | ||
| 1602 | 1613 | x, y, (uintptr_t) (tile), |
| 1603 | 1614 | tile->w * tile->h * tile->pixmap->n, |
| 1604 | 1615 | b - a); |
| 1616 | + break; | |
| 1605 | 1617 | } |
| 1606 | − CASE (trimset) { | |
| 1618 | + case Ctrimset: { | |
| 1607 | 1619 | fz_irect fuzz; |
| 1608 | 1620 | int trimmargins; |
| 1609 | 1621 | |
| 1610 | − ret = sscanf (p + 7, " %d %d %d %d %d", | |
| 1622 | + ret = sscanf (p, " %d %d %d %d %d", | |
| 1611 | 1623 | &trimmargins, &fuzz.x0, &fuzz.y0, &fuzz.x1, &fuzz.y1); |
| 1612 | 1624 | if (ret != 5) { |
| 1613 | 1625 | errx (1, "malformed trimset `%.*s' ret=%d", len, p, ret); |
| @@ -1620,12 +1632,13 @@ static void * mainloop (void UNUSED_ATTR *unused) · 6 unmodified lines | ||
| 1620 | 1632 | state.trimfuzz = fuzz; |
| 1621 | 1633 | } |
| 1622 | 1634 | unlock ("trimset"); |
| 1635 | + break; | |
| 1623 | 1636 | } |
| 1624 | − CASE (settrim) { | |
| 1637 | + case Csettrim: { | |
| 1625 | 1638 | fz_irect fuzz; |
| 1626 | 1639 | int trimmargins; |
| 1627 | 1640 | |
| 1628 | − ret = sscanf (p + 7, " %d %d %d %d %d", | |
| 1641 | + ret = sscanf (p, " %d %d %d %d %d", | |
| 1629 | 1642 | &trimmargins, &fuzz.x0, &fuzz.y0, &fuzz.x1, &fuzz.y1); |
| 1630 | 1643 | if (ret != 5) { |
| 1631 | 1644 | errx (1, "malformed settrim `%.*s' ret=%d", len, p, ret); |
| @@ -1646,11 +1659,12 @@ static void * mainloop (void UNUSED_ATTR *unused) · 14 unmodified lines | ||
| 1646 | 1659 | process_outline (); |
| 1647 | 1660 | unlock ("settrim"); |
| 1648 | 1661 | printd ("continue %d", state.pagecount); |
| 1662 | + break; | |
| 1649 | 1663 | } |
| 1650 | − CASE (sliceh) { | |
| 1664 | + case Csliceh: { | |
| 1651 | 1665 | int h; |
| 1652 | 1666 | |
| 1653 | − ret = sscanf (p + 6, " %d", &h); | |
| 1667 | + ret = sscanf (p, " %d", &h); | |
| 1654 | 1668 | if (ret != 1) { |
| 1655 | 1669 | errx (1, "malformed sliceh `%.*s' ret=%d", len, p, ret); |
| 1656 | 1670 | } |
| @@ -1662,12 +1676,12 @@ static void * mainloop (void UNUSED_ATTR *unused) · 5 unmodified lines | ||
| 1662 | 1676 | state.tex.owners[i].slice = NULL; |
| 1663 | 1677 | } |
| 1664 | 1678 | } |
| 1679 | + break; | |
| 1665 | 1680 | } |
| 1666 | − CASE (interrupt) { | |
| 1681 | + case Cinterrupt: | |
| 1667 | 1682 | printd ("vmsg interrupted"); |
| 1668 | − } | |
| 1669 | −#undef CASE | |
| 1670 | − else { | |
| 1683 | + break; | |
| 1684 | + default: | |
| 1671 | 1685 | errx (1, "unknown command %.*s", len, p); |
| 1672 | 1686 | } |
| 1673 | 1687 | } |
| @@ -184,10 +184,27 @@ let intentry_with_suffix text key = · 183 unmodified lines | ||
| 184 | 184 | TEcont text |
| 185 | 185 | ;; |
| 186 | 186 | |
| 187 | −let wcmd fmt = | |
| 187 | +module C = struct | |
| 188 | + let dopen = '\000';; | |
| 189 | + let cs = '\001';; | |
| 190 | + let freepage = '\002';; | |
| 191 | + let freetile = '\003';; | |
| 192 | + let search = '\004';; | |
| 193 | + let geometry = '\005';; | |
| 194 | + let reqlayout = '\006';; | |
| 195 | + let page = '\007';; | |
| 196 | + let tile = '\008';; | |
| 197 | + let trimset = '\009';; | |
| 198 | + let settrim = '\010';; | |
| 199 | + let sliceh = '\011';; | |
| 200 | + let interrupt = '\012';; | |
| 201 | +end;; | |
| 202 | + | |
| 203 | +let wcmd cmd fmt = | |
| 188 | 204 | let b = Buffer.create 16 in |
| 189 | 205 | Printf.kbprintf |
| 190 | 206 | (fun b -> |
| 207 | + Buffer.add_char b cmd; | |
| 191 | 208 | let b = Buffer.to_bytes b in |
| 192 | 209 | Ffi.wcmd state.ss b @@ Bytes.length b |
| 193 | 210 | ) b fmt |
| @@ -521,7 +538,7 @@ let tilepage n p layout = · 327 unmodified lines | ||
| 521 | 538 | then Ffi.getpbo w h conf.colorspace |
| 522 | 539 | else ~< "0" |
| 523 | 540 | in |
| 524 | − wcmd "tile %s %d %d %d %d %s" (~> p) x y w h (~> pbo); | |
| 541 | + wcmd C.tile "%s %d %d %d %d %s" (~> p) x y w h (~> pbo); | |
| 525 | 542 | state.currently <- |
| 526 | 543 | Tiling ( |
| 527 | 544 | l, p, conf.colorspace, conf.angle, |
| @@ -554,7 +571,7 @@ let load pages = · 26 unmodified lines | ||
| 554 | 571 | | l :: rest -> |
| 555 | 572 | begin match getopaque l.pageno with |
| 556 | 573 | | None -> |
| 557 | − wcmd "page %d %d" l.pageno l.pagedimno; | |
| 574 | + wcmd C.page "%d %d" l.pageno l.pagedimno; | |
| 558 | 575 | state.currently <- Loading (l, state.gen); |
| 559 | 576 | | Some opaque -> |
| 560 | 577 | tilepage l.pageno opaque pages; |
| @@ -730,7 +747,7 @@ let invalidate s f = · 169 unmodified lines | ||
| 730 | 747 | ;; |
| 731 | 748 | |
| 732 | 749 | let flushpages () = |
| 733 | − Hashtbl.iter (fun _ opaque -> wcmd "freepage %s" (~> opaque)) state.pagemap; | |
| 750 | + Hashtbl.iter (fun _ opaque -> wcmd C.freepage "%s" (~> opaque)) state.pagemap; | |
| 734 | 751 | Hashtbl.clear state.pagemap; |
| 735 | 752 | ;; |
| 736 | 753 | |
| @@ -738,7 +755,7 @@ let flushtiles () = · 1 unmodified line | ||
| 738 | 755 | if not (Queue.is_empty state.tilelru) |
| 739 | 756 | then ( |
| 740 | 757 | Queue.iter (fun (k, p, s) -> |
| 741 | − wcmd "freetile %s" (~> p); | |
| 758 | + wcmd C.freetile "%s" (~> p); | |
| 742 | 759 | state.memused <- state.memused - s; |
| 743 | 760 | Hashtbl.remove state.tilemap k; |
| 744 | 761 | ) state.tilelru; |
| @@ -782,12 +799,12 @@ let opendoc path password = · 37 unmodified lines | ||
| 782 | 799 | else state.origin |
| 783 | 800 | in |
| 784 | 801 | Wsi.settitle ("llpp " ^ mbtoutf8 (Filename.basename titlepath)); |
| 785 | − wcmd "open %d %d %s\000%s\000%s\000" | |
| 802 | + wcmd C.dopen "%d %d %s\000%s\000%s\000" | |
| 786 | 803 | (btod conf.usedoccss) !layouth |
| 787 | 804 | path password conf.css; |
| 788 | 805 | invalidate "reqlayout" |
| 789 | 806 | (fun () -> |
| 790 | − wcmd "reqlayout %d %d %d %s\000" | |
| 807 | + wcmd C.reqlayout " %d %d %d %s\000" | |
| 791 | 808 | conf.angle (FMTE.to_int conf.fitmodel) |
| 792 | 809 | (stateh state.winh) state.nameddest |
| 793 | 810 | ); |
| @@ -987,7 +1004,7 @@ let reshape ?(firsttime=false) w h = · 193 unmodified lines | ||
| 987 | 1004 | | Cmulti ((c, _, _), _) -> (w - (c-1)*conf.interpagespace) / c |
| 988 | 1005 | | Csplit (c, _) -> w * c |
| 989 | 1006 | in |
| 990 | − wcmd "geometry %d %d %d" w (stateh h) (FMTE.to_int conf.fitmodel) | |
| 1007 | + wcmd C.geometry "%d %d %d" w (stateh h) (FMTE.to_int conf.fitmodel) | |
| 991 | 1008 | ); |
| 992 | 1009 | ;; |
| 993 | 1010 | |
| @@ -1016,7 +1033,7 @@ let gctiles () = · 22 unmodified lines | ||
| 1016 | 1033 | then Queue.push lruitem state.tilelru |
| 1017 | 1034 | else ( |
| 1018 | 1035 | Ffi.freepbo p; |
| 1019 | − wcmd "freetile %s" (~> p); | |
| 1036 | + wcmd C.freetile "%s" (~> p); | |
| 1020 | 1037 | state.memused <- state.memused - s; |
| 1021 | 1038 | state.uioh#infochanged Memused; |
| 1022 | 1039 | Hashtbl.remove state.tilemap k; |
| @@ -1214,7 +1231,7 @@ let act cmds = · 191 unmodified lines | ||
| 1214 | 1231 | Hashtbl.fold (fun ((pageno, _) as key) opaque accu -> |
| 1215 | 1232 | if not (IntSet.mem pageno set) |
| 1216 | 1233 | then ( |
| 1217 | − wcmd "freepage %s" (~> opaque); | |
| 1234 | + wcmd C.freepage "%s" (~> opaque); | |
| 1218 | 1235 | key :: accu |
| 1219 | 1236 | ) |
| 1220 | 1237 | else accu |
| @@ -1279,7 +1296,7 @@ let act cmds = · 58 unmodified lines | ||
| 1279 | 1296 | Ffi.unmappbo opaque; |
| 1280 | 1297 | if tilew != conf.tilew || tileh != conf.tileh |
| 1281 | 1298 | then ( |
| 1282 | − wcmd "freetile %s" (~> opaque); | |
| 1299 | + wcmd C.freetile "%s" (~> opaque); | |
| 1283 | 1300 | state.currently <- Idle; |
| 1284 | 1301 | load state.layout; |
| 1285 | 1302 | ) |
| @@ -1424,7 +1441,7 @@ let search pattern forward = · 138 unmodified lines | ||
| 1424 | 1441 | | [] -> 0, 0 |
| 1425 | 1442 | | l :: _ -> l.pageno, (l.pagey + if forward then 0 else 0*l.pagevh) |
| 1426 | 1443 | in |
| 1427 | − wcmd "search %d %d %d %d,%s\000" | |
| 1444 | + wcmd C.search "%d %d %d %d,%s\000" | |
| 1428 | 1445 | (btod conf.icase) pn py (btod forward) pattern; |
| 1429 | 1446 | ;; |
| 1430 | 1447 | |
| @@ -1488,7 +1505,7 @@ let reqlayout angle fitmodel = · 57 unmodified lines | ||
| 1488 | 1505 | ); |
| 1489 | 1506 | conf.fitmodel <- fitmodel; |
| 1490 | 1507 | invalidate "reqlayout" |
| 1491 | − (fun () -> wcmd "reqlayout %d %d %d" | |
| 1508 | + (fun () -> wcmd C.reqlayout "%d %d %d" | |
| 1492 | 1509 | conf.angle (FMTE.to_int conf.fitmodel) (stateh state.winh)); |
| 1493 | 1510 | ;; |
| 1494 | 1511 | |
| @@ -1499,7 +1516,7 @@ let settrim trimmargins trimfuzz = · 4 unmodified lines | ||
| 1499 | 1516 | conf.trimfuzz <- trimfuzz; |
| 1500 | 1517 | let x0, y0, x1, y1 = trimfuzz in |
| 1501 | 1518 | invalidate "settrim" |
| 1502 | − (fun () -> wcmd "settrim %d %d %d %d %d" | |
| 1519 | + (fun () -> wcmd C.settrim "%d %d %d %d %d" | |
| 1503 | 1520 | (btod conf.trimmargins) x0 y0 x1 y1); |
| 1504 | 1521 | flushpages (); |
| 1505 | 1522 | ;; |
| @@ -1985,7 +2002,7 @@ let gotohist (path, c, bookmarks, x, anchor, origin) = · 479 unmodified lines | ||
| 1985 | 2002 | setconf conf c; |
| 1986 | 2003 | Ffi.setdcf conf.dcf; |
| 1987 | 2004 | let x0, y0, x1, y1 = conf.trimfuzz in |
| 1988 | − wcmd "trimset %d %d %d %d %d" (btod conf.trimmargins) x0 y0 x1 y1; | |
| 2005 | + wcmd C.trimset "%d %d %d %d %d" (btod conf.trimmargins) x0 y0 x1 y1; | |
| 1989 | 2006 | Wsi.reshape c.cwinw c.cwinh; |
| 1990 | 2007 | opendoc path origin; |
| 1991 | 2008 | setzoom c.zoom; |
| @@ -2503,7 +2520,7 @@ let enterinfomode = · 511 unmodified lines | ||
| 2503 | 2520 | (fun () -> conf.sliceheight) |
| 2504 | 2521 | (fun v -> |
| 2505 | 2522 | conf.sliceheight <- v; |
| 2506 | − wcmd "sliceh %d" conf.sliceheight; | |
| 2523 | + wcmd C.sliceh "%d" conf.sliceheight; | |
| 2507 | 2524 | ); |
| 2508 | 2525 | src#int "anti-aliasing level" |
| 2509 | 2526 | (fun () -> conf.aalevel) |
| @@ -2566,7 +2583,7 @@ let enterinfomode = · 56 unmodified lines | ||
| 2566 | 2583 | (fun () -> CSTE.to_string conf.colorspace) |
| 2567 | 2584 | (fun v -> |
| 2568 | 2585 | conf.colorspace <- CSTE.of_int v; |
| 2569 | − wcmd "cs %d" v; | |
| 2586 | + wcmd C.cs "%d" v; | |
| 2570 | 2587 | load state.layout; |
| 2571 | 2588 | ); |
| 2572 | 2589 | src#paxmark "pax mark method" |
| @@ -2870,7 +2887,7 @@ let enterannotmode opaque slinkindex = · 297 unmodified lines | ||
| 2870 | 2887 | else split accu b (i+1) |
| 2871 | 2888 | in |
| 2872 | 2889 | let cleanup () = |
| 2873 | − wcmd "freepage %s" (~> opaque); | |
| 2890 | + wcmd C.freepage "%s" (~> opaque); | |
| 2874 | 2891 | let keys = |
| 2875 | 2892 | Hashtbl.fold (fun key opaque' accu -> |
| 2876 | 2893 | if opaque' = opaque' |
| @@ -3948,7 +3965,7 @@ let linknavkeyboard key mask linknav = · 1071 unmodified lines | ||
| 3948 | 3965 | |
| 3949 | 3966 | let keyboard key mask = |
| 3950 | 3967 | if (key = Char.code 'g' && Wsi.withctrl mask) && not (istextentry state.mode) |
| 3951 | − then wcmd "interrupt" | |
| 3968 | + then wcmd C.interrupt "" | |
| 3952 | 3969 | else state.uioh <- state.uioh#key key mask |
| 3953 | 3970 | ;; |
| 3954 | 3971 | |
| @@ -4273,7 +4290,7 @@ let annot inline x y = · 318 unmodified lines | ||
| 4273 | 4290 | | Some (opaque, n, ux, uy) -> |
| 4274 | 4291 | let add text = |
| 4275 | 4292 | Ffi.addannot opaque ux uy text; |
| 4276 | − wcmd "freepage %s" (~> opaque); | |
| 4293 | + wcmd C.freepage "%s" (~> opaque); | |
| 4277 | 4294 | Hashtbl.remove state.pagemap (n, state.gen); |
| 4278 | 4295 | flushtiles (); |
| 4279 | 4296 | gotoxy state.x state.y |