Mailinglist Archive: opensuse-commit (1737 mails)

< Previous Next >
commit yast2-ncurses for openSUSE:Factory
Hello community,

here is the log from the commit of package yast2-ncurses for openSUSE:Factory
checked in at 2012-02-15 16:18:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-ncurses (Old)
and /work/SRC/openSUSE:Factory/.yast2-ncurses.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-ncurses", Maintainer is "gs@xxxxxxxx"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-ncurses/yast2-ncurses.changes
2012-01-19 09:45:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-ncurses.new/yast2-ncurses.changes
2012-02-15 16:19:36.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Feb 13 13:09:45 CET 2012 - gs@xxxxxxx
+
+- NCRichText: interpret html tags inside <pre> </pre>
+ (bnc #724119, bnc #737752)
+- V 2.22.1
+
+-------------------------------------------------------------------

Old:
----
yast2-ncurses-2.22.0.tar.bz2

New:
----
yast2-ncurses-2.22.1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-ncurses.spec ++++++
--- /var/tmp/diff_new_pack.5Ha20n/_old 2012-02-15 16:19:37.000000000 +0100
+++ /var/tmp/diff_new_pack.5Ha20n/_new 2012-02-15 16:19:37.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package yast2-ncurses
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,17 +18,16 @@


Name: yast2-ncurses
-Version: 2.22.0
+Version: 2.22.1
Release: 0

BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: yast2-ncurses-%{version}.tar.bz2

-
Group: System/YaST
License: GPL-2.0
-BuildRequires: doxygen dejagnu gcc-c++ yast2-devtools libtool
-BuildRequires: libxcrypt-devel blocxx-devel ncurses-devel
+BuildRequires: dejagnu doxygen gcc-c++ libtool yast2-devtools
+BuildRequires: blocxx-devel libxcrypt-devel ncurses-devel

Summary: YaST2 - Character Based User Interface
Provides: yast2_ui
@@ -36,6 +35,7 @@
BuildRequires: yast2-libyui-devel >= 2.21.1
Requires: yast2-libyui >= 2.21.1
Recommends: yast2-ncurses-pkg
+
%description
This package contains the character based (ncurses) user interface
component for YaST2.

++++++ yast2-ncurses-2.22.0.tar.bz2 -> yast2-ncurses-2.22.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/VERSION
new/yast2-ncurses-2.22.1/VERSION
--- old/yast2-ncurses-2.22.0/VERSION 2011-12-21 12:24:37.000000000 +0100
+++ new/yast2-ncurses-2.22.1/VERSION 2012-02-09 12:40:41.000000000 +0100
@@ -1 +1 @@
-2.22.0
+2.22.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/configure
new/yast2-ncurses-2.22.1/configure
--- old/yast2-ncurses-2.22.0/configure 2012-01-17 12:16:08.000000000 +0100
+++ new/yast2-ncurses-2.22.1/configure 2012-02-13 13:16:02.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for yast2-ncurses 2.22.0.
+# Generated by GNU Autoconf 2.68 for yast2-ncurses 2.22.1.
#
# Report bugs to <http://bugs.opensuse.org/>.
#
@@ -709,8 +709,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-ncurses'
PACKAGE_TARNAME='yast2-ncurses'
-PACKAGE_VERSION='2.22.0'
-PACKAGE_STRING='yast2-ncurses 2.22.0'
+PACKAGE_VERSION='2.22.1'
+PACKAGE_STRING='yast2-ncurses 2.22.1'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
PACKAGE_URL=''

@@ -1488,7 +1488,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 yast2-ncurses 2.22.0 to adapt to many kinds of systems.
+\`configure' configures yast2-ncurses 2.22.1 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -1559,7 +1559,7 @@

if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-ncurses 2.22.0:";;
+ short | recursive ) echo "Configuration of yast2-ncurses 2.22.1:";;
esac
cat <<\_ACEOF

@@ -1673,7 +1673,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-ncurses configure 2.22.0
+yast2-ncurses configure 2.22.1
generated by GNU Autoconf 2.68

Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2308,7 +2308,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

-It was created by yast2-ncurses $as_me 2.22.0, which was
+It was created by yast2-ncurses $as_me 2.22.1, which was
generated by GNU Autoconf 2.68. Invocation command line was

$ $0 $@
@@ -3238,7 +3238,7 @@

# Define the identity of the package.
PACKAGE='yast2-ncurses'
- VERSION='2.22.0'
+ VERSION='2.22.1'


cat >>confdefs.h <<_ACEOF
@@ -3360,7 +3360,7 @@



-VERSION="2.22.0"
+VERSION="2.22.1"
RPMNAME="yast2-ncurses"
MAINTAINER="Gabriele Mohr <gs@xxxxxxx>"

@@ -16101,7 +16101,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-ncurses $as_me 2.22.0, which was
+This file was extended by yast2-ncurses $as_me 2.22.1, which was
generated by GNU Autoconf 2.68. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -16167,7 +16167,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //;
s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-yast2-ncurses config.status 2.22.0
+yast2-ncurses config.status 2.22.1
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/configure.in
new/yast2-ncurses-2.22.1/configure.in
--- old/yast2-ncurses-2.22.0/configure.in 2012-01-17 12:15:59.000000000
+0100
+++ new/yast2-ncurses-2.22.1/configure.in 2012-02-13 13:15:53.000000000
+0100
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.21.2 - DO NOT EDIT! --
dnl (edit configure.in.in instead)

-AC_INIT(yast2-ncurses, 2.22.0, http://bugs.opensuse.org/, yast2-ncurses)
+AC_INIT(yast2-ncurses, 2.22.1, http://bugs.opensuse.org/, yast2-ncurses)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])

@@ -18,7 +18,7 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)

dnl Important YaST2 variables
-VERSION="2.22.0"
+VERSION="2.22.1"
RPMNAME="yast2-ncurses"
MAINTAINER="Gabriele Mohr <gs@xxxxxxx>"

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/src/NCAskForFile.cc
new/yast2-ncurses-2.22.1/src/NCAskForFile.cc
--- old/yast2-ncurses-2.22.0/src/NCAskForFile.cc 2011-12-21
13:18:49.000000000 +0100
+++ new/yast2-ncurses-2.22.1/src/NCAskForFile.cc 2012-02-09
14:09:13.000000000 +0100
@@ -238,6 +238,10 @@
dirName->addItem( dirList->getCurrentDir(),
true ); // selected

+ if ( iniFileName == "" )
+ // show the currently selected file
+ fileName->setValue( fileList->getCurrentFile() );
+
// event loop
do
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/src/NCFileSelection.cc
new/yast2-ncurses-2.22.1/src/NCFileSelection.cc
--- old/yast2-ncurses-2.22.0/src/NCFileSelection.cc 2011-12-21
13:20:13.000000000 +0100
+++ new/yast2-ncurses-2.22.1/src/NCFileSelection.cc 2012-02-09
14:30:33.000000000 +0100
@@ -409,6 +409,7 @@
const string & filter,
const string & iniDir )
: NCFileSelection( parent, tableHeader, type, iniDir )
+ , currentFile("")
{
//fillHeader();

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/src/NCRichText.cc
new/yast2-ncurses-2.22.1/src/NCRichText.cc
--- old/yast2-ncurses-2.22.0/src/NCRichText.cc 2011-12-21 13:22:55.000000000
+0100
+++ new/yast2-ncurses-2.22.1/src/NCRichText.cc 2012-02-13 11:10:38.000000000
+0100
@@ -45,6 +45,7 @@
#include "stringutil.h"
#include "stdutil.h"
#include <sstream>
+#include <boost/algorithm/string.hpp>

#include "YMenuItem.h"
#include "YApplication.h"
@@ -344,36 +345,23 @@
}
}

-
-void NCRichText::PadPlainTXT( const wchar_t * osch, const unsigned olen )
+void NCRichText::PadPreTXT( const wchar_t * osch, const unsigned olen )
{
wstring wtxt( osch, olen );
+
// resolve the entities even in PRE (#71718)
wtxt = filterEntities( wtxt );
-
+
NCstring nctxt( wtxt );
NCtext ftext( nctxt );

- if ( ftext.Columns() > textwidth )
- textwidth = ftext.Columns();
-
- AdjustPad( wsze( cl + ftext.Lines(), textwidth ) );
-
// insert the text
const wchar_t * sch = wtxt.data();

while ( *sch )
{
- if ( *sch != L'\r' ) // skip carriage return
- {
- myPad()->addwstr( sch, 1 ); // add one wide chararacter
- cc += wcwidth( *sch );
+ myPad()->addwstr( sch, 1 ); // add one wide chararacter

- if ( *sch == L'\n' )
- {
- PadNL(); // add a new line
- }
- }
++sch;
}
}
@@ -420,21 +408,87 @@
while ( *wch && WDtoken.find( *wch ) == wstring::npos );
}

+static wstring PREtoken( L"<\n\v\r" ); // line manipulations + TokenStart '<'
+

inline void SkipPreTXT( const wchar_t *& wch )
{
+ do
+ {
+ ++wch;
+ }
+ while ( *wch && PREtoken.find( *wch ) == wstring::npos );
+}
+
+
+//
+// Calculate longest line of text in <pre> </pre> tags
+// and adjust the pad accordingly
+//
+void NCRichText::AdjustPrePad( const wchar_t *osch )
+{
+ const wchar_t * wch = osch;
wstring wstr( wch, 6 );

+ size_t llen = 0; // longest line
+ size_t tmp_len = 0; // width of current line
+
+ list<NCstring>::const_iterator line; // iterator for list <NCstring>
mtext
+ std::wstring::const_iterator wstr_it; // iterator for wstring
+
do
{
- ++wch;
+ ++wch;
wstr.assign( wch, 6 );
}
while ( *wch && wstr != L"</pre>" );
-}

+ wstring wtxt( osch, wch - osch );
+
+ // resolve the entities to get correct length for calculation of longest
line
+ wtxt = filterEntities( wtxt );
+
+ // replace <br> by \n to get appropriate lines in NCtext
+ boost::replace_all( wtxt, L"<br>", L"\n" );
+
+ yuiDebug() << "Text: " << wtxt << " initial length: " << wch - osch <<
endl;
+
+ NCstring nctxt( wtxt );
+ NCtext ftext( nctxt );
+
+ // iterate through NCtext
+ for ( line = ftext.Text().begin(); line != ftext.Text().end(); ++line )
+ {
+ tmp_len = 0;

+ for ( wstr_it = ( *line ).str().begin(); wstr_it != ( *line
).str().end() ; ++wstr_it )
+ {
+ // skip html tags
+ if ( *wstr_it == '<' )
+ {
+ wstr_it = find(wstr_it, (*line).str().end(), L'>');
+ }
+ else if ( *wstr_it == '\t' )
+ {
+ tmp_len += myPad()->tabsize();
+ }
+ else
+ {
+ tmp_len += wcwidth( *wstr_it );
+ }
+ }

+ if ( tmp_len > llen )
+ llen = tmp_len;
+ }
+
+ if ( llen > textwidth )
+ {
+ textwidth = llen;
+ AdjustPad( wsze( cl + ftext.Lines(), llen ) ); // adjust pad to
longest line
+ }
+
+}

void NCRichText::DrawHTMLPad()
{
@@ -470,12 +524,19 @@
}
else
{
- if ( *wch != L'\r' ) // skip carriage return
+ switch ( *wch )
{
- myPad()->addwstr( wch, 1 ); // add the wide chararacter
- cc += wcwidth( *wch );
- if ( *wch == '\n' )
- PadNL();
+ case L' ': // add white space
+ case L'\t':
+ myPad()->addwstr( wch, 1 );
+ break;
+
+ case L'\n':
+ PadNL(); // add new line
+ break;
+
+ default:
+ yuiDebug() << "Ignoring " << *wch << endl;
}
++wch;
}
@@ -483,16 +544,14 @@
break;

case L'<':
- if ( !preTag )
- {
- swch = wch;
- SkipToken( wch );
+ swch = wch;
+ SkipToken( wch );
+
+ if ( PadTOKEN( swch, wch ) )
+ break; // strip token
+ else
+ wch = swch; // reset and fall through

- if ( PadTOKEN( swch, wch ) )
- break; // strip token
- else
- wch = swch; // reset and fall through
- }
default:
swch = wch;

@@ -504,9 +563,7 @@
else
{
SkipPreTXT( wch );
- PadPlainTXT( swch, wch - swch );
- preTag = false;
- PadNL(); // add new line after pre is closed
+ PadPreTXT( swch, wch - swch );
}

break;
@@ -515,6 +572,7 @@

PadBOL();
AdjustPad( wsze( cl, textwidth ) );
+
yuiDebug() << "Anchors: " << anchors.size() << endl;

for ( unsigned i = 0; i < anchors.size(); ++i )
@@ -597,7 +655,8 @@

/**
* Get the number of columns needed to print a 'wstring'. Only printable
characters
- * are taken into account because others would return -1 (e.g. '\n').
+ * are taken into account because otherwise 'wcwidth' would return -1 (e.g.
for '\n').
+ * Tabs are calculated with tabsize().
* Attention: only use textWidth() to calculate space, not for iterating
through a text
* or to get the length of a text (real text length includes new lines).
*/
@@ -610,7 +669,13 @@
{
// check whether char is printable
if ( iswprint( *wstr_it ) )
- len += wcwidth( *wstr_it );
+ {
+ len += wcwidth( *wstr_it );
+ }
+ else if ( *wstr_it == '\t' )
+ {
+ len += myPad()->tabsize();
+ }
}

return len;
@@ -981,11 +1046,13 @@

if ( !endtag )
{
- preTag = true; // display plain text
+ preTag = true; // display text preserving newlines and spaces
+ AdjustPrePad( ech );
}
else
{
preTag = false;
+ PadNL(); // add new line (text may continue after
</pre>)
}

break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/src/NCRichText.h
new/yast2-ncurses-2.22.1/src/NCRichText.h
--- old/yast2-ncurses-2.22.0/src/NCRichText.h 2011-12-21 13:38:10.000000000
+0100
+++ new/yast2-ncurses-2.22.1/src/NCRichText.h 2012-02-07 10:33:44.000000000
+0100
@@ -91,8 +91,7 @@
unsigned cindent;
bool atbol;

- bool preTag; // default is false; set true
- // if <pre> tag is found
+ bool preTag; // <pre> tag

unsigned Tattr;

@@ -212,7 +211,8 @@
void PadBOL();
void PadWS( const bool tab = false );
void PadTXT( const wchar_t * sch, const unsigned len );
- void PadPlainTXT( const wchar_t * sch, const unsigned len );
+ void PadPreTXT( const wchar_t * sch, const unsigned len );
+ void AdjustPrePad( const wchar_t * sch );
bool PadTOKEN( const wchar_t * sch, const wchar_t *& ech );

protected:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/src/NCtext.cc
new/yast2-ncurses-2.22.1/src/NCtext.cc
--- old/yast2-ncurses-2.22.0/src/NCtext.cc 2011-12-21 13:23:56.000000000
+0100
+++ new/yast2-ncurses-2.22.1/src/NCtext.cc 2012-02-13 13:52:41.000000000
+0100
@@ -46,6 +46,7 @@
#include <wchar.h> // wcwidth
#include <langinfo.h>

+#include <boost/algorithm/string.hpp>

const NCstring NCtext::emptyStr;

@@ -81,7 +82,7 @@
if ( ntext.str().empty() )
return;

- const wstring & text( ntext.str() );
+ wstring text( ntext.str() );

wstring::size_type spos = 0;

@@ -89,6 +90,9 @@

bool sawnl = false; // saw new line

+ // handle DOS text
+ boost::erase_all( text, L"\r" );
+
while (( cpos = text.find( L'\n', spos ) ) != wstring::npos )
{
if ( sawnl )
@@ -119,8 +123,11 @@
if ( ntext.str().empty() )
return;

- const wstring & text( ntext.str() );
+ wstring text( ntext.str() );

+ // handle DOS text
+ boost::erase_all( text, L"\r" );
+
wstring::size_type spos = 0;

wstring::size_type cpos = wstring::npos;
@@ -194,7 +201,10 @@

for ( wstr_it = ( *line ).str().begin(); wstr_it != ( *line
).str().end() ; ++wstr_it )
{
- tmp_len += wcwidth( *wstr_it );
+ if ( iswprint( *wstr_it ) )
+ tmp_len += wcwidth( *wstr_it );
+ else if ( *wstr_it == L'\t' )
+ tmp_len += NCurses::tabsize();
}

if ( tmp_len > llen )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-ncurses-2.22.0/src/NCurses.h
new/yast2-ncurses-2.22.1/src/NCurses.h
--- old/yast2-ncurses-2.22.0/src/NCurses.h 2011-12-21 13:41:15.000000000
+0100
+++ new/yast2-ncurses-2.22.1/src/NCurses.h 2012-02-08 13:31:06.000000000
+0100
@@ -207,6 +207,8 @@

static int lines() { return ::LINES; }

+ static int tabsize() { return ::TABSIZE; }
+
void run();

public:

--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages