From 371a0326766852bbf36544a1ea4ae066a0fa860a Mon Sep 17 00:00:00 2001 From: Nidhish Chauhan Date: Fri, 19 Jun 2026 11:59:03 +0530 Subject: [PATCH] cpat: init at 1.4.2 --- pkgs/by-name/cp/cpat/format-security.patch | 44 ++++++++++++++++++++++ pkgs/by-name/cp/cpat/package.nix | 32 ++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 pkgs/by-name/cp/cpat/format-security.patch create mode 100644 pkgs/by-name/cp/cpat/package.nix diff --git a/pkgs/by-name/cp/cpat/format-security.patch b/pkgs/by-name/cp/cpat/format-security.patch new file mode 100644 index 000000000000..d5c2eda85a99 --- /dev/null +++ b/pkgs/by-name/cp/cpat/format-security.patch @@ -0,0 +1,44 @@ +diff --git a/src/cpat.c b/src/cpat.c +index 4bb5dec..6aeeca3 100644 +--- a/src/cpat.c ++++ b/src/cpat.c +@@ -126,10 +126,10 @@ pager(char *title,char* text,int num_phrases, char **phrases) + + /* Add title and header lines */ + wattron(outer,A_UNDERLINE); +- mvwprintw(outer,2,4,title); ++ mvwprintw(outer,2,4,"%s",title); + xtermtitle(title); + wattroff(outer,A_UNDERLINE); +- for (i = 0;i < num_phrases;i++) mvwprintw(outer,4+i,4,phrases[i]); ++ for (i = 0;i < num_phrases;i++) mvwprintw(outer,4+i,4,"%s",phrases[i]); + wrefresh(outer); + + /* Values for inner window */ +@@ -244,10 +244,10 @@ d Scroll forward half a page\n\ + q Exit pager",-1,NULL); + box(outer,0,0); + wattron(outer,A_UNDERLINE); +- mvwprintw(outer,2,4,title); ++ mvwprintw(outer,2,4,"%s",title); + xtermtitle(title); + wattroff(outer,A_UNDERLINE); +- for (i = 0;i < num_phrases;i++) mvwprintw(outer,4+i,4,phrases[i]); ++ for (i = 0;i < num_phrases;i++) mvwprintw(outer,4+i,4,"%s",phrases[i]); + wrefresh(outer); + prev_line = -1; /* force page refresh */ + break; +@@ -354,11 +354,11 @@ menu(char *title,char **queries,int num_queries, + box(outer, 0, 0); + + wattron(outer,A_UNDERLINE); +- mvwprintw(outer,title_y,4,title); ++ mvwprintw(outer,title_y,4,"%s",title); + xtermtitle(title); + wattroff(outer,A_UNDERLINE); + for (i = 0;i < num_phrases;i++) +- mvwprintw(outer,phrases_y+i,6,phrases[i]); ++ mvwprintw(outer,phrases_y+i,6,"%s",phrases[i]); + wrefresh(outer); + + input = newwin(inner_h,inner_w,inner_y,inner_x); diff --git a/pkgs/by-name/cp/cpat/package.nix b/pkgs/by-name/cp/cpat/package.nix new file mode 100644 index 000000000000..f8c4e312bcc7 --- /dev/null +++ b/pkgs/by-name/cp/cpat/package.nix @@ -0,0 +1,32 @@ +{ + lib, + stdenv, + fetchurl, + ncurses, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "cpat"; + version = "1.4.2"; + + src = fetchurl { + url = "https://downloads.sourceforge.net/project/cpat/v1.4.2/cpat-${finalAttrs.version}.tar.gz"; + hash = "sha256-viVbaU21tI4lU+0WoSzRW81aUPzCIkJKjJR/BPEFO2c="; + }; + + __structuredAttrs = true; + strictDeps = true; + + patches = [ ./format-security.patch ]; + + buildInputs = [ ncurses ]; + + meta = { + description = "A curses based card games application"; + homepage = "https://sourceforge.net/projects/cpat/"; + mainProgram = "cpat"; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ castorNova2 ]; + }; +})