]> Nishi Git Mirror - sp.git/commitdiff
パスワードコピーの期間を設定出来る様に (#27)
author諏訪子 <suwako@076.moe>
Wed, 9 Oct 2024 04:57:36 +0000 (13:57 +0900)
committer諏訪子 <suwako@076.moe>
Wed, 9 Oct 2024 04:57:36 +0000 (13:57 +0900)
CHANGELOG.md
main.c
man/sp-en.1
man/sp-jp.1
src/yankpass.c
src/yankpass.h

index 1a9674a61d15e59c4b138f7072bd52c1e947e2c6..c06054fe0a71c3ba934613acf88637fd046b9b13 100644 (file)
@@ -2,6 +2,7 @@
 * パスワード表示で、「OpenPGP」かどうかの確認の追加
 * 侵害されたパスワードの確認の追加
 * 複数サイトで同じパスワードを利用かどうか、パスワードの長さ、又はパスワードの強さの確認
+* パスワードコピーの期間を設定出来る様に
 
 # 1.4.0
 * Haiku対応
diff --git a/main.c b/main.c
index 1e585682e0e2586496cf4378ffd6e14c964766f8..0d1dc41a9869f29bb440ba016add9e109a378ce0 100644 (file)
--- 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;
index ee57b60931caaba3da0fdf9a309ad4c182c3797e..30affba8289cf398409d311b77275a05cc494101 100644 (file)
@@ -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
index 79e03192d2d7c1c6caeceae3a84ef9dfcd2376e8..94fe122e0de21f69d8aab881bfa416a4d467a9fb 100644 (file)
@@ -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
index ecc30f7551c2ad87c00ab1e2b0050aa03ca52d25..4a46c74fc08e64ebea3435068a204ee6153bd336 100644 (file)
@@ -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");
 
   // 掃除
index e97d95c9f4d67219cbb5bad47d2ea24153c9903f..58e447f988ee413359f97a0891b3314e3f6757ed 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef YANKPASS_H
 #define YANKPASS_H
 
-void yankpass(char *file);
+void yankpass(char *file, int copyTimeout);
 
 #endif