Hello community, here is the log from the commit of package fbterm for openSUSE:Factory checked in at 2020-10-12 13:58:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fbterm (Old) and /work/SRC/openSUSE:Factory/.fbterm.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fbterm" Mon Oct 12 13:58:30 2020 rev:5 rq:840945 version:1.8 Changes: -------- --- /work/SRC/openSUSE:Factory/fbterm/fbterm.changes 2016-06-20 11:06:59.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.fbterm.new.3486/fbterm.changes 2020-10-12 13:59:38.106224112 +0200 @@ -1,0 +2,10 @@ +Fri Oct 2 23:03:35 UTC 2020 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 1.8 + * The default TERM environment variable value is now "fbterm". + * Allow to choose between "fbterm" or "linux" for TERM + using the "term-is-linux" config directive. + * Added short versions for most command line options. +- Add 0002-Initialize-mTermIsLinux-variable.patch + +------------------------------------------------------------------- @@ -55 +64,0 @@ - Old: ---- fbterm-1.7.0.tar.gz New: ---- 1.8.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fbterm.spec ++++++ --- /var/tmp/diff_new_pack.YFHE1B/_old 2020-10-12 13:59:38.954224466 +0200 +++ /var/tmp/diff_new_pack.YFHE1B/_new 2020-10-12 13:59:38.958224467 +0200 @@ -1,7 +1,7 @@ # # spec file for package fbterm # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,33 +12,28 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: fbterm +Version: 1.8 +Release: 0 Summary: A fast framebuffer-based terminal emulator -License: GPL-2.0+ +License: GPL-2.0-or-later Group: System/Console -Version: 1.7 -Release: 0 -Url: http://code.google.com/p/fbterm/ +URL: https://github.com/sfzhi/fbterm -Source: https://fbterm.googlecode.com/files/%name-1.7.0.tar.gz +Source: https://github.com/sfzhi/fbterm/archive/%version.tar.gz Patch1: fbterm-gcc6-fixes.patch -BuildRequires: fontconfig-devel -BuildRequires: freetype2-devel -BuildRequires: gcc-c++ -BuildRequires: gpm -BuildRequires: ncurses-devel -BuildRequires: pkg-config -%if 0%{?suse_version} > 1210 -# Fix build for openSUSE 12.2 BuildRequires: autoconf BuildRequires: automake +BuildRequires: gcc-c++ +BuildRequires: gpm BuildRequires: libtool -%endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: ncurses-devel +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) %description FbTerm is a fast terminal emulator for linux with frame buffer device. @@ -59,28 +54,21 @@ * change the orientation of screen display, a.k.a. screen rotation * lightweight input method framework with client-server architecture - -Authors: --------- - dragchan <zgchan...@gmail.com> - %prep -%setup -q -%patch1 -p1 +%autosetup -p1 %build autoreconf -fi export CFLAGS="%optflags -fno-strict-aliasing" %configure -make %{?_smp_mflags} +%make_build %install %make_install # disallow setuid bit for now... -chmod 0755 $RPM_BUILD_ROOT%{_bindir}/fbterm +chmod 0755 %{buildroot}/%{_bindir}/fbterm %files -%defattr(-, root, root) %doc README AUTHORS ChangeLog COPYING %doc %{_mandir}/man1/* %{_bindir}/* ++++++ fbterm-1.7.0.tar.gz -> 1.8.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/.gitignore new/fbterm-1.8/.gitignore --- old/fbterm-1.7/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/fbterm-1.8/.gitignore 2015-02-21 13:27:24.000000000 +0100 @@ -0,0 +1,15 @@ +*.o +*.a +*.swp +.deps +Makefile +/config.h +/config.log +/config.status +/stamp-h1 +/fbterm.txt +/doc/fbterm.1 +/im/immessage.h +/im/input_key.h +/im/imexample +/src/fbterm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/ChangeLog new/fbterm-1.8/ChangeLog --- old/fbterm-1.7/ChangeLog 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/ChangeLog 2015-02-21 13:27:24.000000000 +0100 @@ -1,4 +1,23 @@ -2010-10-5 version 1.7 +2015-02-21 version 1.8 + * doc/fbterm.1.in: + escape '-' (minus) with backslash in the man page + + * lib/shell.h lib/shell.cpp fbshell.cpp fbconfig.cpp doc/fbterm.1.in: + allow to choose 'fbterm' or 'linux' for TERM + + * lib/shell.cpp doc/fbterm.1.in: + changed the default value of TERM to 'fbterm' + + * fbconfig.cpp doc/fbterm.1.in: + added short versions for most command line options + + * font.h font.cpp fbconfig.cpp doc/fbterm.1.in: + added configuration option to adjust font baseline + + * font.cpp: + getGlyph(): fixed incorrect glyph bitmap positioning + +2010-10-05 version 1.7 * vterm.cpp charsetmap.cpp: improved escape sequences support, now curses h/v lines should be drawed correctly diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/configure new/fbterm-1.8/configure --- old/fbterm-1.7/configure 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/configure 2015-02-21 13:27:24.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for FbTerm 1.7. +# Generated by GNU Autoconf 2.65 for FbTerm 1.8. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -549,8 +549,8 @@ # Identity of this package. PACKAGE_NAME='FbTerm' PACKAGE_TARNAME='fbterm' -PACKAGE_VERSION='1.7' -PACKAGE_STRING='FbTerm 1.7' +PACKAGE_VERSION='1.8' +PACKAGE_STRING='FbTerm 1.8' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1259,7 +1259,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures FbTerm 1.7 to adapt to many kinds of systems. +\`configure' configures FbTerm 1.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1325,7 +1325,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of FbTerm 1.7:";; + short | recursive ) echo "Configuration of FbTerm 1.8:";; esac cat <<\_ACEOF @@ -1423,7 +1423,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -FbTerm configure 1.7 +FbTerm configure 1.8 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. @@ -1880,7 +1880,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by FbTerm $as_me 1.7, which was +It was created by FbTerm $as_me 1.8, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ @@ -2691,7 +2691,7 @@ # Define the identity of the package. PACKAGE='fbterm' - VERSION='1.7' + VERSION='1.8' cat >>confdefs.h <<_ACEOF @@ -2735,7 +2735,7 @@ ac_config_headers="$ac_config_headers config.h" -RELEASE_DATE="October 2010" +RELEASE_DATE="February 2015" # Checks for programs. @@ -6321,7 +6321,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by FbTerm $as_me 1.7, which was +This file was extended by FbTerm $as_me 1.8, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6391,7 +6391,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -FbTerm config.status 1.7 +FbTerm config.status 1.8 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/configure.ac new/fbterm-1.8/configure.ac --- old/fbterm-1.7/configure.ac 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/configure.ac 2015-02-21 13:27:24.000000000 +0100 @@ -2,12 +2,12 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.61]) -AC_INIT([FbTerm], [1.7]) +AC_INIT([FbTerm], [1.8]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([src/fbterm.cpp]) AC_CONFIG_HEADERS([config.h]) -AC_SUBST([RELEASE_DATE], "October 2010") +AC_SUBST([RELEASE_DATE], "February 2015") # Checks for programs. AC_PROG_CXX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/doc/fbterm.1.in new/fbterm-1.8/doc/fbterm.1.in --- old/fbterm-1.7/doc/fbterm.1.in 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/doc/fbterm.1.in 2015-02-21 13:27:24.000000000 +0100 @@ -1,8 +1,8 @@ .TH "FbTerm" "1" "@RELEASE_DATE@" "FbTerm @VERSION@" "FbTerm User Manual" .SH "NAME" -FbTerm - a fast Frame Buffer based TERMinal emulator for linux +FbTerm \- a fast Frame Buffer based TERMinal emulator for linux .SH "SYNOPSIS" -\fBfbterm\fR [\fIoptions\fR] [--] [\fIcommand\fR [\fIarguments\fR]] +\fBfbterm\fR [\fIoptions\fR] [\-\-] [\fIcommand\fR [\fIarguments\fR]] .SH "DESCRIPTION" FbTerm is a fast terminal emulator for linux with frame buffer device or VESA video card. Features include: @@ -19,61 +19,67 @@ .SH "OPTIONS" \fIcommand\fR [\fIarguments\fR] may be given to override the built-in choice of shell program. Normally FbTerm checks the \fISHELL\fR variable. If that is not set, it tries to use the user's login shell program specified in the password -file. If that is not set, /bin/sh will be used. You should use the \fI--\fR argument to separate FbTerm's options from +file. If that is not set, /bin/sh will be used. You should use the \fI\-\-\fR argument to separate FbTerm's options from the arguments supplied to the \fIcommand\fR. FbTerm first uses option value specified in command line arguments, then in the configure file \fI$HOME/.fbtermrc\fR. If that file doesn't exist, FbTerm will create it with default options on startup. .TP -\fB-h, --help\fR +\fB\-h, \-\-help\fR display the help and exit .TP -\fB-V, --version\fR +\fB\-V, \-\-version\fR display FbTerm version and exit .TP -\fB-v, --verbose\fR +\fB\-v, \-\-verbose\fR display extra FbTerm's information .TP -\fB-n, --font-names=\fR\fItext\fR +\fB\-n, \-\-font\-names=\fR\fItext\fR specify font family names .TP -\fB-s, --font-size=\fR\fInum\fR +\fB\-s, \-\-font\-size=\fR\fInum\fR specify font pixel size .TP -\fB--font-width=\fR\fInum\fR +\fB\-W, \-\-font\-width=\fR\fInum\fR force font width .TP -\fB--font-height=\fR\fInum\fR +\fB\-H, \-\-font\-height=\fR\fInum\fR force font height .TP -\fB-f, --color-foreground=\fR\fInum\fR +\fB\-B, \-\-font\-baseline=\fR\fInum\fR +force font baseline +.TP +\fB\-f, \-\-color\-foreground=\fR\fInum\fR specify foreground color .TP -\fB-b, --color-background=\fR\fInum\fR +\fB\-b, \-\-color\-background=\fR\fInum\fR specify background color .TP -\fB-e, --text-encodings=\fR\fItext\fR +\fB\-e, \-\-text\-encodings=\fR\fItext\fR specify additional text encodings .TP -\fB-a, --ambiguous-wide +\fB\-a, \-\-ambiguous\-wide\fR treat ambiguous width characters as wide .TP -\fB-r, --screen-rotate=\fR\fInum\fR +\fB\-r, \-\-screen\-rotate=\fR\fInum\fR specify the orientation of screen display .TP -\fB-i, --input-method=\fR\fItext\fR +\fB\-i, \-\-input\-method=\fR\fItext\fR specify input method program .TP -\fB--cursor-shape=\fR\fInum\fR +\fB\-c, \-\-cursor\-shape=\fR\fInum\fR specify default cursor shape .TP -\fB--cursor-interval=\fR\fInum\fR +\fB\-C, \-\-cursor\-interval=\fR\fInum\fR specify cursor flash interval .TP -\fB--vesa-mode=\fR\fInum\fR +\fB\-l, \-\-term\-is\-linux\fR +set TERM variable to "linux" +.TP +\fB\-\-vesa\-mode=\fR\fInum\fR specify VESA video mode .TP -\fB--vesa-mode=list\fR +\fB\-\-vesa\-mode=list\fR display available VESA video modes .TP @@ -114,27 +120,27 @@ built-in behavior. .SH "VESA VIDEO DEVICE" From version 1.6, FbTerm adds VESA video card support. By default, FbTerm tries frame buffer device first, if failure, -then tries to use VESA device with highest resolution and color depth. option "\fIvesa-mode\fR" may be given to force only open -VESA device with the specified video mode. To see available video modes for your VESA card, execute "\fBfbterm --vesa-mode=list\fR". +then tries to use VESA device with highest resolution and color depth. option "\fIvesa\-mode\fR" may be given to force only open +VESA device with the specified video mode. To see available video modes for your VESA card, execute "\fBfbterm \-\-vesa\-mode=list\fR". Attention: 1) VESA support requires root privilege to work; 2) do not force to use VESA device on the system with frame buffer device enabled, they maybe conflict with each other. .SH "FONT" FbTerm invokes fontconfig to get a font list, if the first font doesn't contain the glyph for the rendering character, -it will try second font, then the third, ... and so on, user can see this ordered font list with "\fBfbterm -v\fR". +it will try second font, then the third, ... and so on, user can see this ordered font list with "\fBfbterm \-v\fR". -If you don't like the fonts selected by FbTerm, execute "fc-list" to get available fonts, choose favorites as -the value of option "\fIfont-names\fR". You may also modify the configure file of fontconfig, which will +If you don't like the fonts selected by FbTerm, execute "fc\-list" to get available fonts, choose favorites as +the value of option "\fIfont\-names\fR". You may also modify the configure file of fontconfig, which will change the behavior of all programs based on fontconfig! .SH "TEXT ENCODING" By using iconv, FbTerm converts other encodings to internal encoding UTF-8. On startup, FbTerm checks variable \fILC_CTYPE\fR to determine the default text encoding, which is binded to shortcut CTRL_ALT_F1. -User can specify up to 5 additional encodings with option "\fItext-encodings\fR", for example, as a Chinese user, -you set "text-encodings=gbk,big5", shortcut CTRL_ALT_F2 will bind to gbk, and CTRL_ALT_F3 bind to big5. +User can specify up to 5 additional encodings with option "\fItext\-encodings\fR", for example, as a Chinese user, +you set "text\-encodings=gbk,big5", shortcut CTRL_ALT_F2 will bind to gbk, and CTRL_ALT_F3 bind to big5. In a number of CJK encodings there are ambiguous width characters which have a width of either narrow or wide depending on the context of their use. By default, FbTerm treats them as narrow width characters, -option "\fIambiguous-wide\fR" may be used to change the behavior. +option "\fIambiguous\-wide\fR" may be used to change the behavior. .SH "BACKGROUND IMAGE" FbTerm doesn't load and parse any image file with various formats directly, instead it takes a screen shot of frame buffer device on startup if variable \fIFBTERM_BACKGROUND_IMAGE\fR is defined, then uses this screen shot as @@ -145,12 +151,12 @@ #!/bin/bash - # fbterm-bi: a wrapper script to enable background image with fbterm - # usage: fbterm-bi /path/to/image fbterm-options + # fbterm\-bi: a wrapper script to enable background image with fbterm + # usage: fbterm\-bi /path/to/image fbterm-options - echo -ne "\\e[?25l" # hide cursor + echo \-ne "\\e[?25l" # hide cursor - fbv -ciuker "$1" << EOF + fbv \-ciuker "$1" << EOF q EOF @@ -174,12 +180,13 @@ \fR A new terminfo database entry named "fbterm" was added to use these private sequences, all program based on terminfo should work with it. -By default, FbTerm sets environment variable "TERM" to value "linux", user need run "TERM=fbterm /path/to/program" to enable 256 color mode. +By default, FbTerm sets environment variable "TERM" to value "fbterm". Alternatively, the "TERM" variable can be set to "linux", +in which case the 256 color mode will be unavailable. .SH "INPUT METHOD" Instead of adding input method directly in FbTerm, a client-server based input method framework is designed to do this work. FbTerm acts as a client, standalone IM program as a server, and they run in separated processes. -As a normal IM user, you should install a IM program written for FbTerm, and specify it as the value of option "\fIinput-method\fR". +As a normal IM user, you should install a IM program written for FbTerm, and specify it as the value of option "\fIinput\-method\fR". CTRL_SPACE is the shortcut to activate/deactivate input method. And CTRL_ALT_K may be used to kill the IM program when it has freezed. .SH "SECURITY NOTES" @@ -215,7 +222,7 @@ kernel /boot/vmlinuz ro root=LABEL=UBUNTU splash vga=0x317 \fBvideo=vesafb:ywrap,mtrr:3\fR initrd /boot/initrd.img -You may check fast scrolling status with "\fBfbterm -v\fR", a message with "scrolling: redraw" means fast scrolling +You may check fast scrolling status with "\fBfbterm \-v\fR", a message with "scrolling: redraw" means fast scrolling is disabled, otherwise enabled. .SH "AUTHOR" Written by dragchan. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/src/fbconfig.cpp new/fbterm-1.8/src/fbconfig.cpp --- old/fbterm-1.7/src/fbconfig.cpp 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/src/fbconfig.cpp 2015-02-21 13:27:24.000000000 +0100 @@ -173,10 +173,11 @@ "font-names=mono\n" "font-size=12\n" "\n" - "# force font width (and/or height), usually for non-fixed width fonts\n" + "# force font width/height/baseline, usually for non-fixed width fonts\n" "# legal value format: n (fw_new = n), +n (fw_new = fw_old + n), -n (fw_new = fw_old - n)\n" "#font-width=\n" "#font-height=\n" + "#font-baseline=\n" "\n" "# default color of foreground/background text\n" "# available colors: 0 = black, 1 = red, 2 = green, 3 = brown, 4 = blue, 5 = magenta, 6 = cyan, 7 = white\n" @@ -207,6 +208,9 @@ "\n" "# treat ambiguous width characters as wide\n" "#ambiguous-wide=yes\n" + "\n" + "# set TERM to 'linux' instead of the default 'fbterm'\n" + "#term-is-linux=no\n" ; struct stat cstat; @@ -232,19 +236,21 @@ { "text-encodings", required_argument, 0, 'e' }, { "screen-rotate", required_argument, 0, 'r' }, { "input-method", required_argument, 0, 'i' }, - { "cursor-shape", required_argument, 0, 0 }, - { "cursor-interval", required_argument, 0, 1 }, - { "font-width", required_argument, 0, 2 }, - { "font-height", required_argument, 0, 4 }, + { "cursor-shape", required_argument, 0, 'c' }, + { "cursor-interval", required_argument, 0, 'C' }, + { "font-width", required_argument, 0, 'W' }, + { "font-height", required_argument, 0, 'H' }, + { "font-baseline", required_argument, 0, 'B' }, { "ambiguous-wide", no_argument, 0, 'a' }, + { "term-is-linux", no_argument, 0, 'l' }, #ifdef ENABLE_VESA - { "vesa-mode", required_argument, 0, 3 }, + { "vesa-mode", required_argument, 0, 0 }, #endif { 0, 0, 0, 0 } }; s32 index; - while ((index = getopt_long(argc, argv, "Vvhn:s:f:b:e:r:i:a", options, 0)) != -1) { + while ((index = getopt_long(argc, argv, "Vvhn:s:f:b:e:r:i:c:C:W:H:B:al", options, 0)) != -1) { switch (index) { case 'V': printf("FbTerm version " VERSION "\n"); @@ -261,16 +267,17 @@ " -v, --verbose display extra information\n" " -n, --font-names=TEXT specify font family names\n" " -s, --font-size=NUM specify font pixel size\n" - " --font-width=NUM force font width\n" - " --font-height=NUM force font height\n" + " -W, --font-width=NUM force font width\n" + " -H, --font-height=NUM force font height\n" + " -B, --font-baseline=NUM force font baseline\n" " -f, --color-foreground=NUM specify foreground color\n" " -b, --color-background=NUM specify background color\n" " -e, --text-encodings=TEXT specify additional text encodings\n" " -r, --screen-rotate=NUM specify orientation of screen display\n" " -a, --ambiguous-wide treat ambiguous width characters as wide\n" " -i, --input-method=TEXT specify input method program\n" - " --cursor-shape=NUM specify default cursor shape\n" - " --cursor-interval=NUM specify cursor flash interval\n" + " -c, --cursor-shape=NUM specify default cursor shape\n" + " -C, --cursor-interval=NUM specify cursor flash interval\n" #ifdef ENABLE_VESA " --vesa-mode=NUM force VESA video mode\n" " list display available VESA video modes\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/src/fbshell.cpp new/fbterm-1.8/src/fbshell.cpp --- old/fbterm-1.7/src/fbshell.cpp 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/src/fbshell.cpp 2015-02-21 13:27:24.000000000 +0100 @@ -349,6 +349,7 @@ mImProxy = 0; mPaletteChanged = false; mPalette = 0; + Config::instance()->getOption("term-is-linux", mTermIsLinux); createShellProcess(Config::instance()->getShellCommand()); resize(screen->cols(), screen->rows()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/src/font.cpp new/fbterm-1.8/src/font.cpp --- old/fbterm-1.7/src/font.cpp 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/src/font.cpp 2015-02-21 13:27:24.000000000 +0100 @@ -141,6 +141,7 @@ mHeight = sizes[index].height; mWidth = sizes[index].width; } + mBaseline = face->size->metrics.ascender >> 6; if (!(face->face_flags & FT_FACE_FLAG_FIXED_WIDTH)) mWidth = MIN(mWidth, (mHeight + 1) / 2); @@ -165,6 +166,17 @@ if (buf[0] == '+' || buf[0] == '-') mHeight += (s32)height; else mHeight = height; } + + u32 baseline = 0; + Config::instance()->getOption("font-baseline", baseline); + + if (baseline) { + s8 buf[64]; + Config::instance()->getOption("font-baseline", buf, sizeof(buf)); + + if (buf[0] == '+' || buf[0] == '-') mBaseline += (s32)baseline; + else mBaseline = baseline; + } } Font::~Font() @@ -304,16 +316,22 @@ x = y = 0; w = nw = bitmap.width; h = nh = bitmap.rows; + u8 *buf = bitmap.buffer; + s32 top = (s32)mBaseline - face->glyph->bitmap_top; + if (top < 0) { + buf -= top * bitmap.pitch; + h = nh += top; + top = 0; + } Screen::instance()->rotateRect(x, y, nw, nh); Glyph *glyph = (Glyph *)new u8[OFFSET(Glyph, pixmap) + nw * nh]; - glyph->left = face->glyph->metrics.horiBearingX >> 6; - glyph->top = mHeight - 1 + (face->size->metrics.descender >> 6) - (face->glyph->metrics.horiBearingY >> 6); - glyph->width = face->glyph->metrics.width >> 6; - glyph->height = face->glyph->metrics.height >> 6; + glyph->left = face->glyph->bitmap_left; + glyph->top = top; + glyph->width = w; + glyph->height = h; glyph->pitch = nw; - u8 *buf = bitmap.buffer; for (y = 0; y < h; y++, buf += bitmap.pitch) { for (x = 0; x < w; x++) { nx = x, ny = y; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/src/font.h new/fbterm-1.8/src/font.h --- old/fbterm-1.7/src/font.h 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/src/font.h 2015-02-21 13:27:24.000000000 +0100 @@ -46,7 +46,7 @@ void showInfo(bool verbose); private: - u32 mWidth, mHeight; + u32 mWidth, mHeight, mBaseline; }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/src/lib/shell.cpp new/fbterm-1.8/src/lib/shell.cpp --- old/fbterm-1.7/src/lib/shell.cpp 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/src/lib/shell.cpp 2015-02-21 13:27:24.000000000 +0100 @@ -79,7 +79,7 @@ case 0: // child process initShellProcess(); - setenv("TERM", "linux", 1); + setenv("TERM", mTermIsLinux? "linux": "fbterm", 1); if (command) { execvp(command[0], command); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fbterm-1.7/src/lib/shell.h new/fbterm-1.8/src/lib/shell.h --- old/fbterm-1.7/src/lib/shell.h 2010-10-06 06:23:08.000000000 +0200 +++ new/fbterm-1.8/src/lib/shell.h 2015-02-21 13:27:24.000000000 +0100 @@ -57,6 +57,8 @@ virtual void initShellProcess() {} virtual void readyRead(s8 *buf, u32 len); + bool mTermIsLinux; + private: static void initWordChars(s8 *buf, u32 len); virtual void sendBack(const s8 *data); ++++++ fbterm-gcc6-fixes.patch ++++++ --- /var/tmp/diff_new_pack.YFHE1B/_old 2020-10-12 13:59:39.046224504 +0200 +++ /var/tmp/diff_new_pack.YFHE1B/_new 2020-10-12 13:59:39.050224506 +0200 @@ -1,10 +1,22 @@ +From 206df42bb9026a93fecf3ed515e90fe5b21533e7 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <ti...@suse.de> +Date: Fri, 17 Jun 2016 12:24:38 +0200 +Subject: [PATCH 1/2] Fix -Wnarrowing compiler warnings/errors +Upstream: https://github.com/sfzhi/fbterm/pull/1 + +Fix the following compiler warnings new in gcc 6.x and onwards: + +vterm_states.cpp:136:1: error: narrowing conversion of "-1" from "int" +to "u16" {aka "short unsigned int"} [-Wnarrowing] --- - src/lib/vterm_states.cpp | 18 +++++++++--------- + src/lib/vterm_states.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) +diff --git a/src/lib/vterm_states.cpp b/src/lib/vterm_states.cpp +index 49e7588..91413d0 100644 --- a/src/lib/vterm_states.cpp +++ b/src/lib/vterm_states.cpp -@@ -39,14 +39,14 @@ const VTerm::Sequence VTerm::control_seq +@@ -39,14 +39,14 @@ const VTerm::Sequence VTerm::control_sequences[] = { { 0x1B, 0, ESesc }, { 0x7F, 0, ESkeep }, { 0x9B, 0, ESsquare }, @@ -21,7 +33,7 @@ // ESesc { '[', &VTerm::clear_param, ESsquare }, -@@ -65,7 +65,7 @@ const VTerm::Sequence VTerm::escape_sequ +@@ -65,7 +65,7 @@ const VTerm::Sequence VTerm::escape_sequences[] = { { '8', &VTerm::restore_cursor, ESnormal }, { '>', &VTerm::keypad_numeric, ESnormal }, { '=', &VTerm::keypad_application, ESnormal }, @@ -30,7 +42,7 @@ // ESsquare { '[', 0, ESfunckey }, -@@ -104,7 +104,7 @@ const VTerm::Sequence VTerm::escape_sequ +@@ -104,7 +104,7 @@ const VTerm::Sequence VTerm::escape_sequences[] = { { '`', &VTerm::cursor_position_col, ESnormal }, { ']', &VTerm::linux_specific, ESnormal }, { '}', &VTerm::fbterm_specific, ESnormal }, @@ -39,7 +51,7 @@ // ESnonstd { '0' | ADDSAME(9), &VTerm::set_palette, ESkeep }, -@@ -112,25 +112,25 @@ const VTerm::Sequence VTerm::escape_sequ +@@ -112,25 +112,25 @@ const VTerm::Sequence VTerm::escape_sequences[] = { { 'a' | ADDSAME(5), &VTerm::set_palette, ESkeep }, { 'P', &VTerm::begin_set_palette, ESkeep }, { 'R', &VTerm::reset_palette, ESnormal }, @@ -70,3 +82,6 @@ - { -1 }, + { (u16)-1 }, }; +-- +2.28.0 +