From fe2cbb18ad01cc0d9d7b060a20d430b6ce86aa10 Mon Sep 17 00:00:00 2001 From: wandalen Date: Fri, 8 Nov 2024 09:40:00 +0200 Subject: [PATCH] [more] fixed problems --- .github/workflows/TestingCI.yml | 2 -- .gitignore | 1 + display/more.rs | 58 +++++++++++++++++++++++++-------- display/tags | 8 +++++ 4 files changed, 53 insertions(+), 16 deletions(-) diff --git a/.github/workflows/TestingCI.yml b/.github/workflows/TestingCI.yml index 417fb6f6d..6367a852c 100644 --- a/.github/workflows/TestingCI.yml +++ b/.github/workflows/TestingCI.yml @@ -2,8 +2,6 @@ name: Rust on: push: - branches: - - more pull_request: env: diff --git a/.gitignore b/.gitignore index 86c056e5a..cde3fc607 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ target/ + diff --git a/display/more.rs b/display/more.rs index 2819263ac..3ed146004 100644 --- a/display/more.rs +++ b/display/more.rs @@ -8,7 +8,7 @@ // use clap::Parser; -use gettextrs::{bind_textdomain_codeset, setlocale, textdomain, LocaleCategory}; +use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory}; use libc::{ getegid, getgid, getuid, regcomp, regex_t, regexec, setgid, setuid, REG_ICASE, REG_NOMATCH, }; @@ -42,53 +42,83 @@ static NEED_QUIT: Mutex = Mutex::new(false); #[derive(Parser)] #[command(version, about = "more - display files on a page-by-page basis")] struct Args { - // Enable interactive session test - #[arg(long = "test", help = "Enable interactive session test.")] - test: bool, - /// Do not scroll, display text and clean line ends - #[arg(short = 'c', help = "Do not scroll, display text and clean line ends.")] + #[arg( + short = 'c', + long = "print-over", + help = gettext("Do not scroll, display text and clean line ends") + )] print_over: bool, /// Exit on end-of-file - #[arg(short = 'e', help = "Exit on end-of-file.")] + #[arg( + short = 'e', + long = "exit-on-eof", + help = gettext("Exit on end-of-file") + )] exit_on_eof: bool, /// Perform pattern matching in searches without regard to case #[arg( short = 'i', - help = "Perform pattern matching in searches without regard to case." + long = "ignore-case", + help = gettext("Perform pattern matching in searches without regard to case") )] case_insensitive: bool, /// Execute the more command(s) in the command arguments in the order specified #[arg( short = 'p', - help = "Execute the more command(s) in the command arguments in the order specified." + long = "execute", + help = gettext("Execute the more command(s) in the command arguments in the order specified") )] commands: Option, /// Squeeze multiple blank lines into one - #[arg(short = 's', help = "Squeeze multiple blank lines into one.")] + #[arg( + short = 's', + long = "squeeze", + help = gettext("Squeeze multiple blank lines into one") + )] squeeze: bool, /// Write the screenful of the file containing the tag named by the tagstring argument #[arg( short = 't', - help = "Write the screenful of the file containing the tag named by the tagstring argument." + long = "tag", + help = gettext("Write the screenful of the file containing the tag named by the tagstring argument") )] tag: Option, /// Suppress underlining and bold - #[arg(short = 'u', help = "Suppress underlining and bold.")] + #[arg( + short = 'u', + long = "plain", + help = gettext("Suppress underlining and bold") + )] plain: bool, /// The number of lines per screenful - #[arg(short = 'n', help = "The number of lines per screenful.")] + #[arg( + short = 'n', + long = "lines", + help = gettext("The number of lines per screenful") + )] lines: Option, + /// Enable interactive session test + #[arg( + short = 'd', + long = "test", + help = gettext("Enable interactive session test") + )] + test: bool, + /// A pathnames of an input files - #[arg(name = "FILE", help = "A pathnames of an input files.")] + #[arg( + name = "FILES", + help = gettext("A pathnames of input files") + )] input_files: Vec, } diff --git a/display/tags b/display/tags index 26d9ca157..7b452a367 100644 --- a/display/tags +++ b/display/tags @@ -1,3 +1,11 @@ +// This file used for testing `go to tag` command of more utility. +// `go to tag` command has attribute `tagstring` that contains name +// or pattern of searched code object. This tags file contains +// file and line where are located `tagstring` object `SeekPositions` +// that used in tests. More use `find` utility to find tags files +// and then `grep` utility search `tagstring` object over tags files +// content. + !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ !_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/