diff options
author | Simon Rettberg | 2014-03-15 01:49:50 +0100 |
---|---|---|
committer | Simon Rettberg | 2014-03-15 01:49:50 +0100 |
commit | bedd2e7ccb1595c23e159eaa952ae1b0b5a3d2ad (patch) | |
tree | c7d1995a09f6ed0c4e6873252e957d72f5d07d07 /normalize_dn.c | |
download | ldadp-bedd2e7ccb1595c23e159eaa952ae1b0b5a3d2ad.tar.gz ldadp-bedd2e7ccb1595c23e159eaa952ae1b0b5a3d2ad.tar.xz ldadp-bedd2e7ccb1595c23e159eaa952ae1b0b5a3d2ad.zip |
Lean and mean initial commit
Not much functionality yet
Diffstat (limited to 'normalize_dn.c')
-rw-r--r-- | normalize_dn.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/normalize_dn.c b/normalize_dn.c new file mode 100644 index 0000000..0cdf47e --- /dev/null +++ b/normalize_dn.c @@ -0,0 +1,26 @@ +#include <stddef.h> +#include <ctype.h> + +/* "ou=fnord; O=fefe; c=de" -> "ou=fnord,o=fefe,c=de" */ +/* returns the length of the new string */ +size_t normalize_dn(char* dest,const char* src,int len) { + int makelower=1; + char* orig=dest; + while (len) { + if (*src==';' || *src==',') { + *dest=','; + while (len>1 && src[1]==' ') { ++src; --len; } + makelower=1; + } else { + if (makelower) + *dest=tolower(*src); + else + *dest=*src; + if (*dest=='=') makelower=0; + } + ++dest; + ++src; + --len; + } + return dest-orig; +} |