Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ed for openSUSE:Factory checked in at 2025-12-03 14:11:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ed (Old) and /work/SRC/openSUSE:Factory/.ed.new.14147 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ed" Wed Dec 3 14:11:38 2025 rev:42 rq:1320793 version:1.22.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ed/ed.changes 2025-08-25 20:36:03.494963564 +0200 +++ /work/SRC/openSUSE:Factory/.ed.new.14147/ed.changes 2025-12-03 14:11:40.752417372 +0100 @@ -1,0 +2,13 @@ +Mon Dec 1 19:45:50 UTC 2025 - Andreas Stieger <[email protected]> + +- GNU ed 1.22.3: + * The change to print the file name escaped when replaced into a + shell command has been reverted + * When '--unsafe-names' is not specified, only the control + characters \a, \b, \t, \v, \f, \n, \r, \033, and \177 are now + rejected in file names + * 'make check' now checks file names with non-ASCII characters + coded either in ISO-8859-1 or in UTF-8. + * 'EXIT STATUS' now has its own section in the man page + +------------------------------------------------------------------- Old: ---- ed-1.22.2.tar.xz New: ---- ed-1.22.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ed.spec ++++++ --- /var/tmp/diff_new_pack.VhXl6a/_old 2025-12-03 14:11:41.520449788 +0100 +++ /var/tmp/diff_new_pack.VhXl6a/_new 2025-12-03 14:11:41.524449957 +0100 @@ -18,7 +18,7 @@ Name: ed -Version: 1.22.2 +Version: 1.22.3 Release: 0 Summary: A line-oriented text editor License: GPL-3.0-or-later AND LGPL-2.1-or-later ++++++ ed-1.22.2.tar.xz -> ed-1.22.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/ChangeLog new/ed-1.22.3/ChangeLog --- old/ed-1.22.2/ChangeLog 2025-08-18 18:31:54.000000000 +0200 +++ new/ed-1.22.3/ChangeLog 2025-11-27 15:58:03.000000000 +0100 @@ -1,3 +1,12 @@ +2025-11-27 Antonio Diaz Diaz <[email protected]> + + * Version 1.22.3 released. + * main.c: (show_help): Print "*Exit status*" for section in man page. + (may_access_filename): Reject only control chars 7-13, 27, 127. + * main_loop.c (get_shell_command): Revert to using 'printf'. + (Reported by S�ren Tempel). + * check.sh: Check non-ASCII file names coded in ISO-8859-1 and UTF-8. + 2025-08-18 Antonio Diaz Diaz <[email protected]> * Version 1.22.2 released. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/NEWS new/ed-1.22.3/NEWS --- old/ed-1.22.2/NEWS 2025-08-18 17:55:59.000000000 +0200 +++ new/ed-1.22.3/NEWS 2025-11-27 22:01:18.000000000 +0100 @@ -1,3 +1,15 @@ +Changes in version 1.22.3: +The change to print the file name escaped when replaced into a shell command +has been reverted. (Reported by S�ren Tempel). + +When '--unsafe-names' is not specified, only the control characters \a, \b, +\t, \v, \f, \n, \r, \033, and \177 are now rejected in file names. + +'make check' now checks file names with non-ASCII characters coded either in +ISO-8859-1 or in UTF-8. + +'EXIT STATUS' now has its own section in the man page. + Changes in version 1.22.2: Newline characters are no longer allowed in file names even if '--unsafe-names' is specified. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/carg_parser.h new/ed-1.22.3/carg_parser.h --- old/ed-1.22.2/carg_parser.h 2025-07-15 09:33:26.000000000 +0200 +++ new/ed-1.22.3/carg_parser.h 2025-08-20 12:40:14.000000000 +0200 @@ -20,19 +20,18 @@ /* Arg_parser reads the arguments in 'argv' and creates a number of option codes, option arguments, and non-option arguments. - In case of error, 'ap_error' returns a non-null pointer to an error - message. + In case of error, 'ap_error' returns a pointer to an error message. 'options' is an array of 'struct ap_Option' terminated by an element containing a code which is zero. A null long_name means a short-only option. A code value outside the unsigned char range means a long-only option. - Arg_parser normally makes it appear as if all the option arguments - were specified before all the non-option arguments for the purposes - of parsing, even if the user of your program intermixed option and - non-option arguments. If you want the arguments in the exact order - the user typed them, call 'ap_init' with 'in_order' = true. + Arg_parser normally makes it appear as if all the options were specified + before all the non-option arguments for the purposes of parsing, even if + the user of your program intermixed options and non-option arguments. If + you want the arguments in the exact order the user typed them, call + 'ap_init' with 'in_order' = true. The argument '--' terminates all options; any following arguments are treated as non-option arguments, even if they begin with a hyphen. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/configure new/ed-1.22.3/configure --- old/ed-1.22.2/configure 2025-08-07 12:25:39.000000000 +0200 +++ new/ed-1.22.3/configure 2025-11-16 11:04:14.000000000 +0100 @@ -6,7 +6,7 @@ # to copy, distribute, and modify it. pkgname=ed -pkgversion=1.22.2 +pkgversion=1.22.3 progname=ed srctrigger=doc/${pkgname}.texi @@ -104,11 +104,9 @@ LDFLAGS=*) LDFLAGS=${optarg} ;; MAKEINFO=*) MAKEINFO=${optarg} ;; - --*) - echo "configure: WARNING: unrecognized option: '${option}'" 1>&2 ;; + --*) echo "configure: WARNING: unrecognized option: '${option}'" 1>&2 ;; *=* | *-*-*) ;; - *) - echo "configure: unrecognized option: '${option}'" 1>&2 + *) echo "configure: unrecognized option: '${option}'" 1>&2 echo "Try 'configure --help' for more information." 1>&2 exit 1 ;; esac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/doc/ed.1 new/ed-1.22.3/doc/ed.1 --- old/ed-1.22.2/doc/ed.1 2025-08-18 18:32:16.000000000 +0200 +++ new/ed-1.22.3/doc/ed.1 2025-11-27 22:02:50.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. -.TH ED "1" "August 2025" "GNU ed 1.22.2" "User Commands" +.TH ED "1" "November 2025" "GNU ed 1.22.3" "User Commands" .SH NAME ed \- line-oriented text editor .SH SYNOPSIS @@ -18,6 +18,9 @@ current line to the line number specified or to the first or last line matching the regular expression 'RE'. .PP +Start edit by reading in 'file' if given. +If 'file' begins with a '!', read output of shell command. +.PP The environment variable LINES can be used to set the initial window size. .SH OPTIONS .TP @@ -56,15 +59,11 @@ .TP \fB\-\-unsafe\-names\fR allow control characters in file names -.PP -Start edit by reading in 'file' if given. -If 'file' begins with a '!', read output of shell command. -.PP -Exit status: 0 for a normal exit, 1 for environmental problems -(invalid command\-line options, memory exhausted, command failed, etc), -2 for problems with the input file (file not found, buffer modified, -I/O errors), 3 for an internal consistency error (e.g., bug) which caused -ed to panic. +.SH "EXIT STATUS" +0 for a normal exit, 1 for environmental problems (invalid command\-line +options, memory exhausted, command failed, etc), 2 for problems with the +input file (file not found, buffer modified, I/O errors), 3 for an internal +consistency error (e.g., bug) which caused ed to panic. .SH "REPORTING BUGS" Report bugs to bug\[email protected] .br diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/doc/ed.info new/ed-1.22.3/doc/ed.info --- old/ed-1.22.2/doc/ed.info 2025-08-18 18:18:00.000000000 +0200 +++ new/ed-1.22.3/doc/ed.info 2025-11-27 14:08:29.000000000 +0100 @@ -18,7 +18,7 @@ The GNU ed line editor ********************** -This manual is for GNU ed (version 1.22.2, 18 August 2025). +This manual is for GNU ed (version 1.22.3, 27 November 2025). * Menu: @@ -398,9 +398,10 @@ restored when saving the buffer to a file. '--unsafe-names' - 'ed' rejects file names containing control characters unless they are - allowed with this option. Newline characters in file names are rejected - even if this option is specified. + 'ed' rejects file names containing the control characters '\a', '\b', + '\t', '\v', '\f', '\r', '\033', and '\177' unless they are allowed + with this option. Newline characters in file names are rejected even + if this option is specified. Exit status: 0 for a normal exit, 1 for environmental problems (invalid @@ -1604,20 +1605,20 @@ Tag Table: Node: Top529 -Node: Overview1899 -Node: Introduction to line editing4747 -Node: Invoking ed11960 -Node: Argument syntax15952 -Node: Line addressing17714 -Node: Regular expressions21730 -Node: Commands27900 -Ref: print suffixes28235 -Ref: shell escape command40748 -Node: The 's' Command42326 -Node: Limitations45220 -Node: Diagnostics46237 -Node: Problems47066 -Node: GNU Free Documentation License47598 +Node: Overview1901 +Node: Introduction to line editing4749 +Node: Invoking ed11962 +Node: Argument syntax16018 +Node: Line addressing17780 +Node: Regular expressions21796 +Node: Commands27966 +Ref: print suffixes28301 +Ref: shell escape command40814 +Node: The 's' Command42392 +Node: Limitations45286 +Node: Diagnostics46303 +Node: Problems47132 +Node: GNU Free Documentation License47664 End Tag Table diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/doc/ed.texi new/ed-1.22.3/doc/ed.texi --- old/ed-1.22.2/doc/ed.texi 2025-08-18 18:17:57.000000000 +0200 +++ new/ed-1.22.3/doc/ed.texi 2025-11-27 14:08:11.000000000 +0100 @@ -6,8 +6,8 @@ @finalout @c %**end of header -@set UPDATED 18 August 2025 -@set VERSION 1.22.2 +@set UPDATED 27 November 2025 +@set VERSION 1.22.3 @dircategory Basics @direntry @@ -455,9 +455,10 @@ buffer to a file. @item --unsafe-names -@command{ed} rejects file names containing control characters unless they -are allowed with this option. Newline characters in file names are rejected -even if this option is specified. +@command{ed} rejects file names containing the control characters @samp{\a}, +@samp{\b}, @samp{\t}, @samp{\v}, @samp{\f}, @samp{\r}, @samp{\033}, and +@samp{\177} unless they are allowed with this option. Newline characters in +file names are rejected even if this option is specified. @end table diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/ed.h new/ed-1.22.3/ed.h --- old/ed-1.22.2/ed.h 2025-08-18 17:33:07.000000000 +0200 +++ new/ed-1.22.3/ed.h 2025-10-10 13:47:21.000000000 +0200 @@ -102,7 +102,7 @@ bool get_extended_line( const char ** const ibufpp, int * const lenp, const bool strip_escaped_newlines ); const char * get_stdin_line( int * const sizep ); -int linenum( void ); +unsigned linenum( void ); bool print_lines( int from, const int to, const int pflags ); int read_file( const char * const filename, const int addr, bool * const read_onlyp ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/io.c new/ed-1.22.3/io.c --- old/ed-1.22.2/io.c 2025-08-18 17:07:56.000000000 +0200 +++ new/ed-1.22.3/io.c 2025-10-10 13:47:21.000000000 +0200 @@ -25,9 +25,9 @@ static const line_node * unterminated_line = 0; /* last line has no '\n' */ -static int linenum_ = 0; /* script line number */ +static unsigned linenum_ = 0; /* script line number */ -int linenum( void ) { return linenum_; } +unsigned linenum( void ) { return linenum_; } void reset_unterminated_line( void ) { unterminated_line = 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/main.c new/ed-1.22.3/main.c --- old/ed-1.22.2/main.c 2025-08-18 17:33:07.000000000 +0200 +++ new/ed-1.22.3/main.c 2025-11-27 12:43:40.000000000 +0100 @@ -79,6 +79,8 @@ printf( "\nThe file name may be preceded by '+line', '+/RE', or '+?RE' to set the\n" "current line to the line number specified or to the first or last line\n" "matching the regular expression 'RE'.\n" + "\nStart edit by reading in 'file' if given.\n" + "If 'file' begins with a '!', read output of shell command.\n" "\nThe environment variable LINES can be used to set the initial window size.\n" "\nOptions:\n" " -h, --help display this help and exit\n" @@ -93,13 +95,11 @@ " -v, --verbose be verbose; equivalent to the 'H' command\n" " --strip-trailing-cr strip carriage returns at end of text lines\n" " --unsafe-names allow control characters in file names\n" - "\nStart edit by reading in 'file' if given.\n" - "If 'file' begins with a '!', read output of shell command.\n" - "\nExit status: 0 for a normal exit, 1 for environmental problems\n" - "(invalid command-line options, memory exhausted, command failed, etc),\n" - "2 for problems with the input file (file not found, buffer modified,\n" - "I/O errors), 3 for an internal consistency error (e.g., bug) which caused\n" - "ed to panic.\n" + "\n*Exit status*\n" + "0 for a normal exit, 1 for environmental problems (invalid command-line\n" + "options, memory exhausted, command failed, etc), 2 for problems with the\n" + "input file (file not found, buffer modified, I/O errors), 3 for an internal\n" + "consistency error (e.g., bug) which caused ed to panic.\n" "\nReport bugs to [email protected]\n" "Ed home page: http://www.gnu.org/software/ed/ed.html\n" "General help using GNU software: http://www.gnu.org/gethelp\n" ); @@ -208,9 +208,10 @@ { set_error_msg( "Newline character not allowed in file names" ); return false; } if( safe_names ) - for( p = name; *p; ++p ) if( ( *p <= 31 && *p >= 1 ) || *p == 127 ) - { set_error_msg( "Control characters not allowed in file names" ); - return false; } + for( p = name; *p; ++p ) + if( ( *p <= 13 && *p >= 7 ) || *p == 27 || *p == 127 ) + { set_error_msg( "Control characters not allowed in file names" ); + return false; } return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/main_loop.c new/ed-1.22.3/main_loop.c --- old/ed-1.22.2/main_loop.c 2025-08-18 17:47:04.000000000 +0200 +++ new/ed-1.22.3/main_loop.c 2025-11-12 18:33:12.000000000 +0100 @@ -161,8 +161,7 @@ if( !resize_buffer( &shcmd, &shcmdsz, i + 1 ) ) return 0; memcpy( shcmd, buf, i ); shcmd[i] = 0; shcmdlen = i; - if( replacement ) - { print_escaped( shcmd + 1, true ); putchar('\n'); fflush( stdout ); } + if( replacement ) { printf( "%s\n", shcmd + 1 ); fflush( stdout ); } return shcmd; } @@ -844,7 +843,7 @@ set_warned( status == EMOD ); /* errors reset warned */ if( warned() ) set_error_msg( "Warning: buffer modified" ); if( !interactive() ) - { if( verbose ) printf( "script, line %d: %s\n", linenum(), errmsg ); + { if( verbose ) printf( "script, line %u: %s\n", linenum(), errmsg ); return ( status == FATAL ) ? 1 : err_status; } if( status == FATAL ) { if( verbose ) { printf( "%s\n", errmsg ); } return 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ed-1.22.2/testsuite/check.sh new/ed-1.22.3/testsuite/check.sh --- old/ed-1.22.2/testsuite/check.sh 2025-01-05 22:05:29.000000000 +0100 +++ new/ed-1.22.3/testsuite/check.sh 2025-10-15 00:52:27.000000000 +0200 @@ -29,7 +29,7 @@ printf "testing ed-%s...\n" "$2" -"${ED}" -q nx_file < empty +"${ED}" -q nx_file < empty # no such file [ $? = 2 ] || test_failed $LINENO "${ED}" -q +0 test.txt < empty # invalid line number [ $? = 1 ] || test_failed $LINENO @@ -52,6 +52,10 @@ printf "a\nHello world!\n.\ne test.txt\nf foo.txt\nf\nh\nH\nH\nkx\nl\nn\np\nP\nP\ny\n.z\n# comment\n=\n!:\n.\ne test.txt\n8p\n" | "${ED}" -s | grep -q 'agrarian' || test_failed $LINENO echo "q" | "${ED}" -q 'name_with_bell.txt' && test_failed $LINENO echo "q" | "${ED}" -q --unsafe-names 'name_with_bell.txt' || test_failed $LINENO +printf 'w caf�_iso.txt\nq\n' | "${ED}" -s test.txt || test_failed $LINENO +printf 'w café_utf.txt\nq\n' | "${ED}" -s test.txt || test_failed $LINENO +cmp 'caf�_iso.txt' 'café_utf.txt' || test_failed $LINENO +rm -f 'caf�_iso.txt' 'café_utf.txt' if [ ${fail} != 0 ] ; then echo ; fi
