Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nudoku for openSUSE:Factory checked in at 2025-08-20 13:27:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nudoku (Old) and /work/SRC/openSUSE:Factory/.nudoku.new.29662 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nudoku" Wed Aug 20 13:27:31 2025 rev:11 rq:1300473 version:6.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nudoku/nudoku.changes 2024-08-27 19:39:47.681633749 +0200 +++ /work/SRC/openSUSE:Factory/.nudoku.new.29662/nudoku.changes 2025-08-20 13:28:57.745521713 +0200 @@ -1,0 +2,19 @@ +Wed Aug 20 10:01:47 UTC 2025 - Michael Vetter <mvet...@suse.com> + +- Update to 6.0.0: + * Wrap around board edges when navigating with arrow keys (pr #68) + * Update Turkish translation (pr #69) + * Print sudoku stream to stdout (pr #71) + * Fix build with gettext 0.24.1+ (pr #73) +- Drop nudoku-Fix-build-with-gettext-0.24.1.patch + +------------------------------------------------------------------- +Wed Aug 20 09:33:01 UTC 2025 - Thomas Zimmermann <tzimmerm...@suse.com> + +- Convert to %autosetup + +- Add nudoku-Fix-build-with-gettext-0.24.1.patch: Adds the local m4/ + directory to the autoconf macro search patch. Fixes an issue with + gettext macros not being available at build time. + +------------------------------------------------------------------- Old: ---- nudoku-5.0.0.tar.gz New: ---- nudoku-6.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nudoku.spec ++++++ --- /var/tmp/diff_new_pack.Zl8qbG/_old 2025-08-20 13:28:58.281543999 +0200 +++ /var/tmp/diff_new_pack.Zl8qbG/_new 2025-08-20 13:28:58.281543999 +0200 @@ -1,7 +1,7 @@ # # spec file for package nudoku # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: nudoku -Version: 5.0.0 +Version: 6.0.0 Release: 0 Summary: Ncurses based sudoku game License: GPL-3.0-only @@ -37,7 +37,7 @@ %lang_package %prep -%setup -q +%autosetup -p1 %build autoreconf -fi ++++++ nudoku-5.0.0.tar.gz -> nudoku-6.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nudoku-5.0.0/ChangeLog new/nudoku-6.0.0/ChangeLog --- old/nudoku-5.0.0/ChangeLog 2024-08-27 09:10:10.000000000 +0200 +++ new/nudoku-6.0.0/ChangeLog 2025-08-20 11:59:01.000000000 +0200 @@ -1,6 +1,12 @@ +5.0.0 to 6.0.0 (2025-08-20) + * Wrap around board edges when navigating with arrow keys (pr #68) + * Update Turkish translation (pr #69) + * Print sudoku stream to stdout (pr #71) + * Fix build with gettext 0.24.1+ (pr #73) + 4.0.1 to 5.0.0 (2024-08-27) * Add Ukrainian translation (pr #62) - * Don't create ambiguous games are generated (#50, pr#63) + * Don't create ambiguous games (#50, pr #63) * Allow to pause game (#47, pr #65) 4.0.0 to 4.0.1 (2024-05-06) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nudoku-5.0.0/configure.ac new/nudoku-6.0.0/configure.ac --- old/nudoku-5.0.0/configure.ac 2024-08-27 09:10:10.000000000 +0200 +++ new/nudoku-6.0.0/configure.ac 2025-08-20 11:59:01.000000000 +0200 @@ -2,8 +2,9 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([nudoku], [5.0.0], [jub...@iodoru.org]) +AC_INIT([nudoku], [6.0.0], [jub...@iodoru.org]) AC_CONFIG_SRCDIR([src/main.c]) +AC_CONFIG_MACRO_DIRS([m4]) AM_INIT_AUTOMAKE([foreign]) # Check for pkg-config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nudoku-5.0.0/man/nudoku.6 new/nudoku-6.0.0/man/nudoku.6 --- old/nudoku-5.0.0/man/nudoku.6 2024-08-27 09:10:10.000000000 +0200 +++ new/nudoku-6.0.0/man/nudoku.6 2025-08-20 11:59:01.000000000 +0200 @@ -1,5 +1,5 @@ .\" Manpage for nudoku. -.TH man 6 "27 August 2024" "5.0.0" "nudoku man page" +.TH man 6 "20 August 2025" "6.0.0" "nudoku man page" .SH NAME nudoku \- ncurses based sudoku game .SH SYNOPSIS @@ -57,6 +57,10 @@ .BR \-c Do not use colors. Black and white mode. Some terminals don't support colors, use this option in this case. +.BR \-o +Output stream. +Print a single sudoku onto standard output. Notation is in stream format like used by -s. + .BR \-d Choose difficulty. Available options are: easy, normal, hard diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nudoku-5.0.0/po/tr.po new/nudoku-6.0.0/po/tr.po --- old/nudoku-5.0.0/po/tr.po 2024-08-27 09:10:10.000000000 +0200 +++ new/nudoku-6.0.0/po/tr.po 2025-08-20 11:59:01.000000000 +0200 @@ -7,7 +7,7 @@ "Project-Id-Version: nudoku 1.0.0\n" "Report-Msgid-Bugs-To: jub...@iodoru.org\n" "POT-Creation-Date: 2024-08-24 09:59+0300\n" -"PO-Revision-Date: 2024-03-29 19:50+0300\n" +"PO-Revision-Date: 2024-09-08 18:46+0300\n" "Last-Translator: Oğuz Ersen <o...@ersen.moe>\n" "Language-Team: Turkish <tr>\n" "Language: tr\n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Gtranslator 45.3\n" +"X-Generator: Gtranslator 46.1\n" #: src/main.c:107 #, c-format @@ -59,22 +59,22 @@ #: src/main.c:114 #, c-format msgid "-r resume:\t\tResume the last saved game\n" -msgstr "" +msgstr "-r resume:\t\tSon kaydedilen oyuna devam et\n" #: src/main.c:115 #, c-format msgid "-p filename:\t\tOutput PDF\n" -msgstr "" +msgstr "-p dosyaadı:\t\tPDF olarak dışa aktar\n" #: src/main.c:116 #, c-format msgid "-n filename:\t\tNumber of sudokus to put in PDF\n" -msgstr "" +msgstr "-n dosyaadı:\t\tPDF dosyasına yazılacak sudoku sayısı\n" #: src/main.c:117 #, c-format msgid "-i filename:\t\tOutput PNG image\n" -msgstr "" +msgstr "-i dosyaadı:\t\tPNG resmi olarak dışa aktar\n" #: src/main.c:131 #, c-format @@ -94,7 +94,7 @@ #: src/main.c:305 #, c-format msgid "Game save is missing or corrupted, try starting new game.\n" -msgstr "" +msgstr "Oyun kaydı eksik veya bozuk, yeni oyun başlatmayı deneyin.\n" #: src/main.c:375 msgid "" @@ -159,7 +159,7 @@ #: src/main.c:488 msgid " G - Save\n" -msgstr "" +msgstr " G - Kaydet\n" #: src/main.c:489 msgid " Q - Quit\n" @@ -179,17 +179,18 @@ #: src/main.c:493 msgid " u - Undo previous action\n" -msgstr "" +msgstr " u - Önceki eylemi geri al\n" #: src/main.c:652 #, c-format msgid "nudoku is compiled without cairo support.\n" -msgstr "" +msgstr "nudoku cairo desteği olmadan derlendi.\n" #: src/main.c:653 #, c-format msgid "To use the output feature, please compile with --enable-cairo.\n" msgstr "" +"Dışa aktarma özelliğini kullanmak için lütfen --enable-cairo ile derleyin.\n" #: src/main.c:760 msgid "Solving puzzle..." @@ -222,11 +223,11 @@ #: src/main.c:864 msgid "Saved!" -msgstr "" +msgstr "Kaydedildi!" #: src/main.c:867 msgid "Can't save the game!" -msgstr "" +msgstr "Oyun kaydedilemiyor!" #: src/sudoku.c:251 msgid "hard" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nudoku-5.0.0/src/main.c new/nudoku-6.0.0/src/main.c --- old/nudoku-5.0.0/src/main.c 2024-08-27 09:10:10.000000000 +0200 +++ new/nudoku-6.0.0/src/main.c 2025-08-20 11:59:01.000000000 +0200 @@ -76,6 +76,7 @@ static bool g_useColor = true; static bool g_playing = false; static bool g_useHighlights = false; +static bool g_output_stream = false; /* is the -o flag set */ static char* g_provided_stream = NULL; /* in case of -s flag the user provides the sudoku stream */ static bool g_resume_game = false; /* in case of -r flag and saved game state */ static int g_resume_level; /* store difficulty of the resume game */ @@ -109,6 +110,7 @@ printf(_("-h help:\t\tPrint this help\n")); printf(_("-v version:\t\tPrint version\n")); printf(_("-c nocolor:\t\tDo not use colors\n")); + printf(_("-o output:\t\tOutput stream (inverse of -s)\n")); printf(_("-d difficulty:\t\tChoose between: easy, normal, hard\n")); printf(_("-s stream:\t\tUser provided sudoku stream\n")); printf(_("-r resume:\t\tResume the last saved game\n")); @@ -273,10 +275,18 @@ return true; } +void generate_stream_output(int difficulty) { + char* stream = generate_puzzle(difficulty); + + printf("%s\n", stream); + + free(stream); +} + static void parse_arguments(int argc, char *argv[]) { int opt; - while ((opt = getopt(argc, argv, "hvcrs:d:p:i:n:")) != -1) + while ((opt = getopt(argc, argv, "hvcors:d:p:i:n:")) != -1) { switch (opt) { @@ -289,6 +299,9 @@ case 'c': g_useColor = false; break; + case 'o': + g_output_stream = true; + break; case 's': if (!is_valid_stream(optarg)) exit(EXIT_FAILURE); @@ -643,6 +656,12 @@ parse_arguments(argc, argv); srand(time(NULL)); + if (g_output_stream) + { + generate_stream_output(g_level); + return EXIT_SUCCESS; + } + if (g_outputFilename) { #ifdef ENABLE_CAIRO @@ -696,51 +715,64 @@ { case 'h': case KEY_LEFT: - if(x>5) + if (x-GRID_NUMBER_START_X <= 0) { + x = GRID_NUMBER_START_X + GRID_LINE_DELTA*8; + } + else if(x>5) { x -= GRID_LINE_DELTA; - if(g_playing) - { - // if we have highlighting enabled, we need to redraw the whole grid - // so we can have the new colors in the matching colors. - // this should only be done when we are playing, because plain_board - // is actually the one being solved and thus displayed. - // this is true for all movement keys. - fill_grid(user_board, plain_board, x, y); - } + + } + if(g_playing) + { + // if we have highlighting enabled, we need to redraw the whole grid + // so we can have the new colors in the matching colors. + // this should only be done when we are playing, because plain_board + // is actually the one being solved and thus displayed. + // this is true for all movement keys. + fill_grid(user_board, plain_board, x, y); } break; case 'l': case KEY_RIGHT: - if(x<34) + if ((x-GRID_NUMBER_START_X) / GRID_LINE_DELTA >= 8) { + x = GRID_NUMBER_START_X; + } + else if(x<34) { x += GRID_LINE_DELTA; - if(g_playing) - { - fill_grid(user_board, plain_board, x, y); - } + } + if(g_playing) + { + fill_grid(user_board, plain_board, x, y); } break; case 'k': case KEY_UP: - if(y>2) + if (y-GRID_NUMBER_START_Y <= 0) { + y = GRID_NUMBER_START_Y + GRID_COL_DELTA*8; + } + else if(y>2) { y -= GRID_COL_DELTA; - if(g_playing) - { - fill_grid(user_board, plain_board, x, y); - } + } + if(g_playing) + { + fill_grid(user_board, plain_board, x, y); } break; case 'j': case KEY_DOWN: - if(y<17) + if ((y-GRID_NUMBER_START_Y) / GRID_COL_DELTA >= 8) { + y = GRID_NUMBER_START_Y; + } + else if(y<17) { y += GRID_COL_DELTA; - if(g_playing) - { - fill_grid(user_board, plain_board, x, y); - } + } + if(g_playing) + { + fill_grid(user_board, plain_board, x, y); } break; case 'Q':