Hello community, here is the log from the commit of package bc for openSUSE:Factory checked in at 2012-09-17 13:47:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bc (Old) and /work/SRC/openSUSE:Factory/.bc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bc", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/bc/bc.changes 2011-12-02 09:25:49.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.bc.new/bc.changes 2012-09-17 13:47:48.000000000 +0200 @@ -1,0 +2,8 @@ +Thu May 31 12:56:27 UTC 2012 - [email protected] + +- update to upstream alpha 1.06.95 (2006-09-05), in use in other + major distros for quite a long time (Debian, Fedora, Ubuntu, ...) +- add patches from Fedora +- automake dependency removed + +------------------------------------------------------------------- Old: ---- bc-1.06-decl.diff bc-1.06-flex.diff bc-1.06-opt-expression.diff bc-1.06-strict-aliasing.diff bc-1.06.dif bc-1.06.tar.bz2 bc-1.06_getopt.patch New: ---- bc-1.06-dc_ibase.patch bc-1.06.95-matlib.patch bc-1.06.95-memleak.patch bc-1.06.95-sigintmasking.patch bc-1.06.95.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bc.spec ++++++ --- /var/tmp/diff_new_pack.3XTZm0/_old 2012-09-17 13:47:49.000000000 +0200 +++ /var/tmp/diff_new_pack.3XTZm0/_new 2012-09-17 13:47:49.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package bc # -# 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 @@ -16,23 +16,23 @@ # - Name: bc -BuildRequires: automake bison ed flex readline-devel +BuildRequires: bison +BuildRequires: ed +BuildRequires: flex +BuildRequires: readline-devel Url: ftp://ftp.gnu.org/pub/gnu/bc -License: GPL-2.0+ -Group: Productivity/Scientific/Math PreReq: %{install_info_prereq} -Version: 1.06 +Version: 1.06.95 Release: 0 Summary: GNU Command Line Calculator -Source: %{name}-%{version}.tar.bz2 -Patch: %{name}-%{version}.dif -Patch1: %{name}-%{version}-flex.diff -Patch2: %name-1.06-decl.diff -Patch3: %name-1.06-strict-aliasing.diff -Patch4: %{name}-%{version}_getopt.patch -Patch5: %{name}-%{version}-opt-expression.diff +License: GPL-2.0+ +Group: Productivity/Scientific/Math +Source: ftp://alpha.gnu.org/pub/gnu/bc/bc-%{version}.tar.bz2 +Patch1: bc-1.06-dc_ibase.patch +Patch2: bc-1.06.95-memleak.patch +Patch3: bc-1.06.95-matlib.patch +Patch4: bc-1.06.95-sigintmasking.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -55,15 +55,12 @@ %prep %setup -q -%patch -%patch1 -%patch2 -p1 -%patch3 -p1 -%patch4 -%patch5 +%patch1 -p1 -b .dc_ibase +%patch2 -p1 -b .memleak +%patch3 -p1 -b .matlib +%patch4 -p1 -b .sigintmask %build -autoreconf -fi ./configure CFLAGS="$RPM_OPT_FLAGS" \ --with-readline \ --prefix=/usr \ ++++++ bc-1.06-dc_ibase.patch ++++++ --- bc-1.06/dc/numeric.c.dc_ibase 2007-08-22 08:37:57.000000000 +0200 +++ bc-1.06/dc/numeric.c 2007-08-22 08:37:40.000000000 +0200 @@ -285,6 +285,8 @@ dc_getnum DC_DECLARG((input, ibase, read int digit; int decimal; int c; + int c_buff = 0; + int multi = 0; bc_init_num(&tmp); bc_init_num(&build); @@ -302,6 +304,9 @@ dc_getnum DC_DECLARG((input, ibase, read } while (isspace(c)) c = (*input)(); + c_buff = (*input)(); + if (isdigit(c_buff) || ('A' <= c_buff && c_buff <= 'F') || c_buff == '.') + multi = 1; for (;;){ if (isdigit(c)) digit = c - '0'; @@ -309,10 +314,15 @@ dc_getnum DC_DECLARG((input, ibase, read digit = 10 + c - 'A'; else break; - c = (*input)(); + digit = multi ? (digit >= ibase ? ibase -1 : digit) : digit; bc_int2num(&tmp, digit); bc_multiply(result, base, &result, 0); bc_add(result, tmp, &result, 0); + if (c_buff) { + c = c_buff; + c_buff = 0; + } else + c = (*input)(); } if (c == '.'){ bc_free_num(&build); @@ -321,13 +331,18 @@ dc_getnum DC_DECLARG((input, ibase, read build = bc_copy_num(_zero_); decimal = 0; for (;;){ - c = (*input)(); + if (c_buff) { + c = c_buff; + c_buff = 0; + } else + c = (*input)(); if (isdigit(c)) digit = c - '0'; else if ('A' <= c && c <= 'F') digit = 10 + c - 'A'; else break; + digit = digit >= ibase ? ibase -1 : digit; bc_int2num(&tmp, digit); bc_multiply(build, base, &build, 0); bc_add(build, tmp, &build, 0); ++++++ bc-1.06.95-matlib.patch ++++++ diff -urNp bc-1.06.95-orig/bc/storage.c bc-1.06.95/bc/storage.c --- bc-1.06.95-orig/bc/storage.c 2006-09-05 04:39:31.000000000 +0200 +++ bc-1.06.95/bc/storage.c 2010-12-22 10:26:43.805250912 +0100 @@ -99,6 +99,7 @@ more_functions (VOID) { f = &functions[indx]; f->f_defined = FALSE; + f->f_void = FALSE; f->f_body = (char *) bc_malloc (BC_START_SIZE); f->f_body_size = BC_START_SIZE; f->f_code_size = 0; @@ -179,7 +180,7 @@ more_arrays () /* Initialize the new elements. */ - for (; indx < v_count; indx++) + for (; indx < a_count; indx++) arrays[indx] = NULL; /* Free the old elements. */ ++++++ bc-1.06.95-memleak.patch ++++++ diff --git a/bc/bc.y b/bc/bc.y index 14dc4be..bd91c38 100644 --- a/bc/bc.y +++ b/bc/bc.y @@ -569,6 +569,7 @@ expression : named_expression ASSIGN_OP generate (">"); break; } + free($2); } | expression '+' expression { diff --git a/bc/util.c b/bc/util.c index 30beaf9..26e2e85 100644 --- a/bc/util.c +++ b/bc/util.c @@ -602,8 +602,7 @@ lookup (name, namekind) case FUNCTDEF: if (id->f_name != 0) { - if (namekind != FUNCT) - free(name); + free(name); /* Check to see if we are redefining a math lib function. */ if (use_math && namekind == FUNCTDEF && id->f_name <= 6) id->f_name = next_func++; ++++++ bc-1.06.95-sigintmasking.patch ++++++ Binary files bc-1.06.95-orig/dc/.dc.c.swp and bc-1.06.95/dc/.dc.c.swp differ diff -urNp bc-1.06.95-orig/dc/eval.c bc-1.06.95/dc/eval.c --- bc-1.06.95-orig/dc/eval.c 2006-06-04 13:04:40.000000000 +0200 +++ bc-1.06.95/dc/eval.c 2011-09-08 15:11:48.815060585 +0200 @@ -661,7 +661,9 @@ dc_evalfile DC_DECLARG((fp)) int next_negcmp = 0; dc_data datum; - signal(SIGINT, dc_trap_interrupt); + /* Do not mask SIGINT when running from stdin */ + if (fp != stdin) + signal(SIGINT, dc_trap_interrupt); stdin_lookahead = EOF; for (c=getc(fp); c!=EOF; c=peekc){ peekc = getc(fp); diff -urNp bc-1.06.95-orig/doc/dc.texi bc-1.06.95/doc/dc.texi --- bc-1.06.95-orig/doc/dc.texi 2006-06-11 10:15:54.000000000 +0200 +++ bc-1.06.95/doc/dc.texi 2011-09-08 15:09:37.032059798 +0200 @@ -126,6 +126,8 @@ To exit, use @samp{q}. (or whatever other keystroke your system uses to generate a @code{SIGINT}) does not exit; it is used to abort macros that are looping, etc. +This is not true if running on stdin to prevent accidental user confusion +about @kbd{C-c} unfunctionality. A reverse-polish calculator stores numbers on a stack. Entering a number pushes it on the stack. ++++++ bc-1.06.tar.bz2 -> bc-1.06.95.tar.bz2 ++++++ ++++ 39257 lines of diff (skipped) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
