482
482
register(?AC, self()),
483
483
process_flag(trap_exit, true),
484
484
put('$ancestors', [Init]), % OTP-5811, for gen_server compatibility
485
put('$initial_call', {application_controller, start, [Kernel]}),
485
put('$initial_call', {application_controller, start, 1}),
487
487
case catch check_conf() of
488
488
{ok, ConfData} ->
1415
1415
non_existing ->
1416
1416
{error, {file:format_error(enoent), FName}};
1418
case file:consult(FullName) of
1418
case prim_consult(FullName) of
1419
1419
{ok, [Application]} ->
1420
1420
{ok, make_appl_i(Application)};
1421
1421
{error, Reason} ->
1425
1425
make_appl(Application) ->
1426
1426
{ok, make_appl_i(Application)}.
1428
prim_consult(FullName) ->
1429
case erl_prim_loader:get_file(FullName) of
1431
case erl_scan:string(binary_to_list(Bin)) of
1432
{ok, Tokens, _EndLine} ->
1433
prim_parse(Tokens, []);
1434
{error, Reason, _EndLine} ->
1441
prim_parse(Tokens, Acc) ->
1442
case lists:splitwith(fun(T) -> element(1,T) =/= dot end, Tokens) of
1444
{ok, lists:reverse(Acc)};
1445
{Tokens2, [{dot,_} = Dot | Rest]} ->
1446
case erl_parse:parse_term(Tokens2 ++ [Dot]) of
1448
prim_parse(Rest, [Term | Acc]);
1453
case erl_parse:parse_term(Tokens2) of
1455
{ok, lists:reverse([Term | Acc])};
1428
1461
make_appl_i({application, Name, Opts}) when is_atom(Name), is_list(Opts) ->
1429
1462
Descr = get_opt(description, Opts, ""),
1430
1463
Id = get_opt(id, Opts, ""),