mirror of
https://github.com/walles/moar.git
synced 2024-09-19 07:58:00 +03:00
parent
a7cba8bb16
commit
6334be7dcc
@ -3,6 +3,7 @@ package m
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -21,6 +22,28 @@ type Token struct {
|
||||
Style tcell.Style
|
||||
}
|
||||
|
||||
// SetManPageFormatFromEnv parses LESS_TERMCAP_xx environment variables and
|
||||
// adapts the moar output accordingly.
|
||||
func SetManPageFormatFromEnv(logger *log.Logger) {
|
||||
// Requested here: https://github.com/walles/moar/issues/14
|
||||
|
||||
lessTermcapMd := os.Getenv("LESS_TERMCAP_md")
|
||||
if lessTermcapMd != "" {
|
||||
manPageBold = _TermcapToStyle(logger, lessTermcapMd)
|
||||
}
|
||||
|
||||
lessTermcapUs := os.Getenv("LESS_TERMCAP_us")
|
||||
if lessTermcapUs != "" {
|
||||
manPageUnderline = _TermcapToStyle(logger, lessTermcapUs)
|
||||
}
|
||||
}
|
||||
|
||||
func _TermcapToStyle(logger *log.Logger, termcap string) tcell.Style {
|
||||
// Add a character to be sure we have one to take the format from
|
||||
tokens, _ := TokensFromString(logger, termcap+"x")
|
||||
return tokens[len(tokens)-1].Style
|
||||
}
|
||||
|
||||
// TokensFromString turns a (formatted) string into a series of tokens,
|
||||
// and an unformatted string
|
||||
func TokensFromString(logger *log.Logger, s string) ([]Token, *string) {
|
||||
|
@ -576,6 +576,8 @@ func (p *Pager) StartPaging(logger *log.Logger, screen tcell.Screen) {
|
||||
// We want to match the terminal theme, see screen.Init() source code
|
||||
os.Setenv("TCELL_TRUECOLOR", "disable")
|
||||
|
||||
SetManPageFormatFromEnv(logger)
|
||||
|
||||
if e := screen.Init(); e != nil {
|
||||
fmt.Fprintf(os.Stderr, "%v\n", e)
|
||||
os.Exit(1)
|
||||
|
Loading…
Reference in New Issue
Block a user