Why did I write that i am sorry

FossilOrigin-Name: 653ac1bac39e5f982c332a45088d2c4f0c530ee56590296e089c3af216b84462
This commit is contained in:
me@ow.nekobit.net 2022-03-24 03:27:32 +00:00
parent 6aecb7226f
commit 5067d9517d

View file

@ -35,43 +35,18 @@ char* construct_notification(struct mstdnt_notification* notif, int* size)
return notif_html;
}
/* https://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightLinear */
static unsigned trail_bits(unsigned int v)
{
unsigned int c; // output: c will count v's trailing zero bits,
// so if v is 1101000 (base 2), then c will be 3
if (v)
{
v = (v ^ (v - 1)) >> 1; // Set v's trailing 0s to 1s and zero rest
for (c = 0; v; c++)
{
v >>= 1;
}
}
else
{
c = CHAR_BIT * sizeof(v);
}
return c;
}
const char* notification_type_str(mstdnt_notification_t type)
{
/* Taking advantage of the bitshift in the definitions,
* we create a table based on the index
* See: mastodont_c/include/mastodont_notif_types.h */
char* notif_type_table[] = {
L10N[L10N_EN_US][L10N_NOTIF_COMPACT_FOLLOW],
L10N[L10N_EN_US][L10N_NOTIF_COMPACT_FOLLOW_REQUEST],
"",
L10N[L10N_EN_US][L10N_NOTIF_COMPACT_REPEATED],
L10N[L10N_EN_US][L10N_NOTIF_COMPACT_LIKED],
L10N[L10N_EN_US][L10N_NOTIF_COMPACT_POLL],
"",
L10N[L10N_EN_US][L10N_NOTIF_COMPACT_REACTED_WITH],
};
return notif_type_table[trail_bits((unsigned)type)];
switch (type)
{
case MSTDNT_NOTIFICATION_FOLLOW: return L10N[L10N_EN_US][L10N_NOTIF_COMPACT_FOLLOW];
case MSTDNT_NOTIFICATION_FOLLOW_REQUEST: return L10N[L10N_EN_US][L10N_NOTIF_COMPACT_FOLLOW_REQUEST];
case MSTDNT_NOTIFICATION_REBLOG: return L10N[L10N_EN_US][L10N_NOTIF_COMPACT_REPEATED];
case MSTDNT_NOTIFICATION_FAVOURITE: return L10N[L10N_EN_US][L10N_NOTIF_COMPACT_LIKED];
case MSTDNT_NOTIFICATION_POLL: return L10N[L10N_EN_US][L10N_NOTIF_COMPACT_POLL];
case MSTDNT_NOTIFICATION_EMOJI_REACT: return L10N[L10N_EN_US][L10N_NOTIF_COMPACT_REACTED_WITH];
default: return "";
}
}
char* construct_notification_compact(struct mstdnt_notification* notif, int* size)