]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1811: Amiga: Initialization of random buffer can be improved v9.1.1811
authorOla Söder <rolfkopman@gmail.com>
Mon, 29 Sep 2025 20:19:36 +0000 (20:19 +0000)
committerChristian Brabandt <cb@256bit.org>
Mon, 29 Sep 2025 20:19:36 +0000 (20:19 +0000)
Problem:  Amiga: Initialization of random buffer can be improved
Solution: Use RANDOM device when available (Ola Söder)

closes: #18419

Signed-off-by: Ola Söder <rolfkopman@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/os_amiga.c
src/proto/os_amiga.pro [changed mode: 0644->0755]
src/version.c

index d09974f949f535b07238785fa71b3e95701fe25a..aa50779ecaea0211b1c1d256f0c27187e3398fe2 100644 (file)
@@ -1768,3 +1768,31 @@ mch_setenv(char *var, char *value, int x UNUSED)
        return 0;   // success
     return -1;     // failure
 }
+
+/*
+ * Fill the buffer 'buf' with 'len' random bytes.
+ * Returns FAIL if RANDOM: is not available or something went wrong.
+ */
+    int
+mch_get_random(char_u *buf, int len)
+{
+    struct Process *proc = (struct Process *) FindTask(0L);
+    APTR win = proc->pr_WindowPtr;
+
+    // Don't show requester if RANDOM: doesn't exist
+    proc->pr_WindowPtr = (APTR) -1L;
+
+    BPTR fh = Open("RANDOM:", MODE_OLDFILE);
+
+    proc->pr_WindowPtr = win;
+
+    int status;
+
+    if (!fh || Read(fh, buf, len) != len)
+       status = FAIL;
+    else
+       status = OK;
+
+    Close(fh);
+    return status;
+}
old mode 100644 (file)
new mode 100755 (executable)
index abebae1..86d1490
@@ -43,4 +43,5 @@ int mch_has_exp_wildcard(char_u *p);
 int mch_has_wildcard(char_u *p);
 char_u *mch_getenv(char_u *var);
 int mch_setenv(char *var, char *value, int x);
+int mch_get_random(char_u *buf, int len);
 /* vim: set ft=c : */
index b82a01a92f4e4afaccfeab4cf74e652b6e164a0d..5c74bc0e1361ddab8bcf1fa0df428885ae969396 100644 (file)
@@ -729,6 +729,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1811,
 /**/
     1810,
 /**/