Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[more] implementation #373

Merged
merged 5 commits into from
Nov 16, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[more] fixed problems
  • Loading branch information
Wandalen committed Nov 8, 2024
commit fe2cbb18ad01cc0d9d7b060a20d430b6ce86aa10
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/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR should not update .gitignore at all?


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")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The string constant should be wrapped inside a gettext() call

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still needs fixing.

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