← All posts tagged code

oxpa
code TIL
json таки можно валидировать регуляркой. Also, я узнал про ?(DEFINE)

(?(DEFINE)
     (?<number>   -? (?= [1-9]|0(?!\d) ) \d+ (\.\d+)? ([eE] [+-]? \d+)? )    
     (?<boolean>   true | false | null )
     (?<string>    " ([^"\\\\]* | \\\\ ["\\\\bfnrt\/] | \\\\ u [0-9a-f]{4} )* " )
     (?<array>     \[  (?:  (?&json)  (?: , (?&json)  )*  )?  \s* \] )
     (?<pair>      \s* (?&string) \s* : (?&json)  )
     (?<object>    \{  (?:  (?&pair)  (?: , (?&pair)  )*  )?  \s* \} )
     (?<json>   \s* (?: (?&number) | (?&boolean) | (?&string) | (?&array) | (?&object) ) \s* )
  )
  \A (?&json) \Z
  /six
oxpa
code work
ну вот, на запуск сислог-нг у меня ушла почти неделя О_о И это я ещё не закончил пилить свою rpm'ку: конфиг придётся править, состав модулей, может, поменять... Да и вообще, мало ли что-где. Но уже сейчас я в восторге от того, что конфиг сделан вообще 1 в 1 как в nginx'е: аккуратненько собраны определения "откуда", "куда" и коммутация этих направлений. Полный, щенячий восторг. На радостях подумал, что пора определиться с тем, чего же я хочу от него. А то оно столько всего умеет *__*
also, узнал про тэг *code. Рекомендую. Половину сообщений с ним писать теперь буду. Спасибо @sergey-klay за уместное замечание к одному из предыдущих сообщений.
oxpa
code Linux work
Это всё-таки круто, в одном месте поправить код, а в другом - забыть. Как называется процесс, когда смотрят код, ищут в нём вызовы функций и смотрят, что в эти вызовы передаётся? Review?

void
nv_registry_add_alias(NVRegistry *self, NVHandle handle, const gchar *alias)
{
  g_static_mutex_lock(&nv_registry_lock);

  g_hash_table_insert(self->name_map, (gchar*)alias, GUINT_TO_POINTER((glong) handle));
  g_static_mutex_unlock(&nv_registry_lock);
}

NVHandle
nv_registry_alloc_handle(NVRegistry *self, const gchar *name)
{
/*skipped a bit*/
  stored.name_len = len;
  stored.name = g_strdup(name);
  g_array_append_val(self->names, stored);
  g_hash_table_insert(self->name_map, stored.name, GUINT_TO_POINTER(self->names->len));
}