aboutsummaryrefslogtreecommitdiffstats
path: root/src/passphrase.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/passphrase.c')
-rw-r--r--src/passphrase.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/passphrase.c b/src/passphrase.c
index f1ce7b7..86cc54c 100644
--- a/src/passphrase.c
+++ b/src/passphrase.c
@@ -162,7 +162,7 @@ char* passphrase_read(void)
#pragma GCC diagnostic ignored "-Wpedantic"
xputchar(c);
#pragma GCC diagnostic pop
- *(rc + len++) = c;
+ *(rc + len++) = (char)c;
point++;
}
#ifdef PASSPHRASE_INSERT
@@ -180,14 +180,14 @@ char* passphrase_read(void)
for (i = len; i > point; i--)
*(rc + i) = *(rc + i - 1);
len++;
- *(rc + point++) = c;
+ *(rc + point++) = (char)c;
}
#endif
#ifdef PASSPHRASE_OVERRIDE
else
{
long n = 1;
- char cn = c;
+ char cn = (char)c;
while ((*(rc + point + n) & 0xC0) == 0x80)
n++;
for (i = point + n; i < len; i++)
@@ -198,7 +198,7 @@ char* passphrase_read(void)
n = 0;
while (cn & 0x80)
{
- cn <<= 1;
+ cn = (char)(cn << 1);
n++;
}
n = n ? n : 1;
@@ -219,7 +219,7 @@ char* passphrase_read(void)
#pragma GCC diagnostic ignored "-Wpedantic"
xputchar(c);
#pragma GCC diagnostic pop
- *(rc + point++) = c;
+ *(rc + point++) = (char)c;
}
}
#endif
@@ -352,6 +352,12 @@ char* passphrase_read(void)
}
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wsuggest-attribute=const"
+# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
+/* Must positively absolutely not be flagged as possible to optimise away as it depends on configurations,
+ and programs that uses this library must not be forced to be recompiled if the library is reconfigured. */
+
/**
* Disable echoing and do anything else to the terminal settnings `passphrase_read` requires
*/
@@ -381,3 +387,5 @@ void passphrase_reenable_echo(void)
#endif
}
+# pragma GCC diagnostic pop
+