+
+function common_copy_args($from) {
+ $to = array();
+ $strip = get_magic_quotes_gpc();
+ foreach ($from as $k => $v) {
+ $to[$k] = ($strip) ? stripslashes($v) : $v;
+ }
+ return $to;
+}
+
+function common_user_uri(&$user) {
+ return common_local_url('userbyid', array('id' => $user->id));
+}
+
+function common_notice_uri(&$notice) {
+ return common_local_url('shownotice',
+ array('notice' => $notice->id));
+}
+
+# 36 alphanums - lookalikes (0, O, 1, I) = 32 chars = 5 bits
+
+function common_confirmation_code($bits) {
+ # 36 alphanums - lookalikes (0, O, 1, I) = 32 chars = 5 bits
+ static $codechars = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
+ $chars = ceil($bits/5);
+ $code = '';
+ for ($i = 0; $i < $chars; $i++) {
+ # XXX: convert to string and back
+ $num = hexdec(common_good_rand(1));
+ $code .= $codechars[$num%32];
+ }
+ return $code;
+}