On Thu, Jul 10, 2025 at 11:55 PM David E. Wheeler <da...@justatheory.com> wrote:
> On Jul 10, 2025, at 16:38, Florents Tselai <florents.tse...@gmail.com> > wrote: > > > Why isn’t this sufficient? > > > > static uint64 > > pg_base64_encode_internal(const char *src, size_t len, char *dst, bool > url) > > { > > const char *alphabet = url ? _base64url : _base64; > > Ah, it is. I hadn’t got that far. I was tripped up to see this in your > patch: > > ```patch > +static uint64 > +pg_base64url_encode(const char *src, size_t len, char *dst) > +{ > + uint64 encoded_len; > + if (len == 0) > + return 0; > + > + encoded_len = pg_base64_encode(src, len, dst); > + > + /* Convert Base64 to Base64URL */ > + for (uint64 i = 0; i < encoded_len; i++) { > + if (dst[i] == '+') > + dst[i] = '-'; > + else if (dst[i] == '/') > + dst[i] = '_'; > + } > + > + /* Trim '=' padding */ > + while (encoded_len > 0 && dst[encoded_len - 1] == '=') > + encoded_len--; > + > + return encoded_len; > +} > ``` > > I didn’t realize it was a set of patches for stuff you did and then later > undid. Could you flatten the patch into just what’s changed at the end? > Attached
v4-0001-Add-base64url.patch
Description: Binary data