diff --git a/debian/control b/debian/control index 72e3ef98..fdc3da05 100644 --- a/debian/control +++ b/debian/control @@ -19,17 +19,13 @@ Architecture: any Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Depends: - xfonts-utils , ${shlibs:Depends} , ${misc:Depends} Suggests: - coreutils + fonts-libfinal + , coreutils , ncurses-term - , grep - , sed , vim-common - , gzip - , xfonts-utils Description: Shared library for the final cut widget toolkit The Final Cut is a class library and widget toolkit with full mouse support for creating a text-based user interface. The library supports @@ -89,3 +85,19 @@ Description: Test and example programs for the final cut widget toolkit . This package contains programs that demonstrate the possibilities of the final cut library. + +Package: fonts-libfinal +Architecture: all +Multi-Arch: foreign +Section: fonts +Depends: + ${misc:Depends} + , xfonts-utils +Suggests: + xserver | xfs + , grep + , sed + , gzip +Description: X11 bitmap font for FINAL CUT + Special X11 bitmap font used by FINAL CUT to display graphic objects. + diff --git a/debian/fonts-libfinal.docs b/debian/fonts-libfinal.docs new file mode 100644 index 00000000..7ca4e292 --- /dev/null +++ b/debian/fonts-libfinal.docs @@ -0,0 +1,4 @@ +AUTHORS +COPYING +COPYING.LESSER +fonts/newfont.txt diff --git a/debian/fonts-libfinal.install b/debian/fonts-libfinal.install new file mode 100644 index 00000000..3ffd4b90 --- /dev/null +++ b/debian/fonts-libfinal.install @@ -0,0 +1,3 @@ +fonts/8x16graph.pcf.gz /usr/share/fonts/X11/misc/ +fonts/xfonts-finalcut-newfont.alias /etc/X11/fonts/misc/ +fonts/40-finalcut-newfont.conf usr/share/fontconfig/conf.avail diff --git a/debian/fonts-libfinal.links b/debian/fonts-libfinal.links new file mode 100644 index 00000000..02069d53 --- /dev/null +++ b/debian/fonts-libfinal.links @@ -0,0 +1 @@ +usr/share/fontconfig/conf.avail/40-finalcut-newfont.conf etc/fonts/conf.d/40-finalcut-newfont.conf diff --git a/debian/libfinal0.docs b/debian/libfinal0.docs index cd2a01ef..1e42e173 100644 --- a/debian/libfinal0.docs +++ b/debian/libfinal0.docs @@ -3,4 +3,3 @@ COPYING COPYING.LESSER ChangeLog doc/readme.txt -fonts/newfont.txt diff --git a/debian/libfinal0.install b/debian/libfinal0.install index b99fd79a..0879cd03 100644 --- a/debian/libfinal0.install +++ b/debian/libfinal0.install @@ -1,5 +1,2 @@ usr/lib/*/lib*.so usr/lib/*/lib*.so.* -fonts/8x16graph.pcf.gz /usr/share/fonts/X11/misc/ -fonts/xfonts-finalcut-newfont.alias /etc/X11/fonts/misc/ -debian/40-finalcut-newfont.conf etc/fonts/conf.avail diff --git a/debian/libfinal0.links b/debian/libfinal0.links deleted file mode 100644 index d0b8300b..00000000 --- a/debian/libfinal0.links +++ /dev/null @@ -1 +0,0 @@ -etc/fonts/conf.avail/40-finalcut-newfont.conf etc/fonts/conf.d/40-finalcut-newfont.conf diff --git a/finalcut.spec.in b/finalcut.spec.in index c63563ed..7275db84 100644 --- a/finalcut.spec.in +++ b/finalcut.spec.in @@ -1,7 +1,7 @@ # # spec file for package finalcut # -# Copyright (c) 2019 by Markus Gans +# Copyright (c) 2020 by Markus Gans # %define sover 0 @@ -16,10 +16,11 @@ Source: https://github.com/gansm/finalcut/archive/%{version}.tar.gz#/%{n BuildRequires: autoconf BuildRequires: autoconf-archive BuildRequires: automake +BuildRequires: fontpackages-devel BuildRequires: gcc-c++ >= 5.1 +BuildRequires: gdb BuildRequires: glib2-devel BuildRequires: gpm-devel -BuildRequires: gdb BuildRequires: libtool BuildRequires: ncurses-devel @@ -35,12 +36,14 @@ radio buttons, input lines, list boxes, status bars and so on. %package -n libfinal-devel Summary: Development files for the FINAL CUT text widget library Group: Development/Libraries/C and C++ -Requires: libfinal%{sover} = %{version} Requires: bdftopcf Requires: coreutils Requires: gcc-c++ >= 5.1 +Requires: gpm-devel Requires: grep Requires: gzip +Requires: libfinal%{sover} = %{version} +Requires: ncurses-devel Requires: sed Requires: vim Provides: libfinal-devel = %{version} @@ -59,7 +62,6 @@ radio buttons, input lines, list boxes, status bars and so on. %package -n libfinal-examples Summary: Example files for the FINAL CUT library Group: Development/Languages/C and C++ -BuildArch: noarch Provides: libfinal-examples = %{version} Obsoletes: libfinal-examples < %{version} @@ -85,6 +87,17 @@ The C++ class design was inspired by the Qt framework. It provides common controls like dialog windows, push buttons, check boxes, radio buttons, input lines, list boxes, status bars and so on. +%package bitmap-fonts +Summary: X11 bitmap font for FINAL CUT +Group: System/X11/Fonts +Requires(pre): fontconfig +# install the fonts only if we have X11 fonts anyways +Supplements: packageand(libfinal%{sover}:xorg-x11-fonts-core) +BuildArch: noarch + +%description bitmap-fonts +Special X11 bitmap font used by FINAL CUT to display graphic objects. + %prep %setup -q @@ -98,18 +111,38 @@ export CPPFLAGS="$CPPFLAGS -Wno-error=unused-parameter" make %{?_smp_mflags} V=1 %install +%if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?fc#} || 0%{?el#} +%global _miscfontsdir %{_datadir}/fonts +%endif make install libdir=%{buildroot}%{_libdir}/ \ includedir=%{buildroot}%{_includedir} \ bindir=%{buildroot}%{_bindir} \ docdir=%{buildroot}%{_docdir}/%{name}/ \ fontdir=%{buildroot}%{_miscfontsdir}/%{name}/ -mkdir -p %{buildroot}%{_docdir}/%{name}/examples mkdir -p %{buildroot}%{_miscfontsdir}/%{name}/ -cp -p examples/*.cpp %{buildroot}%{_docdir}/%{name}/examples -cp -p examples/Makefile.clang %{buildroot}%{_docdir}/%{name}/examples -cp -p examples/Makefile.gcc %{buildroot}%{_docdir}/%{name}/examples -rm -f %{buildroot}%{_libdir}/libfinal.la %{buildroot}%{_libdir}/%{name}/examples +mkdir -p %{buildroot}%{_docdir}/%{name} +mkdir -p %{buildroot}%{_libdir}/%{name}/examples +mkdir -p %{buildroot}/etc/fonts/conf.d +mkdir -p %{buildroot}/usr/share/fontconfig/conf.avail +cp -p examples/.libs/* %{buildroot}%{_libdir}/%{name}/examples +cp -p examples/*.cpp %{buildroot}%{_libdir}/%{name}/examples +cp -p examples/Makefile.clang %{buildroot}%{_libdir}/%{name}/examples +cp -p examples/Makefile.gcc %{buildroot}%{_libdir}/%{name}/examples +cp -p fonts/40-finalcut-newfont.conf %{buildroot}/usr/share/fontconfig/conf.avail +ln -s /usr/share/fontconfig/conf.avail/40-finalcut-newfont.conf %{buildroot}/etc/fonts/conf.d/40-finalcut-newfont.conf +rm -f %{buildroot}%{_libdir}/libfinal.la rm %{buildroot}%{_docdir}/%{name}/ChangeLog %{buildroot}%{_docdir}/%{name}/COPYING.LESSER +# Add config for X font path +mkdir -p %{buildroot}%{_datadir}/X11/xorg.conf.d +cat < %{buildroot}%{_datadir}/X11/xorg.conf.d/80-finalcut-bitmap-fonts.conf +Section "Files" + FontPath "%{_miscfontsdir}/finalcut:unscaled" +EndSection +EOF +# make sure we own all generated files +for i in .fonts-config-timestamp encodings.dir fonts.dir fonts.scale; do + > %{buildroot}%{_miscfontsdir}/finalcut/$i +done %clean %{__rm} -rf %{buildroot} @@ -117,6 +150,8 @@ rm %{buildroot}%{_docdir}/%{name}/ChangeLog %{buildroot}%{_docdir}/%{name}/COPYI %post -n libfinal%{sover} -p /sbin/ldconfig %postun -n libfinal%{sover} -p /sbin/ldconfig +%reconfigure_fonts_scriptlets -n %{name}-bitmap-fonts + %files -n libfinal-devel %if 0%{?sle_version} > 120200 || 0%{?suse_version} > 1500 %license COPYING.LESSER @@ -131,9 +166,26 @@ rm %{buildroot}%{_docdir}/%{name}/ChangeLog %{buildroot}%{_docdir}/%{name}/COPYI %{_includedir}/final %files -n libfinal-examples -%{_docdir}/%{name}/examples +%{_libdir}/%{name} %files -n libfinal%{sover} %{_libdir}/libfinal.so.* +%files bitmap-fonts +%dir %{_miscfontsdir} +%dir %{_miscfontsdir}/finalcut +%{_miscfontsdir}/finalcut/*.gz +%{_miscfontsdir}/finalcut/fonts.alias +%ghost %{_miscfontsdir}/finalcut/fonts.dir +%ghost %{_miscfontsdir}/finalcut/fonts.scale +%ghost %{_miscfontsdir}/finalcut/encodings.dir +%ghost %{_miscfontsdir}/finalcut/.fonts-config-timestamp +%dir /etc/fonts/conf.d/ +%dir /usr/share/fontconfig/conf.avail +%dir %{_datadir}/X11 +%dir %{_datadir}/X11/xorg.conf.d +%{_datadir}/X11/xorg.conf.d/80-finalcut-bitmap-fonts.conf +/etc/fonts/conf.d/40-finalcut-newfont.conf +/usr/share/fontconfig/conf.avail/40-finalcut-newfont.conf + %changelog diff --git a/debian/40-finalcut-newfont.conf b/fonts/40-finalcut-newfont.conf similarity index 100% rename from debian/40-finalcut-newfont.conf rename to fonts/40-finalcut-newfont.conf diff --git a/src/sgr_optimizer.cpp b/src/sgr_optimizer.cpp index 8df8ea67..f9937693 100644 --- a/src/sgr_optimizer.cpp +++ b/src/sgr_optimizer.cpp @@ -21,7 +21,7 @@ ***********************************************************************/ #include -#include + #include "final/fc.h" #include "final/sgr_optimizer.h" @@ -87,7 +87,7 @@ void SGRoptimizer::findParameter() } // Other content - if ( ! csi_parameter.empty() && i > csi_parameter.back().end + 2 ) + if ( ! csi_parameter.empty() && i > csi_parameter.back().end + 2 ) break; if ( esc && seq[i] == '[' ) // Esc [ diff --git a/test/fstyle-test.cpp b/test/fstyle-test.cpp index ecc90f75..67dbd1d6 100644 --- a/test/fstyle-test.cpp +++ b/test/fstyle-test.cpp @@ -47,8 +47,7 @@ class FStyleTest : public CPPUNIT_NS::TestFixture void noArgumentTest(); void copyConstructorTest(); void assignmentTest(); - void setColorTest(); - void swapTest(); + void setStyleTest(); private: // Adds code needed to register the test suite @@ -59,7 +58,7 @@ class FStyleTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST (noArgumentTest); CPPUNIT_TEST (copyConstructorTest); CPPUNIT_TEST (assignmentTest); - CPPUNIT_TEST (setColorTest); + CPPUNIT_TEST (setStyleTest); // End of test suite definition CPPUNIT_TEST_SUITE_END(); @@ -122,7 +121,7 @@ void FStyleTest::assignmentTest() } //---------------------------------------------------------------------- -void FStyleTest::setColorTest() +void FStyleTest::setStyleTest() { finalcut::FStyle style1; style1.setStyle (finalcut::fc::Reverse); @@ -147,6 +146,8 @@ void FStyleTest::setColorTest() CPPUNIT_ASSERT ( style5.getStyle() == finalcut::fc::ColorOverlay ); style5.setStyle (finalcut::fc::InheritBackground); CPPUNIT_ASSERT ( style5.getStyle() == finalcut::fc::InheritBackground ); + style5.setStyle (finalcut::fc::Reset + finalcut::fc::Dim); + CPPUNIT_ASSERT ( style5.getStyle() == finalcut::fc::Dim ); } // Put the test suite in the registry