From: 諏訪子 Date: Wed, 9 Oct 2024 04:57:36 +0000 (+0900) Subject: パスワードコピーの期間を設定出来る様に (#27) X-Git-Url: http://10.10.0.4:5575/?a=commitdiff_plain;h=023ad5a4598815148556f653e917848808143ab5;p=sp.git パスワードコピーの期間を設定出来る様に (#27) --- diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a9674a..c06054f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * パスワード表示で、「OpenPGP」かどうかの確認の追加 * 侵害されたパスワードの確認の追加 * 複数サイトで同じパスワードを利用かどうか、パスワードの長さ、又はパスワードの強さの確認 +* パスワードコピーの期間を設定出来る様に # 1.4.0 * Haiku対応 diff --git a/main.c b/main.c index 1e58568..0d1dc41 100644 --- a/main.c +++ b/main.c @@ -105,7 +105,7 @@ int main(int argc, char *argv[]) { if (pass == NULL) return -1; printf("%s\n", pass); } - else if (strcmp(argv[1], "-y") == 0) yankpass(argv[2]); + else if (strcmp(argv[1], "-y") == 0) yankpass(argv[2], 45); else if (strcmp(argv[1], "-a") == 0) addpass(argv[2]); else if (strcmp(argv[1], "-d") == 0) delpass(argv[2], 0); else if (strcmp(argv[1], "-e") == 0) { @@ -129,6 +129,12 @@ int main(int argc, char *argv[]) { usage(); return 1; } + } else if (argc == 4) { + if (strcmp(argv[1], "-y") == 0) { + int i; + if (sscanf(argv[3], "%d", &i) == 0) yankpass(argv[2], 45); + else yankpass(argv[2], atoi(argv[3])); + } } else if (argc == 2) { char *basePath = getfullpath(NULL); if (basePath == NULL) return -1; diff --git a/man/sp-en.1 b/man/sp-en.1 index ee57b60..30affba 100644 --- a/man/sp-en.1 +++ b/man/sp-en.1 @@ -3,7 +3,7 @@ sp - Simple Password Manager .br .B sp -[-bfi] [-i \fI\,gpg-id\fR] [-adeosy \fI\,password\fR] [-c \fI,all\fR|\fI,length\fR|\fI,strength\fR|\fI,duplicate\fR] [-g [\fI\,length\fR] [\fI\,secure\fR|\fI\,risk\fR]] +[-bfi] [-i \fI\,gpg-id\fR] [-adeos \fI\,password\fR] [-c \fI,all\fR|\fI,length\fR|\fI,strength\fR|\fI,duplicate\fR] [-g [\fI\,length\fR] [\fI\,secure\fR|\fI\,risk\fR]] [-y \fI\,password\fR [\fI,seconds\fR]] .SH DESCRIPTION .PP Simple Password Manager @@ -53,8 +53,10 @@ Show password \fB\,v\fR Show version .TP -\fB\,y\fR \fI\,password\fR +\fB\,y\fR \fI\,password\fR \fI,seconds\fR Copy password to the clipboard without showing the password (Xorg-only) +.br +The default is 45 seconds. .SH LANGUAGE The default language is Japanese. In order to use English, .br diff --git a/man/sp-jp.1 b/man/sp-jp.1 index 79e0319..94fe122 100644 --- a/man/sp-jp.1 +++ b/man/sp-jp.1 @@ -3,7 +3,7 @@ sp - Simple Password Manager .br .B sp -[-bfi] [-i \fI\,gpg-id\fR] [-adeosy \fI\,password\fR] [-c \fI,all\fR|\fI,length\fR|\fI,strength\fR|\fI,duplicate\fR] [-g [\fI\,length\fR] [\fI\,secure\fR|\fI\,risk\fR]] +[-bfi] [-i \fI\,gpg-id\fR] [-adeos \fI\,password\fR] [-c \fI,all\fR|\fI,length\fR|\fI,strength\fR|\fI,duplicate\fR] [-g [\fI\,length\fR] [\fI\,secure\fR|\fI\,risk\fR]] [-y \fI\,password\fR [\fI,seconds\fR]] .SH 説明 .PP シンプルなパスワードマネージャー。 @@ -52,8 +52,10 @@ GPGと使ってパスワードストレージを初期設定 \fB\,v\fR バージョンを表示 .TP -\fB\,y\fR \fI\,password\fR +\fB\,y\fR \fI\,password\fR \fI,seconds\fR パスワードを表示せずクリップボードにコピーする(Xorgのみ) +.br +デフォルトは45秒です。 .SH LANGUAGE デフォルトの言語は日本語ですが、英語で利用するには、 .br diff --git a/src/yankpass.c b/src/yankpass.c index ecc30f7..4a46c74 100644 --- a/src/yankpass.c +++ b/src/yankpass.c @@ -5,7 +5,7 @@ #include "yankpass.h" #include "showpass.h" -void yankpass(char *file) { +void yankpass(char *file, int copyTimeout) { char *lang = getlang(); // Xセッションではない場合(例えば、SSH、TTY、Gayland等)、showpass()を実行して @@ -116,20 +116,23 @@ void yankpass(char *file) { pclose(pipe); - // 45秒後、クリップボードから削除する + // 何(デフォルトは45)秒後、クリップボードから削除する if (strncmp(lang, "en", 2) == 0) printf( - "%s\n%s\n", + "%s\n%s%d%s\n", "Added password to the clipboard.", - "After 45 seconds it'll be deleted from the clipboard." + "After ", + copyTimeout, + " seconds it'll be deleted from the clipboard." ); else printf( - "%s\n%s\n", + "%s\n%d%s\n", "パスワードをクリップボードに追加しました。", - "45秒後はクリップボードから取り消されます。" + copyTimeout, + "秒後はクリップボードから取り消されます。" ); - sleep(45); + sleep(copyTimeout); system("echo -n | xclip -selection clipboard"); // 掃除 diff --git a/src/yankpass.h b/src/yankpass.h index e97d95c..58e447f 100644 --- a/src/yankpass.h +++ b/src/yankpass.h @@ -1,6 +1,6 @@ #ifndef YANKPASS_H #define YANKPASS_H -void yankpass(char *file); +void yankpass(char *file, int copyTimeout); #endif