mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
pr: add column separator option
This commit is contained in:
parent
69371ce3ce
commit
dd07aed4d1
3 changed files with 229 additions and 1 deletions
17
src/pr/pr.rs
17
src/pr/pr.rs
|
@ -50,6 +50,7 @@ static FORM_FEED_OPTION: &str = "F";
|
|||
static COLUMN_WIDTH_OPTION: &str = "w";
|
||||
static ACROSS_OPTION: &str = "a";
|
||||
static COLUMN_OPTION: &str = "column";
|
||||
static COLUMN_SEPARATOR_OPTION: &str = "s";
|
||||
static FILE_STDIN: &str = "-";
|
||||
static READ_BUFFER_SIZE: usize = 1024 * 64;
|
||||
static DEFAULT_COLUMN_WIDTH: usize = 72;
|
||||
|
@ -272,6 +273,16 @@ pub fn uumain(args: Vec<String>) -> i32 {
|
|||
Occur::Optional,
|
||||
);
|
||||
|
||||
opts.opt(
|
||||
COLUMN_SEPARATOR_OPTION,
|
||||
"",
|
||||
"Separate text columns by the single character char instead of by the appropriate number of <space>s
|
||||
(default for char is the <tab> character).",
|
||||
"char",
|
||||
HasArg::Yes,
|
||||
Occur::Optional,
|
||||
);
|
||||
|
||||
opts.optflag("", "help", "display this help and exit");
|
||||
opts.optflag("V", "version", "output version information and exit");
|
||||
|
||||
|
@ -497,6 +508,10 @@ fn build_options(matches: &Matches, path: &String) -> Result<OutputOptions, PrEr
|
|||
|
||||
let across_mode = matches.opt_present(ACROSS_OPTION);
|
||||
|
||||
let column_separator = matches.opt_str(COLUMN_SEPARATOR_OPTION)
|
||||
.unwrap_or(DEFAULT_COLUMN_SEPARATOR.to_string());
|
||||
|
||||
|
||||
let column_mode_options = match matches.opt_str(COLUMN_OPTION).map(|i| {
|
||||
i.parse::<usize>()
|
||||
}) {
|
||||
|
@ -507,7 +522,7 @@ fn build_options(matches: &Matches, path: &String) -> Result<OutputOptions, PrEr
|
|||
Some(x) => Some(x),
|
||||
None => Some(DEFAULT_COLUMN_WIDTH)
|
||||
},
|
||||
column_separator: DEFAULT_COLUMN_SEPARATOR.to_string(),
|
||||
column_separator,
|
||||
across_mode,
|
||||
})
|
||||
}
|
||||
|
|
198
tests/fixtures/pr/column_across_sep.log.expected
vendored
Normal file
198
tests/fixtures/pr/column_across_sep.log.expected
vendored
Normal file
|
@ -0,0 +1,198 @@
|
|||
|
||||
|
||||
{last_modified_time} column.log Page 3
|
||||
|
||||
|
||||
337 337 | 338 338 | 339 339
|
||||
340 340 | 341 341 | 342 342
|
||||
343 343 | 344 344 | 345 345
|
||||
346 346 | 347 347 | 348 348
|
||||
349 349 | 350 350 | 351 351
|
||||
352 352 | 353 353 | 354 354
|
||||
355 355 | 356 356 | 357 357
|
||||
358 358 | 359 359 | 360 360
|
||||
361 361 | 362 362 | 363 363
|
||||
364 364 | 365 365 | 366 366
|
||||
367 367 | 368 368 | 369 369
|
||||
370 370 | 371 371 | 372 372
|
||||
373 373 | 374 374 | 375 375
|
||||
376 376 | 377 377 | 378 378
|
||||
379 379 | 380 380 | 381 381
|
||||
382 382 | 383 383 | 384 384
|
||||
385 385 | 386 386 | 387 387
|
||||
388 388 | 389 389 | 390 390
|
||||
391 391 | 392 392 | 393 393
|
||||
394 394 | 395 395 | 396 396
|
||||
397 397 | 398 398 | 399 399
|
||||
400 400 | 401 401 | 402 402
|
||||
403 403 | 404 404 | 405 405
|
||||
406 406 | 407 407 | 408 408
|
||||
409 409 | 410 410 | 411 411
|
||||
412 412 | 413 413 | 414 414
|
||||
415 415 | 416 416 | 417 417
|
||||
418 418 | 419 419 | 420 420
|
||||
421 421 | 422 422 | 423 423
|
||||
424 424 | 425 425 | 426 426
|
||||
427 427 | 428 428 | 429 429
|
||||
430 430 | 431 431 | 432 432
|
||||
433 433 | 434 434 | 435 435
|
||||
436 436 | 437 437 | 438 438
|
||||
439 439 | 440 440 | 441 441
|
||||
442 442 | 443 443 | 444 444
|
||||
445 445 | 446 446 | 447 447
|
||||
448 448 | 449 449 | 450 450
|
||||
451 451 | 452 452 | 453 453
|
||||
454 454 | 455 455 | 456 456
|
||||
457 457 | 458 458 | 459 459
|
||||
460 460 | 461 461 | 462 462
|
||||
463 463 | 464 464 | 465 465
|
||||
466 466 | 467 467 | 468 468
|
||||
469 469 | 470 470 | 471 471
|
||||
472 472 | 473 473 | 474 474
|
||||
475 475 | 476 476 | 477 477
|
||||
478 478 | 479 479 | 480 480
|
||||
481 481 | 482 482 | 483 483
|
||||
484 484 | 485 485 | 486 486
|
||||
487 487 | 488 488 | 489 489
|
||||
490 490 | 491 491 | 492 492
|
||||
493 493 | 494 494 | 495 495
|
||||
496 496 | 497 497 | 498 498
|
||||
499 499 | 500 500 | 501 501
|
||||
502 502 | 503 503 | 504 504
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{last_modified_time} column.log Page 4
|
||||
|
||||
|
||||
505 505 | 506 506 | 507 507
|
||||
508 508 | 509 509 | 510 510
|
||||
511 511 | 512 512 | 513 513
|
||||
514 514 | 515 515 | 516 516
|
||||
517 517 | 518 518 | 519 519
|
||||
520 520 | 521 521 | 522 522
|
||||
523 523 | 524 524 | 525 525
|
||||
526 526 | 527 527 | 528 528
|
||||
529 529 | 530 530 | 531 531
|
||||
532 532 | 533 533 | 534 534
|
||||
535 535 | 536 536 | 537 537
|
||||
538 538 | 539 539 | 540 540
|
||||
541 541 | 542 542 | 543 543
|
||||
544 544 | 545 545 | 546 546
|
||||
547 547 | 548 548 | 549 549
|
||||
550 550 | 551 551 | 552 552
|
||||
553 553 | 554 554 | 555 555
|
||||
556 556 | 557 557 | 558 558
|
||||
559 559 | 560 560 | 561 561
|
||||
562 562 | 563 563 | 564 564
|
||||
565 565 | 566 566 | 567 567
|
||||
568 568 | 569 569 | 570 570
|
||||
571 571 | 572 572 | 573 573
|
||||
574 574 | 575 575 | 576 576
|
||||
577 577 | 578 578 | 579 579
|
||||
580 580 | 581 581 | 582 582
|
||||
583 583 | 584 584 | 585 585
|
||||
586 586 | 587 587 | 588 588
|
||||
589 589 | 590 590 | 591 591
|
||||
592 592 | 593 593 | 594 594
|
||||
595 595 | 596 596 | 597 597
|
||||
598 598 | 599 599 | 600 600
|
||||
601 601 | 602 602 | 603 603
|
||||
604 604 | 605 605 | 606 606
|
||||
607 607 | 608 608 | 609 609
|
||||
610 610 | 611 611 | 612 612
|
||||
613 613 | 614 614 | 615 615
|
||||
616 616 | 617 617 | 618 618
|
||||
619 619 | 620 620 | 621 621
|
||||
622 622 | 623 623 | 624 624
|
||||
625 625 | 626 626 | 627 627
|
||||
628 628 | 629 629 | 630 630
|
||||
631 631 | 632 632 | 633 633
|
||||
634 634 | 635 635 | 636 636
|
||||
637 637 | 638 638 | 639 639
|
||||
640 640 | 641 641 | 642 642
|
||||
643 643 | 644 644 | 645 645
|
||||
646 646 | 647 647 | 648 648
|
||||
649 649 | 650 650 | 651 651
|
||||
652 652 | 653 653 | 654 654
|
||||
655 655 | 656 656 | 657 657
|
||||
658 658 | 659 659 | 660 660
|
||||
661 661 | 662 662 | 663 663
|
||||
664 664 | 665 665 | 666 666
|
||||
667 667 | 668 668 | 669 669
|
||||
670 670 | 671 671 | 672 672
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{last_modified_time} column.log Page 5
|
||||
|
||||
|
||||
673 673 | 674 674 | 675 675
|
||||
676 676 | 677 677 | 678 678
|
||||
679 679 | 680 680 | 681 681
|
||||
682 682 | 683 683 | 684 684
|
||||
685 685 | 686 686 | 687 687
|
||||
688 688 | 689 689 | 690 690
|
||||
691 691 | 692 692 | 693 693
|
||||
694 694 | 695 695 | 696 696
|
||||
697 697 | 698 698 | 699 699
|
||||
700 700 | 701 701 | 702 702
|
||||
703 703 | 704 704 | 705 705
|
||||
706 706 | 707 707 | 708 708
|
||||
709 709 | 710 710 | 711 711
|
||||
712 712 | 713 713 | 714 714
|
||||
715 715 | 716 716 | 717 717
|
||||
718 718 | 719 719 | 720 720
|
||||
721 721 | 722 722 | 723 723
|
||||
724 724 | 725 725 | 726 726
|
||||
727 727 | 728 728 | 729 729
|
||||
730 730 | 731 731 | 732 732
|
||||
733 733 | 734 734 | 735 735
|
||||
736 736 | 737 737 | 738 738
|
||||
739 739 | 740 740 | 741 741
|
||||
742 742 | 743 743 | 744 744
|
||||
745 745 | 746 746 | 747 747
|
||||
748 748 | 749 749 | 750 750
|
||||
751 751 | 752 752 | 753 753
|
||||
754 754 | 755 755 | 756 756
|
||||
757 757 | 758 758 | 759 759
|
||||
760 760 | 761 761 | 762 762
|
||||
763 763 | 764 764 | 765 765
|
||||
766 766 | 767 767 | 768 768
|
||||
769 769 | 770 770 | 771 771
|
||||
772 772 | 773 773 | 774 774
|
||||
775 775 | 776 776 | 777 777
|
||||
778 778 | 779 779 | 780 780
|
||||
781 781 | 782 782 | 783 783
|
||||
784 784 | 785 785 | 786 786
|
||||
787 787 | 788 788 | 789 789
|
||||
790 790 | 791 791 | 792 792
|
||||
793 793 | 794 794 | 795 795
|
||||
796 796 | 797 797 | 798 798
|
||||
799 799 | 800 800 | 801 801
|
||||
802 802 | 803 803 | 804 804
|
||||
805 805 | 806 806 | 807 807
|
||||
808 808 | 809 809 | 810 810
|
||||
811 811 | 812 812 | 813 813
|
||||
814 814 | 815 815 | 816 816
|
||||
817 817 | 818 818 | 819 819
|
||||
820 820 | 821 821 | 822 822
|
||||
823 823 | 824 824 | 825 825
|
||||
826 826 | 827 827 | 828 828
|
||||
829 829 | 830 830 | 831 831
|
||||
832 832 | 833 833 | 834 834
|
||||
835 835 | 836 836 | 837 837
|
||||
838 838 | 839 839 | 840 840
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -324,3 +324,18 @@ fn test_with_column_across_option() {
|
|||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_with_column_across_option_and_column_separator() {
|
||||
let test_file_path = "column.log";
|
||||
let expected_test_file_path = "column_across_sep.log.expected";
|
||||
let mut scenario = new_ucmd!();
|
||||
let value = file_last_modified_time(&scenario, test_file_path);
|
||||
scenario
|
||||
.args(&["--pages=3:5", "--column=3", "-s|", "-a", "-n", test_file_path])
|
||||
.succeeds()
|
||||
.stdout_is_templated_fixture(expected_test_file_path, vec![
|
||||
(&"{last_modified_time}".to_string(), &value),
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue