-
Notifications
You must be signed in to change notification settings - Fork 0
/
install_lisaac.c
2720 lines (2638 loc) · 101 KB
/
install_lisaac.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* C code generated by Lisaac compiler (www.lisaac.org) */
#define _LARGE_FILE_API
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
int print_string(char *str);
int arg_count;
char **arg_vector;
/*==========================*/
/* EXTERNAL */
/*==========================*/
/* INSTALL_LISAAC */
#include <unistd.h>
/* UINTEGER_64 */
#include <stdint.h>
/* SYSTEM */
#include <time.h>
/* SYSTEM_IO */
#include <stdio.h>
#include <stdlib.h>
/* Hardware 'print_char' */
void print_char(char car)
{
fputc(car,stdout);
}
/* Hardware 'exit' */
int die_with_code(int code)
{
exit(code);
}
/* MEMORY */
//#define MINIMUM_SIZE 256
#define MINIMUM_SIZE 384
void *table_size[MINIMUM_SIZE/sizeof(void *)];
void *last_block[64];
/* FLOAT_REAL */
#include <math.h>
/*==========================*/
/* TYPE */
/*==========================*/
/* Generic Object */
struct ___OBJ {
unsigned int __id;
};
typedef struct li__1B_struct __li__1B;
typedef struct li__Y_struct __li__Y;
typedef struct li__0MF_struct __li__0MF;
/* NULL */
#ifndef NULL
#define NULL ((void *)0)
#endif
typedef signed int __li__K;
typedef char __li__BB;
/* li__1B */
#define __li__1B__ 0
struct li__1B_struct {
unsigned int __id;
__li__K li__GC;
__li__K li__3OF;
__li__BB *li__UOF;
};
/* li__Y */
#define __li__Y__ 1
struct li__Y_struct {
unsigned int __id;
__li__K li__ZB;
__li__BB *li__0B;
};
typedef char __li__C;
typedef void * __li__IB;
typedef unsigned long __li__VLF;
typedef unsigned int __li__U;
/* li__0MF */
#define __li__0MF__ 0
struct li__0MF_struct {
__li__0MF *li__2MF;
volatile __li__VLF li__3MF;
__li__0MF *li__4MF;
__li__0MF *li__5MF;
} __attribute__ ((packed));
#define li__B__ 1
#define li__I__ 0
typedef signed char __li__O1;
typedef signed int __li__Q;
void *table_type[1];
/*==========================*/
/* GLOBAL */
/*==========================*/
__li__1B li__1B_={__li__1B__};
#define li__1B__ (&li__1B_)
__li__Y li__Y_={__li__Y__};
#define li__Y__ (&li__Y_)
__li__0MF li__0MF_;
#define li__0MF__ (&li__0MF_)
__li__VLF li__NMF;
__li__VLF li__QMF;
__li__VLF li__AZH;
__li__VLF li__SFP;
__li__IB li__Q1G;
__li__0MF *li__TRP;
__li__1B *li__AC;
__li__1B *li__KC;
__li__1B *li__PC;
__li__1B *li__RC;
__li__K li__UE;
__li__1B *li__2E;
__li__1B *li__DG;
__li__Y *li__SC;
__li__Y *li__MH;
__li__Y *li__PH;
__li__Y *li__SH;
__li__C li__OLC;
__li__BB li__0LC;
__li__1B *li__HO;
/*==========================*/
/* STRING CONSTANT */
/*==========================*/
__li__Y __string_1={__li__Y__,106,"\t\t================================\n\t\\
t= Auto-Install Lisaac Compiler =\n\t\t================================\n\n"};
__li__Y __string_2={__li__Y__,4,"HOME"};
__li__Y __string_3={__li__Y__,5,"SHELL"};
__li__Y __string_4={__li__Y__,17,"Detection system."};
__li__Y __string_5={__li__Y__,48," Error : SHELL environment variable is em\
pty !\n"};
__li__Y __string_6={__li__Y__,7,"Unknown"};
__li__Y __string_7={__li__Y__,4,"bash"};
__li__Y __string_8={__li__Y__,8,"/.bashrc"};
__li__Y __string_9={__li__Y__,11,"Unix - bash"};
__li__Y __string_10={__li__Y__,29,"\n# **** LISAAC COMPILER ****\n"};
__li__Y __string_11={__li__Y__,12,"export PATH="};
__li__Y __string_12={__li__Y__,12,"/bin:$PATH\n\n"};
__li__Y __string_13={__li__Y__,4,"tcsh"};
__li__Y __string_14={__li__Y__,7,"/.cshrc"};
__li__Y __string_15={__li__Y__,11,"Unix - tcsh"};
__li__Y __string_16={__li__Y__,10,"set path=("};
__li__Y __string_17={__li__Y__,13,"/bin $path)\n\n"};
__li__Y __string_18={__li__Y__,3,"zsh"};
__li__Y __string_19={__li__Y__,8,"/.zshenv"};
__li__Y __string_20={__li__Y__,10,"Unix - zsh"};
__li__Y __string_21={__li__Y__,24," Shell not recognized: "};
__li__Y __string_22={__li__Y__,12,"C:\\msdos.sys"};
__li__Y __string_23={__li__Y__,15,"C:\\autoexec.bat"};
__li__Y __string_24={__li__Y__,13,"Windows - DOS"};
__li__Y __string_25={__li__Y__,33,"\r\nREM **** LISAAC COMPILER ****\r\n"};
__li__Y __string_26={__li__Y__,9,"set path="};
__li__Y __string_27={__li__Y__,15,"\\bin;%path%\r\n\r\n"};
__li__Y __string_28={__li__Y__,17," System detect: "};
__li__Y __string_29={__li__Y__,5,"Menu."};
__li__Y __string_30={__li__Y__,75,"1- User installation (recommended).\n2- S\
ystem installation (root).\n0- Exit."};
__li__Y __string_31={__li__Y__,26,"#define LISAAC_DIRECTORY \""};
__li__Y __string_32={__li__Y__,15,"/usr/lib/lisaac"};
__li__Y __string_33={__li__Y__,2,"\"\n"};
__li__Y __string_34={__li__Y__,10,"bin/path.h"};
__li__Y __string_35={__li__Y__,6,"lisaac"};
__li__Y __string_36={__li__Y__,11,"build_label"};
__li__Y __string_37={__li__Y__,12," binary path"};
__li__Y __string_38={__li__Y__,2," ["};
__li__Y __string_39={__li__Y__,8,"/usr/bin"};
__li__Y __string_40={__li__Y__,10,"] ? (y/n) "};
__li__Y __string_41={__li__Y__,14,"\n new path : "};
__li__Y __string_42={__li__Y__,9,"mkdir -p "};
__li__Y __string_43={__li__Y__,14,"cp bin/lisaac "};
__li__Y __string_44={__li__Y__,11,"cp -rf lib "};
__li__Y __string_45={__li__Y__,12,"cp make.lip "};
__li__Y __string_46={__li__Y__,2,"/."};
__li__Y __string_47={__li__Y__,15,"cp bin/shorter "};
__li__Y __string_48={__li__Y__,15,"cp -rf shorter "};
__li__Y __string_49={__li__Y__,18,"Documentation path"};
__li__Y __string_50={__li__Y__,17,"/usr/share/lisaac"};
__li__Y __string_51={__li__Y__,18,"cp -rf doc/html/* "};
__li__Y __string_52={__li__Y__,8,"Man path"};
__li__Y __string_53={__li__Y__,19,"/usr/share/man/man1"};
__li__Y __string_54={__li__Y__,17,"cp -rf doc/man/* "};
__li__Y __string_55={__li__Y__,241,"\n*-------------------------------------\
--------------------*\n| Note: For Editor feature, please execute \
|\n| `install_lisaac' in user mode. |\n*------\
---------------------------------------------------*\n"};
__li__Y __string_56={__li__Y__,7,"\nBye.\n\n"};
__li__Y __string_57={__li__Y__,5,"Step "};
__li__Y __string_58={__li__Y__,3," : "};
__li__Y __string_59={__li__Y__,10,"\n\nChoice:\n"};
__li__Y __string_60={__li__Y__,19,"Incorrect range [0-"};
__li__Y __string_61={__li__Y__,2,"]\n"};
__li__Y __string_62={__li__Y__,18,"Incorrect number.\n"};
__li__Y __string_63={__li__Y__,112,"1- Compiler & Shorter Installation.\n2- \
Editor Installation.\n3- Build the librarie documentation (HTML).\n0- Exit."};
__li__Y __string_64={__li__Y__,34,"Fix target variable in `make.lip'."};
__li__Y __string_65={__li__Y__,38,"Installation of environment variables."};
__li__Y __string_66={__li__Y__,98," Auto-install fail !\n You have to chan\
ge your environment variables as following: \n set path="};
__li__Y __string_67={__li__Y__,13,"\\bin;%path%\n\n"};
__li__Y __string_68={__li__Y__,36,"Installation of Lisaac library path."};
__li__Y __string_69={__li__Y__,10,"src/path.h"};
__li__Y __string_70={__li__Y__,31,"Compilation of Lisaac compiler."};
__li__Y __string_71={__li__Y__,28,"Compilation of Shorter tool."};
__li__Y __string_72={__li__Y__,228,"Welcome to the Lisaac World ! \
\n============================= \n\
Installation successfull. \n Run `lisaac' to \
compile. \n"};
__li__Y __string_73={__li__Y__,360,"*---------------------------------------\
------------------*\n| Note: You'll have to reboot or reloaded environnement\
|\n| to acknowledge the changes. |\n| OR f\
or bash users, doing a `source ~/.bashrc' should |\n| do the job. \
|\n*--------------------------------------\
-------------------*\n"};
__li__Y __string_74={__li__Y__,23,"Editor mode for Lisaac."};
__li__Y __string_75={__li__Y__,104,"1- Emacs (recommended).\n2- Vim.\n3- Kat\
e.\n4- Hippoedit (windows only).\n5- eFTE.\n6- Eclipse.\n0- Exit menu."};
__li__Y __string_76={__li__Y__,40,"Installation of `lisaac-mode' for Emacs."};
__li__Y __string_77={__li__Y__,2,"C:"};
__li__Y __string_78={__li__Y__,7,"/.emacs"};
__li__Y __string_79={__li__Y__,24,";; **** LISAAC MODE ****"};
__li__Y __string_80={__li__Y__,24,"\n(setq load-path (cons \""};
__li__Y __string_81={__li__Y__,28,"/editor/emacs/\" load-path))\n"};
__li__Y __string_82={__li__Y__,193,"(add-to-list 'auto-mode-alist '(\"\\\\.l\
i\\\\'\" . lisaac-mode))\n(add-to-list 'auto-mode-alist '(\"\\\\.lip\\\\'\" \
. lisaac-mode))\n(autoload 'lisaac-mode \"lisaac-mode\" \"Major mode for Lis\
aac Programs\" t)\n\n"};
__li__Y __string_83={__li__Y__,37,"Installation of `lisaac.vim' for Vim."};
__li__Y __string_84={__li__Y__,38," Sorry, not Vim editor for windows.\n\n"};
__li__Y __string_85={__li__Y__,49,"cp -f editor/vim/syntax/lisaac.vim ~/.vim\
/syntax/"};
__li__Y __string_86={__li__Y__,3," `"};
__li__Y __string_87={__li__Y__,2,"'\t"};
__li__Y __string_88={__li__Y__,90,"\n Sorry, auto-install fail !\n You can\
read the `editor/vim/install_vim_plugin.sh' file.\n"};
__li__Y __string_89={__li__Y__,4,"OK.\n"};
__li__Y __string_90={__li__Y__,49,"cp -f editor/vim/indent/lisaac.vim ~/.vim\
/indent/"};
__li__Y __string_91={__li__Y__,297,"\n It is recommanded to install the def\
ault vimrc file provided by the \n lisaac installer. \
\n\n If you choose not doing this action, y\
our vimrc will only be updated \n Do you want to install the default con\
fig provided by lisaac installer ?"};
__li__Y __string_92={__li__Y__,7,"/.vimrc"};
__li__Y __string_93={__li__Y__,5," A `"};
__li__Y __string_94={__li__Y__,155,"\nsyntax on \n\
filetype plugin on \nfiletype indent on \
\nau BufNewFile,BufRead *.li setf lisaac\n"};
__li__Y __string_95={__li__Y__,50,"' file has no need to change. Current ver\
sion is:\n"};
__li__Y __string_96={__li__Y__,39,"' file has been updated. Old value is:\n"};
__li__Y __string_97={__li__Y__,16," New value is:\n"};
__li__Y __string_98={__li__Y__,30,"' file has been updated with:\n"};
__li__Y __string_99={__li__Y__,30,"' file has been created with:\n"};
__li__Y __string_100={__li__Y__,7,"Error: "};
__li__Y __string_101={__li__Y__,16,"Not create file!"};
__li__Y __string_102={__li__Y__,16," Confirmation ?"};
__li__Y __string_103={__li__Y__,34,"Not open file (Write protection) !"};
__li__Y __string_104={__li__Y__,31,"cp -f editor/vim/vimrc ~/.vimrc"};
__li__Y __string_105={__li__Y__,41,"Installation of `lisaac_v2.xml' for Kate."};
__li__Y __string_106={__li__Y__,37," Sorry, not Kate editor for windows."};
__li__Y __string_107={__li__Y__,64,"cp -f editor/kate/lisaac.xml ~/.kde/shar\
e/apps/katepart/syntax/."};
__li__Y __string_108={__li__Y__,78,"\n Sorry, auto-install fail !\n You ca\
n to read the `editor/kate/README' file."};
__li__Y __string_109={__li__Y__,3,"OK."};
__li__Y __string_110={__li__Y__,48,"Installation of `lisaac_spec.xml' for Hi\
ppoedit."};
__li__Y __string_111={__li__Y__,78,"copy editor/hippoedit/lisaac_spec.xml \"\
C:\\Program Files\\HippoEDIT\\data\\syntax\""};
__li__Y __string_112={__li__Y__,12," Execute: `"};
__li__Y __string_113={__li__Y__,5,"Fail!"};
__li__Y __string_114={__li__Y__,3,"Ok."};
__li__Y __string_115={__li__Y__,46," Sorry, Hippoedit editor is only for Wi\
ndows."};
__li__Y __string_116={__li__Y__,26,"Installation of eFTE mode."};
__li__Y __string_117={__li__Y__,73," Note: eFTE Lisaac mode is native.\n \
See: `http://efte.cowgar.com'"};
__li__Y __string_118={__li__Y__,29,"Installation of Eclipse mode."};
__li__Y __string_119={__li__Y__,250," Prerequisite: you need the Eclipse pac\
kage installed.\n Use the Eclipse Update Manager to install the Lisaac Mode \
with the URL:\n http://isaacproject.u-strasbg.fr/eclipse/update/\n\n Plea\
se, read `editor/eclipse/README' file for further information.\n"};
__li__Y __string_120={__li__Y__,60,"Build the librarie documentation with Sh\
orter (HTML format)."};
__li__Y __string_121={__li__Y__,24,"#define LISAAC_DIRECTORY"};
__li__Y __string_122={__li__Y__,30,"gcc -U_FORTIFY_SOURCE -O3 bin/"};
__li__Y __string_123={__li__Y__,10,".c -o bin/"};
__li__Y __string_124={__li__Y__,19," Execute command `"};
__li__Y __string_125={__li__Y__,20,"' (please wait ...)\n"};
__li__Y __string_126={__li__Y__,51," Auto-install fail !\n You want to com\
pile a `bin/"};
__li__Y __string_127={__li__Y__,10,".c' file.\n"};
__li__Y __string_128={__li__Y__,16,"Error: execute `"};
__li__Y __string_129={__li__Y__,2,"'\n"};
__li__Y __string_130={__li__Y__,32," + target:STRING := \"windows\";\n"};
__li__Y __string_131={__li__Y__,34,"\n Note: Use `mingw' for Windows.\n"};
__li__Y __string_132={__li__Y__,29," + target:STRING := \"unix\";\n"};
__li__Y __string_133={__li__Y__,60," Compile `shorter' tools for your syste\
m (please wait ...)\n"};
__li__Y __string_134={__li__Y__,66,"lisaac src/make.lip -shorter -q -boost -\
o bin/shorter -gcc -Ibin/."};
__li__Y __string_135={__li__Y__,17,"del bin\\shorter.c"};
__li__Y __string_136={__li__Y__,70,"bin\\lisaac src/make.lip -shorter -q -bo\
ost -o bin/shorter -gcc -Isrc/."};
__li__Y __string_137={__li__Y__,16,"rm bin/shorter.c"};
__li__Y __string_138={__li__Y__,70,"bin/lisaac src/make.lip -shorter -q -boo\
st -o bin/shorter -gcc -Isrc/."};
__li__Y __string_139={__li__Y__,14," Shorter ok!\n"};
__li__Y __string_140={__li__Y__,32," Sorry, `shorter' not ready...\n"};
__li__Y __string_141={__li__Y__,37,"bin\\shorter -d -f belinda -o doc\\html"};
__li__Y __string_142={__li__Y__,37,"bin/shorter -d -f belinda -o doc/html"};
__li__Y __string_143={__li__Y__,70," OK\n\n Note: you'll find this documen\
tation in `doc/html/index.html'\n"};
__li__Y __string_144={__li__Y__,8," Fail!\n"};
__li__Y __string_145={__li__Y__,7," (y/n) "};
__li__Y __string_146={__li__Y__,8,"make.lip"};
__li__Y __string_147={__li__Y__,10," + target"};
__li__Y __string_148={__li__Y__,19,"Not enough memory.\n"};
/*==========================*/
/* FUNCTION HEADER */
/*==========================*/
/* Source code */
static __li__1B* li__RD(__li__K li__TD);
static void li__YX(__li__Y *li__ZX);
static __li__BB* li__HXG(__li__1B *li__IXG);
static void li__1NF(__li__1B *li__2NF,__li__BB *li__3NF);
static void li__IDJ(__li__1B *li__JDJ,__li__1B *li__KDJ);
static __li__1B* li__YD(void *li__0D);
static void li__QE(void *li__SE,__li__K li__TE);
static void li__QFJ(__li__1B *li__RFJ,void *li__SFJ);
static __li__K li__ULG(__li__1B *li__VLG,__li__Y *li__WLG);
static void li__AIJ(__li__1B *li__BIJ,__li__Y *li__CIJ);
static void li__OFJ(__li__1B *li__PFJ);
static __li__K li__0N(void *li__2N,void *li__3N,__li__K li__4N);
static void li__PP();
static void li__YGJ(__li__1B *li__ZGJ,void *li__0GJ);
static void li__MJJ(__li__1B *li__NJJ,void *li__OJJ);
static void li__CMB(void *li__EMB,__li__1B *li__GMB);
static void li__RIB(__li__Y *li__TIB);
static __li__BB li__LLC();
static __li__C li__3HE();
static __li__C li__X3E(__li__BB li__Y3E);
static void li__RWH(__li__1B *li__SWH,__li__BB li__TWH);
static void li__MIL(__li__1B *li__NIL,__li__K li__OIL,__li__K li__PIL);
static void li__OSB(__li__1B *li__QSB);
static void li__XQB();
static void li__CJB(__li__C li__EJB);
static void li__5KB();
static __li__1B* li__PLF(__li__1B *li__QLF);
static __li__BB* li__TNI(__li__K li__VNI);
static void li__I1K(__li__BB *li__J1K,__li__BB *li__K1K,__li__K li__L1K);
static void li__IS(__li__K li__JS,__li__1B *li__KS);
static __li__BB* li__IOI(__li__BB *li__JOI,__li__K li__KOI,__li__K li__LOI);
static void li__2UK(__li__BB *li__3UK,__li__BB *li__4UK,__li__K li__5UK,__li__K li__AVK);
static __li__C li__EHF(__li__BB li__FHF);
static void li__E3Q(__li__K li__F3Q);
static void li__JUJ(__li__1B *li__KUJ,__li__1B *li__LUJ);
static void li__13B(__li__1B *li__33B,__li__Y *li__43B,__li__1B *li__53B);
static void li__VVJ(__li__1B *li__WVJ);
static void li__PYK(__li__1B *li__QYK,__li__K li__RYK);
static void li__1FN(__li__BB *li__2FN,__li__K li__3FN,__li__K li__4FN,__li__K li__5FN);
static __li__BB li__I5C(void *li__K5C);
static __li__K li__IRD(__li__BB *li__JRD,__li__K li__LRD);
static __li__C li__AZJ(__li__1B *li__BZJ,void *li__CZJ);
static void li__5WJ(__li__1B *li__AXJ,void *li__BXJ,__li__K li__CXJ);
static __li__C li__KGC(__li__1B *li__MGC);
static void li__FXC(void *li__JXC);
static __li__IB li__VBH(__li__VLF li__XBH,__li__IB li__YBH,__li__U li__ZBH);
static __li__IB li__YZI(__li__VLF li__0ZI);
static void li__AJP(__li__IB li__CJP,__li__IB li__DJP,__li__VLF li__EJP);
static void li__QWS(__li__0MF *li__RWS,__li__IB li__SWS,__li__VLF li__TWS);
static __li__0MF* li__QQP(__li__VLF li__SQP);
static void li__IPS(__li__0MF *li__JPS);
static void li__E5S(__li__0MF *li__F5S);
static void li__KMK(__li__BB *li__LMK,__li__K li__MMK,__li__K li__NMK);
static __li__IB li__RYH(__li__U li__TYH);
static __li__0MF* li__IFP();
/*==========================*/
/* SOURCE CODE */
/*==========================*/
int main(int argc,char **argv)
{
__li__1B *li__ZK,*li__ZN,*li__4CE,*li__JC,*li__OS,*li__US,*li__TOG;
__li__1B *li__RHY,*li__DIY;
__li__IB li__QJ;
__li__K li__S0Y,li__XOG,li__YOG,li__40Y;
__li__BB *li__DC,*li__A1Y;
__li__C li__OG,li__4G,li__WOG,li__XGE,li__BHE,li__3GE,li__0NE,li__KHE;
__li__C li__UHE,li__H1D,li__V1D,li__41D,li__11D,li__3IE;
__li__BB li__PIC,li__CMC;
__li__O1 li__DMC,li__MMC,li__3MC,li__4MC;
arg_count = argc;
arg_vector = argv;
#ifdef _PTHREAD_H
pthread_key_create(¤t_thread, NULL);
pthread_attr_init(&thread_attr);
/*pthread_attr_setdetachstate(&thread_attr,PTHREAD_CREATE_DETACHED);*/
#endif
;
li__NMF=((__li__VLF ) 0);
li__QMF=((__li__VLF ) 0);
li__AZH=((__li__VLF ) 0);
li__0MF__->li__3MF=((__li__VLF ) 0);
li__SFP=((__li__VLF ) 0);
li__Q1G=((__li__IB )(NULL));
li__ZK=li__RD( 256);
li__AC=li__ZK;
li__ZN=li__RD( 256);
li__2E=li__ZN;
li__0LC='\0';
li__4CE=li__RD( 1024);
li__HO=li__4CE;
li__YX((&__string_1));
((__li__1B *)li__ZK)->li__GC= 0;
li__DC=li__HXG(((__li__1B *)li__ZK));
getcwd((li__DC),255);
li__1NF(((__li__1B *)li__ZK),li__DC);
li__JC=li__RD(li__ZK->li__GC);
li__KC=li__JC;
li__IDJ(((__li__1B *)li__JC),li__ZK);
li__JC=li__YD((&__string_2));
li__PC=li__JC;
li__JC=li__YD((&__string_3));
li__RC=li__JC;
li__QE((&__string_4), 0);
if (((void *)li__RC != (void *)NULL)) {
li__OS=li__PC;
li__US=li__RD(li__PC->li__GC);
li__QFJ(((__li__1B *)li__US),li__OS);
li__DG=li__US;
if ((((__li__1B *)li__RC)->li__GC == 0)) {
li__YX((&__string_5));
li__SC=(&__string_6);
li__OG=li__B__;
} else /* FALSE */ {
li__OG=li__I__;
};
if (li__OG) {
li__OG=li__B__;
} else /* FALSE */ {
li__S0Y=li__ULG(((__li__1B *)li__RC),(&__string_7));
if ((li__S0Y != 0)) {
li__4G=li__B__;
} else /* FALSE */ {
li__TOG=((__li__1B *)li__RC);
li__WOG=li__I__;
li__XOG= 0;
li__YOG= 0;
if (( 3 <= li__TOG->li__GC)) {
li__XOG=(__li__K)((__li__K)(li__TOG->li__GC - 3) + 1);
li__YOG= 1;
li__40Y=li__TOG->li__GC;
li__A1Y=li__TOG->li__UOF;
while ((! (((li__XOG > li__40Y) || (li__YOG > 3)) || (((__li__BB *)li__A1Y)[(__li__K)(li__XOG - 1)] != "/sh"[(__li__K)(li__YOG - 1)])))) {
li__XOG=(__li__K)(li__XOG + 1);
li__YOG=(__li__K)(li__YOG + 1);
};
li__WOG=(li__XOG > li__TOG->li__GC);
};
li__4G=li__WOG;
};
if (li__4G) {
li__AIJ(((__li__1B *)li__DG),(&__string_8));
li__SC=(&__string_9);
li__MH=(&__string_10);
li__PH=(&__string_11);
li__SH=(&__string_12);
};
li__OG=li__4G;
};
if (li__OG) {
li__OG=li__B__;
} else /* FALSE */ {
li__S0Y=li__ULG(((__li__1B *)li__RC),(&__string_13));
li__4G=(li__S0Y != 0);
if (li__4G) {
li__AIJ(((__li__1B *)li__DG),(&__string_14));
li__SC=(&__string_15);
li__MH=(&__string_10);
li__PH=(&__string_16);
li__SH=(&__string_17);
};
li__OG=li__4G;
};
if ((! li__OG)) {
li__S0Y=li__ULG(((__li__1B *)li__RC),(&__string_18));
if ((li__S0Y != 0)) {
li__AIJ(((__li__1B *)li__DG),(&__string_19));
li__SC=(&__string_20);
li__MH=(&__string_10);
li__PH=(&__string_11);
li__SH=(&__string_12);
} else /* FALSE */ {
li__YX((&__string_21));
li__OFJ(((__li__1B *)li__RC));
fputc((int)('\n'),stdout);
li__SC=(&__string_6);
};
};
} else /* FALSE */ {
li__QFJ(((__li__1B *)li__ZK),(&__string_22));
li__A1Y=li__HXG(((__li__1B *)li__ZK));
li__QJ=((__li__IB )(fopen((char*)(li__A1Y),"rb")));
if ((li__QJ != (void *)NULL)) {
fclose((FILE*)((li__QJ)));
li__TOG=li__RD((&__string_23)->li__ZB);
li__QFJ(((__li__1B *)li__TOG),(&__string_23));
li__DG=li__TOG;
li__SC=(&__string_24);
li__MH=(&__string_25);
li__PH=(&__string_26);
li__SH=(&__string_27);
} else /* FALSE */ {
li__SC=(&__string_6);
};
};
li__YX((&__string_28));
li__YX(((__li__Y *)li__SC));
if (((void *)li__SC != (void *)(&__string_24))) {
li__S0Y=li__0N((&__string_29),(&__string_30), 2);
if ((li__S0Y == 1)) {
li__PP();
};
if ((li__S0Y == 2)) {
li__YGJ(((__li__1B *)li__ZN),(&__string_31));
li__MJJ(((__li__1B *)li__ZN),(&__string_32));
li__AIJ(((__li__1B *)li__ZN),(&__string_33));
li__CMB((&__string_34),li__ZN);
li__RIB((&__string_35));
li__RIB((&__string_36));
li__TOG=NULL;
li__YX((&__string_37));
li__YX((&__string_38));
li__YX((&__string_39));
li__YX((&__string_40));
li__PIC=li__LLC();
li__LLC();
li__CMC='\0';
li__DMC=((__li__O1 )li__PIC);
li__OG=(li__DMC >= 65);
if ((! li__OG)) {
li__WOG=li__B__;
} else /* FALSE */ {
li__MMC=((__li__O1 )li__PIC);
li__WOG=(li__MMC > 90);
};
if (li__WOG) {
li__CMC=li__PIC;
} else /* FALSE */ {
li__3MC=((__li__O1 )li__PIC);
li__4MC=(__li__O1)(li__3MC + 32);
li__CMC=((__li__BB )((li__4MC)));
};
if ((li__CMC == 'y')) {
li__RHY=li__RD((&__string_39)->li__ZB);
li__YGJ(((__li__1B *)li__RHY),(&__string_39));
li__TOG=li__RHY;
} else /* FALSE */ {
li__YX((&__string_41));
li__TYX:
{
li__XGE=li__3HE();
if (li__XGE) {
li__BHE=li__B__;
} else /* FALSE */ {
li__3GE=li__X3E(li__0LC);
li__BHE=(! li__3GE);
};
li__0NE=(! li__BHE);
if (li__0NE) {
li__LLC();
goto li__TYX;
};
};
li__KHE=li__3HE();
li__UHE=((! li__KHE) && (! li__OLC));
if (li__UHE) {
li__OLC=li__B__;
};
li__H1D=li__3HE();
if (li__H1D) {
li__LLC();
};
((__li__1B *)li__4CE)->li__GC= 0;
li__UYX:
{
li__V1D=li__3HE();
if (li__V1D) {
li__41D=li__B__;
} else /* FALSE */ {
li__11D=li__X3E(li__0LC);
li__41D=li__11D;
};
li__3IE=(! li__41D);
if (li__3IE) {
li__RWH(((__li__1B *)li__4CE),li__0LC);
li__LLC();
goto li__UYX;
};
};
li__TOG=li__4CE;
li__RHY=((__li__1B *)li__4CE);
if (( 1 > li__RHY->li__GC)) {
li__RHY->li__GC= 0;
} else /* FALSE */ {
li__MIL(li__RHY, 1, 1);
};
};
li__YGJ(((__li__1B *)li__ZK),(&__string_42));
li__MJJ(((__li__1B *)li__ZK),li__TOG);
li__OSB(li__ZK);
li__QFJ(((__li__1B *)li__ZK),(&__string_43));
li__MJJ(((__li__1B *)li__ZK),li__TOG);
li__OSB(li__ZK);
li__YGJ(((__li__1B *)li__ZK),(&__string_42));
li__MJJ(((__li__1B *)li__ZK),(&__string_32));
li__OSB(li__ZK);
li__QFJ(((__li__1B *)li__ZK),(&__string_44));
li__MJJ(((__li__1B *)li__ZK),(&__string_32));
li__OSB(li__ZK);
li__XQB();
li__YGJ(((__li__1B *)li__ZK),(&__string_45));
li__MJJ(((__li__1B *)li__ZK),(&__string_32));
li__AIJ(((__li__1B *)li__ZK),(&__string_46));
li__OFJ(((__li__1B *)li__ZK));
fputc((int)('\n'),stdout);
li__OSB(li__ZK);
li__CJB(li__B__);
li__YGJ(((__li__1B *)li__ZK),(&__string_42));
li__MJJ(((__li__1B *)li__ZK),(&__string_39));
li__OSB(li__ZK);
li__QFJ(((__li__1B *)li__ZK),(&__string_47));
li__MJJ(((__li__1B *)li__ZK),(&__string_39));
li__OSB(li__ZK);
li__YGJ(((__li__1B *)li__ZK),(&__string_42));
li__MJJ(((__li__1B *)li__ZK),(&__string_32));
li__OSB(li__ZK);
li__QFJ(((__li__1B *)li__ZK),(&__string_48));
li__MJJ(((__li__1B *)li__ZK),(&__string_32));
li__OSB(li__ZK);
li__5KB();
li__TOG=NULL;
li__YX((&__string_49));
li__YX((&__string_38));
li__YX((&__string_50));
li__YX((&__string_40));
li__PIC=li__LLC();
li__LLC();
li__CMC='\0';
li__DMC=((__li__O1 )li__PIC);
li__OG=(li__DMC >= 65);
if ((! li__OG)) {
li__WOG=li__B__;
} else /* FALSE */ {
li__MMC=((__li__O1 )li__PIC);
li__WOG=(li__MMC > 90);
};
if (li__WOG) {
li__CMC=li__PIC;
} else /* FALSE */ {
li__3MC=((__li__O1 )li__PIC);
li__4MC=(__li__O1)(li__3MC + 32);
li__CMC=((__li__BB )((li__4MC)));
};
if ((li__CMC == 'y')) {
li__DIY=li__RD((&__string_50)->li__ZB);
li__YGJ(((__li__1B *)li__DIY),(&__string_50));
li__TOG=li__DIY;
} else /* FALSE */ {
li__YX((&__string_41));
li__LZX:
{
li__XGE=li__3HE();
if (li__XGE) {
li__BHE=li__B__;
} else /* FALSE */ {
li__3GE=li__X3E(li__0LC);
li__BHE=(! li__3GE);
};
li__0NE=(! li__BHE);
if (li__0NE) {
li__LLC();
goto li__LZX;
};
};
li__KHE=li__3HE();
li__UHE=((! li__KHE) && (! li__OLC));
if (li__UHE) {
li__OLC=li__B__;
};
li__H1D=li__3HE();
if (li__H1D) {
li__LLC();
};
((__li__1B *)li__4CE)->li__GC= 0;
li__MZX:
{
li__V1D=li__3HE();
if (li__V1D) {
li__41D=li__B__;
} else /* FALSE */ {
li__11D=li__X3E(li__0LC);
li__41D=li__11D;
};
li__3IE=(! li__41D);
if (li__3IE) {
li__RWH(((__li__1B *)li__4CE),li__0LC);
li__LLC();
goto li__MZX;
};
};
li__TOG=li__4CE;
li__RHY=((__li__1B *)li__4CE);
if (( 1 > li__RHY->li__GC)) {
li__RHY->li__GC= 0;
} else /* FALSE */ {
li__MIL(li__RHY, 1, 1);
};
};
li__YGJ(((__li__1B *)li__ZK),(&__string_42));
li__MJJ(((__li__1B *)li__ZK),li__TOG);
li__OSB(li__ZK);
li__QFJ(((__li__1B *)li__ZK),(&__string_51));
li__MJJ(((__li__1B *)li__ZK),li__TOG);
li__OSB(li__ZK);
li__TOG=NULL;
li__YX((&__string_52));
li__YX((&__string_38));
li__YX((&__string_53));
li__YX((&__string_40));
li__PIC=li__LLC();
li__LLC();
li__CMC='\0';
li__DMC=((__li__O1 )li__PIC);
li__OG=(li__DMC >= 65);
if ((! li__OG)) {
li__WOG=li__B__;
} else /* FALSE */ {
li__MMC=((__li__O1 )li__PIC);
li__WOG=(li__MMC > 90);
};
if (li__WOG) {
li__CMC=li__PIC;
} else /* FALSE */ {
li__3MC=((__li__O1 )li__PIC);
li__4MC=(__li__O1)(li__3MC + 32);
li__CMC=((__li__BB )((li__4MC)));
};
if ((li__CMC == 'y')) {
li__DIY=li__RD((&__string_53)->li__ZB);
li__YGJ(((__li__1B *)li__DIY),(&__string_53));
li__TOG=li__DIY;
} else /* FALSE */ {
li__YX((&__string_41));
li__WNE:
{
li__XGE=li__3HE();
if (li__XGE) {
li__BHE=li__B__;
} else /* FALSE */ {
li__3GE=li__X3E(li__0LC);
li__BHE=(! li__3GE);
};
li__0NE=(! li__BHE);
if (li__0NE) {
li__LLC();
goto li__WNE;
};
};
li__KHE=li__3HE();
li__UHE=((! li__KHE) && (! li__OLC));
if (li__UHE) {
li__OLC=li__B__;
};
li__H1D=li__3HE();
if (li__H1D) {
li__LLC();
};
((__li__1B *)li__4CE)->li__GC= 0;
li__ZIE:
{
li__V1D=li__3HE();
if (li__V1D) {
li__41D=li__B__;
} else /* FALSE */ {
li__11D=li__X3E(li__0LC);
li__41D=li__11D;
};
li__3IE=(! li__41D);
if (li__3IE) {
li__RWH(((__li__1B *)li__4CE),li__0LC);
li__LLC();
goto li__ZIE;
};
};
li__TOG=li__4CE;
li__RHY=((__li__1B *)li__4CE);
if (( 1 > li__RHY->li__GC)) {
li__RHY->li__GC= 0;
} else /* FALSE */ {
li__MIL(li__RHY, 1, 1);
};
};
li__YGJ(((__li__1B *)li__ZK),(&__string_42));
li__MJJ(((__li__1B *)li__ZK),li__TOG);
li__OSB(li__ZK);
li__QFJ(((__li__1B *)li__ZK),(&__string_54));
li__MJJ(((__li__1B *)li__ZK),li__TOG);
li__OSB(li__ZK);
li__YX((&__string_55));
};
} else /* FALSE */ {
li__PP();
};
li__YX((&__string_56));
return(0);
}
static __li__1B* li__RD(__li__K li__TD)
/* (Expanded INTEGER{li__K}) With result No recursive, No inlinable. NO CONTEXT! */
{
__li__1B *li__WD,*li__SEJ,*li__UD;
__li__BB *li__IFJ;
li__WD=li__PLF(li__1B__);
li__SEJ=((__li__1B *)li__WD);
if ((li__TD > 0)) {
if ((li__SEJ->li__3OF < li__TD)) {
li__IFJ=li__TNI(li__TD);
li__SEJ->li__UOF=li__IFJ;
li__SEJ->li__3OF=li__TD;
};
};
li__SEJ->li__GC= 0;
li__UD=li__WD;
return(li__UD);
}
static void li__YX(__li__Y *li__ZX)
/* (Strict STRING_CONSTANT{li__Y}) Void No recursive, No inlinable. NO CONTEXT! */
{
__li__K li__OEE,li__PEE;
__li__BB *li__L1Y;
li__OEE= 1;
li__PEE=li__ZX->li__ZB;
li__L1Y=li__ZX->li__0B;
while ((li__OEE <= li__PEE)) {
fputc((int)(((__li__BB *)li__L1Y)[(__li__K)(li__OEE - 1)]),stdout);
li__OEE=(__li__K)(li__OEE + 1);
};
}
static __li__BB* li__HXG(__li__1B *li__IXG)
/* (Strict STRING{li__1B}) With result No recursive, No inlinable. NO CONTEXT! */
{
__li__BB *li__JXG;
if ((li__IXG->li__3OF > li__IXG->li__GC)) {
((__li__BB *)li__IXG->li__UOF)[li__IXG->li__GC]='\0';
} else /* FALSE */ {
li__RWH(li__IXG,'\0');
li__IXG->li__GC=(__li__K)(li__IXG->li__GC - 1);
};
li__JXG=li__IXG->li__UOF;
return(li__JXG);
}
static void li__1NF(__li__1B *li__2NF,__li__BB *li__3NF)
/* (Strict STRING{li__1B},Strict NATIVE_ARRAY(Expanded CHARACTER){NULLxli__KB}) Void No recursive, No inlinable. NO CONTEXT! */
{
li__2NF->li__GC= 0;
while ((((__li__BB *)li__3NF)[li__2NF->li__GC] != '\0')) {
li__2NF->li__GC=(__li__K)(li__2NF->li__GC + 1);
};
if (((void *)li__2NF->li__UOF != (void *)li__3NF)) {
li__2NF->li__UOF=li__3NF;
li__2NF->li__3OF=(__li__K)(li__2NF->li__GC + 1);
};
}
static void li__IDJ(__li__1B *li__JDJ,__li__1B *li__KDJ)
/* (Strict STRING{li__1B},Strict STRING{NULLxli__1B}) Void No recursive, No inlinable. NO CONTEXT! */
{
__li__BB *li__2DJ;
li__JDJ->li__GC=li__KDJ->li__GC;
if ((li__JDJ->li__GC > 0)) {
if ((li__JDJ->li__3OF < li__JDJ->li__GC)) {
li__2DJ=li__TNI(li__JDJ->li__GC);
li__JDJ->li__UOF=li__2DJ;
li__JDJ->li__3OF=li__JDJ->li__GC;
};
li__I1K(((__li__BB *)li__JDJ->li__UOF),li__KDJ->li__UOF,(__li__K)(li__JDJ->li__GC - 1));
};
}
static __li__1B* li__YD(void *li__0D)
/* (ABSTRACT_STRING{li__Y}) With result No recursive, No inlinable. NO CONTEXT! */
{
__li__1B *li__2D,*li__ME,*li__1D;
__li__BB *li__GE;
li__2D=NULL;
li__GE=((__li__BB *)(getenv((char*)(((__li__Y *)li__0D)->li__0B))));
if (((void *)li__GE != (void *)NULL)) {
li__ME=li__PLF(li__1B__);
li__2D=li__ME;
li__1NF(((__li__1B *)li__ME),li__GE);
};
li__1D=li__2D;
return(li__1D);
}
static void li__QE(void *li__SE,__li__K li__TE)
/* (ABSTRACT_STRING{li__Y},Expanded INTEGER{li__K}) Void No recursive, No inlinable. NO CONTEXT! */
{
__li__K li__HY,li__IY;
li__UE=(__li__K)(li__UE + 1);
fputc((int)('\n'),stdout);
if ((li__TE == 0)) {
li__QFJ(((__li__1B *)li__2E),li__SE);
} else /* FALSE */ {
li__YGJ(((__li__1B *)li__2E),(&__string_57));
li__IS(li__UE,li__2E);
li__RWH(((__li__1B *)li__2E),'/');
li__IS(li__TE,li__2E);
li__AIJ(((__li__1B *)li__2E),(&__string_58));
li__MJJ(((__li__1B *)li__2E),li__SE);
};
li__RWH(((__li__1B *)li__2E),'\n');
li__OFJ(((__li__1B *)li__2E));
li__HY= 1;
li__IY=(__li__K)(li__2E->li__GC - 1);
while ((li__HY <= li__IY)) {
fputc((int)('='),stdout);
li__HY=(__li__K)(li__HY + 1);
};
fputc((int)('\n'),stdout);
}
static void li__QFJ(__li__1B *li__RFJ,void *li__SFJ)
/* (Strict STRING{li__1B},ABSTRACT_STRING{NULLxli__Yxli__1B}) Void No recursive, No inlinable. NO CONTEXT! */
{
__li__K li__TFJ;
__li__BB *li__EGJ,*li__JGJ;
if (((struct ___OBJ *)li__SFJ)->__id==__li__Y__) {
li__TFJ=((__li__Y *)li__SFJ)->li__ZB;
} else /* STRING */ {
li__TFJ=((__li__1B *)li__SFJ)->li__GC;
};
li__RFJ->li__GC=li__TFJ;
if ((li__TFJ > 0)) {
if ((li__RFJ->li__3OF < li__TFJ)) {
li__EGJ=li__TNI(li__TFJ);
li__RFJ->li__UOF=li__EGJ;
li__RFJ->li__3OF=li__RFJ->li__GC;
};
li__EGJ=li__RFJ->li__UOF;
if (((struct ___OBJ *)li__SFJ)->__id==__li__Y__) {
li__JGJ=((__li__Y *)li__SFJ)->li__0B;
} else /* STRING */ {
li__JGJ=((__li__1B *)li__SFJ)->li__UOF;
};
li__I1K(((__li__BB *)li__EGJ),li__JGJ,(__li__K)(li__RFJ->li__GC - 1));
};
}
static __li__K li__ULG(__li__1B *li__VLG,__li__Y *li__WLG)
/* (Strict STRING{li__1B},Strict STRING_CONSTANT{NULLxli__Y}) With result No recursive, No inlinable. NO CONTEXT! */
{
__li__K li__ZLG,li__1LG,li__0LG,li__APY,li__BPY,li__CPY,li__EPY;
__li__K li__YLG;
__li__BB *li__DPY,*li__T1Y;
li__ZLG= 0;
li__1LG= 0;
li__0LG= 1;
li__APY=li__WLG->li__ZB;
li__BPY=li__VLG->li__GC;
li__CPY=li__WLG->li__ZB;
li__DPY=li__VLG->li__UOF;
li__EPY=li__WLG->li__ZB;
li__T1Y=((__li__Y *)li__WLG)->li__0B;
while ((! ((li__1LG != 0) || ((__li__K)((__li__K)(li__0LG + li__APY) - 1) > li__BPY)))) {
li__ZLG= 1;
while ((! ((li__ZLG > li__CPY) || (((__li__BB *)li__DPY)[(__li__K)((__li__K)((__li__K)(li__0LG + li__ZLG) - 1) - 1)] != ((__li__BB *)li__T1Y)[(__li__K)(li__ZLG - 1)])))) {