Subversion Repositories wimsdev

Rev

Rev 7692 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3398 bpr 1
!if $wims_read_parm!=slib_header
2
!goto proc
3
!endif
4351 bpr 4
slib_author=Bernadette, Perrin-Riou
3398 bpr 5
 
6
slib_wims_version=4.01
7
!exit
8
 
9
:proc
10
 
11
slib_def=$wims_read_parm
4425 bpr 12
slib_def=!rows2lines $slib_def
3398 bpr 13
slib_def=!replace internal $	$ by $\
14
$ in $slib_def
15
 
16
slib_word=!column 1 of $slib_def
3818 bpr 17
slib_word=!singlespace $slib_word
4120 bpr 18
!!slib_word=!replace internal - by Z in $slib_word
3398 bpr 19
slib_word=!replace internal , by $\
20
$ in $slib_word
21
slib_word=!deaccent $slib_word
22
slib_word=!lowercase $slib_word
23
!if $slib_word issametext $empty
24
 slib_out=
25
 !goto end
26
!endif
27
slib_alphabet=a,b,c,d,e,f,g,h,i,j,k,k,l,l,m,n,o,p,q,r,s,t,u,u,v,w,w,x,y,z
28
slib_crossword=crossword
29
slib_number_test=!text select 0123456789 in $slib_word
30
slib_alpha_test=!text select abcdefghijklmnopqrstuvwxyz in $slib_word
31
 
32
!if $slib_number_test!=$empty
33
  !if $slib_alpha_test=$empty
34
    slib_number_test=1
35
    !for slib_c=0 to 9
36
      slib_word=!replace internal $slib_c by $(slib_alphabet[$slib_c+1]) in $slib_word
37
    !next
38
  !else
39
   slib_out=
40
   !goto end
41
  !endif
42
!endif
43
slib_word_cnt=!linecnt $slib_word
44
!if slib_word_cnt=0
45
  slib_out=
46
  !goto end
47
!endif
48
!if $slib_word_cnt >20
49
  slib_word_cnt=!shuffle $slib_word_cnt
50
  slib_word=!line $slib_word_cnt of $slib_word
51
  slib_word_cnt=20
52
!endif
53
 
4425 bpr 54
slib_test_char=!lines2words $slib_word
55
!! let the empty character at the end of the line
8070 bpr 56
slib_test_char=!text expand $slib_test_char using 10
4425 bpr 57
slib_test_char=!words2items $slib_test_char
58
slib_pb=!listintersect -,_ and $slib_test_char
59
!if $slib_pb!=$empty
60
  slib_test_char=!listcomplement $slib_test_char in $slib_alphabet
61
  slib_test_char_cnt=!itemcnt $slib_test_char
62
  !if $slib_test_char_cnt >=1
63
    slib_word=!replace internal $(slib_pb[1]) by $(slib_test_char[1]) in $slib_word
64
    !if $slib_test_char_cnt >=2 and $(slib_pb[2]) notsametext
65
      slib_word=!replace internal $(slib_pb[2]) by $(slib_test_char[2]) in $slib_word
66
    !endif
7692 bpr 67
  !endif
4425 bpr 68
!endif
7692 bpr 69
 
3398 bpr 70
!set slib_file=!randint 1000
71
!set slib_file=cw_$wims_nowseconds$slib_file
8070 bpr 72
!if $slib_word issametext $empty
73
  slib_out=
74
  !exit
75
!endif
3398 bpr 76
!readproc oef/togetfile.proc $slib_file new\
77
$slib_word
78
 
79
!set sess=!replace internal . by , in $session
80
!set slib_file=$wims_home/sessions/$(sess[1])/getfile/$slib_file
81
slib_cw=!exec $slib_crossword $slib_file
82
 
83
!!!cleanup
84
slib_test=0
85
slib_i=1
86
slib_cw=!replace internal $ $ by $\
87
$ in $slib_cw
88
 
3818 bpr 89
!for slib_u=1 to  $slib_word_cnt
90
   slib_line=!line $slib_u of $slib_cw
91
   slib_line=!nonempty items $slib_line
92
   !if $slib_line!=$empty
93
     !goto continue1
94
   !endif
7692 bpr 95
!next
3398 bpr 96
 
7692 bpr 97
:continue1
3818 bpr 98
slib_cw=!line $slib_u to -1 of $slib_cw
3398 bpr 99
 
100
slib_test=0
101
slib_i=1
102
 
3818 bpr 103
!for slib_v=1 to  $slib_word_cnt
104
   slib_line=!line -$slib_v of $slib_cw
105
   slib_line=!nonempty items $slib_line
106
   !if $slib_line!=$empty
107
     !goto continue2
108
   !endif
7692 bpr 109
!next
3818 bpr 110
:continue2
111
 
112
slib_cw=!line 1 to -$slib_u of $slib_cw
113
 
114
!for slib_v=1 to  $slib_word_cnt
115
   slib_line=!column $slib_v of $slib_cw
116
   slib_line=!nonempty items $slib_line
117
   !if $slib_line!=$empty
118
     !goto continue3
119
   !endif
7692 bpr 120
!next
3818 bpr 121
:continue3
122
slib_cw=!column $slib_v to -1 of $slib_cw
123
!for slib_v=1 to  $slib_word_cnt
124
   slib_line=!column -$slib_v of $slib_cw
125
   slib_line=!nonempty items $slib_line
126
   !if $slib_line!=$empty
127
     !goto continue4
128
   !endif
7692 bpr 129
!next
3818 bpr 130
:continue4
131
slib_cw=!column 1 to -$slib_v of $slib_cw
132
 
133
 
3398 bpr 134
!if $slib_number_test=1
135
   !for slib_c=0 to 9
136
      slib_cw=!replace internal $(slib_alphabet[$slib_c+1]) by $slib_c in $slib_cw
137
    !next
138
!endif
139
slib_out=!replace internal ,$ $ by , in $slib_cw
140
 
4425 bpr 141
!if $slib_pb!=$empty
142
  !if $slib_test_char_cnt >=1
143
    slib_out=!replace internal $(slib_test_char[1]) by $(slib_pb[1]) in $slib_out
144
    !if $slib_test_char_cnt >=2 and $(slib_pb[2]) notsametext
145
      slib_out=!replace internal $(slib_test_char[2]) by $(slib_pb[2]) in $slib_out
146
    !endif
7692 bpr 147
  !endif
4425 bpr 148
!endif
149
 
3398 bpr 150
slib_out=[$slib_out],[$slib_def]
151
 
4425 bpr 152
:end