static ERL_NIF_TERM make_atoms(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { ERL_NIF_TERM arr[7]; ERL_NIF_TERM existingatom0a, existingatom0b; ERL_NIF_TERM existing0atom0; const char * const an0atom = "an0atom"; const char an0atom0[8] = {'a','n','\0','a','t','o','m',0}; arr[0] = enif_make_atom(env, "an0atom"); arr[1] = enif_make_atom_len(env, "an0atom", 7); arr[2] = enif_make_atom_len(env, an0atom, 7); arr[3] = enif_make_atom_len(env, an0atom0, 8); if (!enif_make_existing_atom(env, "an0atom", &existingatom0a, ERL_NIF_LATIN1)) return enif_make_atom(env, "error"); arr[4] = existingatom0a; if (!enif_make_existing_atom_len(env, an0atom, 7, &existingatom0b, ERL_NIF_LATIN1)) return enif_make_atom(env, "error"); arr[5] = existingatom0b; if (!enif_make_existing_atom_len(env, an0atom0, 8, &existing0atom0, ERL_NIF_LATIN1)) return enif_make_atom(env, "error"); arr[6] = existing0atom0; return enif_make_tuple7(env, arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6]); }
int enif_make_existing_atom(ErlNifEnv* env, const char* name, ERL_NIF_TERM* atom, ErlNifCharEncoding enc) { return enif_make_existing_atom_len(env, name, sys_strlen(name), atom, enc); }