Skip to content

Commit

Permalink
[more] fixed problems
Browse files Browse the repository at this point in the history
  • Loading branch information
Wandalen committed Nov 8, 2024
1 parent c502809 commit fe2cbb1
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 16 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/TestingCI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Rust

on:
push:
branches:
- more
pull_request:

env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@

target/

58 changes: 44 additions & 14 deletions display/more.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};
Expand Down Expand Up @@ -42,53 +42,83 @@ static NEED_QUIT: Mutex<bool> = 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<String>,

/// 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<String>,

/// 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<u16>,

/// 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<String>,
}

Expand Down
8 changes: 8 additions & 0 deletions display/tags
Original file line number Diff line number Diff line change
@@ -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/
Expand Down

0 comments on commit fe2cbb1

Please sign in to comment.