/[webpac2]/trunk/conf/normalize/ff-libri.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/conf/normalize/ff-libri.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 792 by dpavlin, Tue Jan 30 18:23:53 2007 UTC revision 1095 by dpavlin, Fri Aug 1 23:41:47 2008 UTC
# Line 1  Line 1 
1  # konvertira se ako postoji polje 200^a  
2    # Ova datoteka sadrži pravila za generiranje MARC21 ISO 2709 izlazne
3    # datoteke. Ulazni format je CDS/ISIS izvorni format, sa zapisima u
4    # UNIMARC formatu, sa višestrukim odstupanjima od standarda.
5    
6    
7    ## konvertira se ako postoji polje 200^a
8    
9  if ( rec('200','a') ) {  if ( rec('200','a') ) {
10    
11  ### LEADER  ### LEADER
 # raspraviti 17,18  
 # u nekim knjižnicama koristi se 999a i 999b  
12    
13  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {  ## LDR 05 - c = pregledan ; n = new
14    ## 999^aP - SFM
15    
16    if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {
17          marc_leader('05','c');          marc_leader('05','c');
18  } else {  } else {
19          marc_leader('05','n');          marc_leader('05','n');
20  }  }
21    
22    ## LDR 06 - a - language material
23    
24          marc_leader('06','a');          marc_leader('06','a');
25    
26    ## LDR 07 - m - Monograph/item
27    
28          marc_leader('07','m');          marc_leader('07','m');
29    
30    ## LDR 17 - 3
31            marc_leader('17','7');
32    
33    ## LDR 18
34          marc_leader('18','i');          marc_leader('18','i');
35    
36  if ( rec('230') ) {  ## LDR 19 - razjasniti
37          marc_leader('19','r');  # nema više r, ima #, a, b ili c
38    
39    if ( rec('230') | rec('231') | rec('232') | rec('233') ) {
40            marc_leader('19','a');
41    }
42    
43    ### 008 - All materials
44    ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
45    ## ostaviti prazno tamo gdje nema ništa
46    
47    if ( rec('994','c') =~ m/\d{8}/ ) {
48            marc_fixed('008','00',
49                    regex('s/^\d\d//',
50                            rec('994','c')
51                    ),
52            );
53    } elsif ( rec('994','c') =~ m/\d{6}/ ) {
54            marc_fixed('008', 00,
55                    regex('s/^\d\d//',
56                            rec('994','c')
57                    ),
58            );
59            marc_fixed('008', '04',
60                    '01'
61            );
62    } elsif ( rec('994','c') =~ m/\d{4}/ ) {
63            marc_fixed('008', 00,
64                    regex('s/^\d\d//',
65                            rec('994','c')
66                    ),
67            );
68            marc_fixed('008', '02',
69                    '0101'
70            );
71    }
72    
73    #warn( dump(
74    #       regex('s/^\d\d//',
75    #               rec('994','c')
76    #       ),
77    #)
78    #);
79    
80    ## 008 06 - Type of date/Publication status
81    ## dodati i ostale mogućnosti
82    ## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c
83    ## srediti sve moguće upitne godine
84    
85    if ( rec('210','c') ) {
86            my $d1;
87            my $d2;
88            if ( rec('210','c') =~ m/\?/ ) {
89                    marc_fixed('008','06','q');
90            } else {
91                    marc_fixed('008','06','s');
92            }
93            if ( rec('210','c') =~ m/(\d{4})/ ) {
94                    $d1 = $1;
95            } else {
96                    $d1 = '';
97            }
98            if ( rec('210','c') =~ m/^.*-(\d{4})/ ) {
99                    $d2 = $1;
100            } else {
101                    $d2 = '',
102            }
103            if ( rec('210','c') =~ m/(\d{2})--/ ) {
104                    $d1 = $1.'uu';
105                    marc_fixed('008','06','u');
106            }
107    
108            marc_fixed('008','07',$d1);             # 07-10 - Date 1
109            marc_fixed('008','11',$d2);             # 07-10 - Date 1
110    
111    } else {
112            marc_fixed('008','06','n');             # 06 - n = unknown date
113            marc_fixed('008','07','uuuu');
114  }  }
115    
 ### 001 - Voyager  
116    
117  ### 008  ## 008 11-14 - Date 2
118    
119  ### 035$6  ## 008 15-17 - Place of publication, production, or execution - što ako nema 102?
120  # Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku.  ## raspraviti
121  # marc 035a - System Number - NSK zapisuje Voyagerov ID (001) - kako?  
122  # kako mora izgledati polje 035$9? može li sadržavati slova i razmake?  marc_fixed('008','15','xx');
123    
124    #marc_fixed('008','15',
125  marc('035','6',  #       lc ( rec('102') )
126  join_with(' ',  #);
127  #               config('input normalize path'),  
128  #               config('name'),  #my $zemlja =
129                  config(),  #       lookup(
130                  'L',  #               sub { rec('B') },
131  #               config('input name'),  #               'kodovi','zemlje',
132  #               id(),  #               sub { rec('A') },
133  #               rec('994','a'),  #               sub {
134                  rec('000')  #                       regex('s/[\s;:]/g',
135          )  #                               rec('210','a')
136  );  #                       )
137    #               },
138    #       );
139    
140    
141    ## 008 35-37 - Language
142    marc_fixed('008','35',
143            # first( lc(rec('101')) )              
144            lc( frec('101'))                
145    );
146                                            
147    ## 008 38 - Modified record - razjasniti
148    marc_fixed('008','38','|');            
149    
150    ## 008 39 - Cataloging source - d (other)
151    marc_fixed('008','39','d');            
152    
153    ### 008 - Books - raspraviti upotrebu ovih polja
154    ## 008 18-21 - Illustrations
155    if ( rec('215','c') && rec('215','c') =~ m/ilustr/ ) {
156            marc_fixed('008','18','a')
157    }
158    
159    ## 008 22 - Target audience
160    marc_fixed('008','22','|');
161    
162    ## 008 23 - Form of item
163    
164    ## 008 24-27 - Nature of contents
165    marc_fixed('008','24','||||');
166    
167    ## 008 28 - Government publication
168    marc_fixed('008','28','|');
169    
170    ## 008 29 - Conference publication
171    marc_fixed('008','29','|');
172    
173    ## 008 30 - Festschrift
174    marc_fixed('008','30','|');
175    
176    ## 008 31 - Index
177    marc_fixed('008','31','|');
178    
179    ## 008 32 - Undefined
180    ## 008 33 - Literary form
181    marc_fixed('008','33','|');
182    
183    ## 008 34 - Biography
184    marc_fixed('008','34','|');
185    
186  ### 020  ### 020
187  # postoji modify -> drugi ISBN počinje prefixom "ISBN" koji se miče (sfb)  ## modify za polje 10 -> drugi ISBN počinje prefixom "ISBN" koji se miče (pr. u sfb)
188    
189    if ( frec('10') ne ( frec('290') ) ) {
190            if ( rec('10','a') !~ /pogre/ ) {
191                    marc('020','a',
192                            # isbn_13(
193                                    regex('s/\s\s/ /g',
194                                    # regex('s/\(\d\)\(/$1 \(//g',
195                                            rec('10','a')
196                                    )
197                            # )
198                    );
199            }
200            if ( rec('10','a') =~ /pogre/ ) {
201                    marc('020','z',
202                            regex('s/\s\s/ /g',
203                                    rec('10','a')
204                            )
205                    );
206            }
207            marc('020','z',
208                    rec('10','z')
209            );
210                            
211    }
212    
213  marc('020','a',  #warn(
214          regex('s/ ISBN //g',  #       dump(
215                  rec('10')  #               frec('10')
216    #       ),
217    #);
218    
219    ### 035$
220    ## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku.
221    ## marc 035a - System Number - Voyagerov ID (001)
222    ## polje 035$9 može sadržavati slova i razmake
223    
224    marc('035','a',
225    join_with('',
226            # config('input normalize path'),
227            # config('name'),
228            'HR-ZaFF ',
229            config(),
230            'L-',
231            # config('input name'),
232            # id(),
233            # rec('994','a'),
234            rec('000')
235          )          )
236  );  );
237    
   
238  ### 040  ### 040
239  # za sve je isti  ## za sve je isti
240    
241  marc('040','a',  marc('040','a',
242          'HR FFZG'          'HR-ZaFF'
243  );  );
244    
245  marc('040','b',  marc('040','b',
246          'hrv'          'hrv'
247  );  );
248    
249  marc('040','e',  marc('040','c',
250          'HR PPIAK'          'HR-ZaFF'
251  );  );
252    
253    marc('040','e',
254  ### 041 indikatori          'ppiak'
255  # pretpostavke o indikatorima:  );
 #  
 # 1. Ako postoji polje 300 i prvo pojavljivanje tog polja sadrži /Prijevod/ , i1 = 1  
 # (Da li je napomena uvijek pisana?)  
 #  
 # 2. Podatak o prevodiocu u 200g. Problem: različiti oblici riječi, različiti jezici.  
 #  
 # 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod  
 # (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)  
 # pr. 821.111-2=163.42 je prijevod engleske drame na HR.  
 # to ima samo za književna djela, eseje....  
256    
257    
258  if ( rec('675') =~ m/\d=\d/ ) {  ### 041 - indikatori
259  #if ( first(rec('300')) =~ m/Prijevod/ || first(rec('300')) =~ m/Izv. stv. nasl./ ) {  ## pretpostavke o indikatorima
260    ## 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
261    ## (Da li je napomena uvijek pisana?)
262    ## 2. Podatak o prevodiocu u 200g. Problem: različiti oblici riječi, različiti jezici.
263    ## 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
264    ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)
265    ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.
266    ## to ima samo za književna djela, eseje....
267    ## ????
268    
269    #if ( rec('675') =~ m/\d=\d/ ) ?
270    
271    if (
272            grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) ||
273            grep( m/[preve|prijevod]/i, rec('200','f')) ||
274            grep( m/[preve|prijevod]/i, rec('200','g'))  
275    ) {
276          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
277  } else {  } else {
278          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
279  }  }
280    
   
281  ### 041  ### 041
282  # ponovljivo polje konvertira se u ponovljivo potpolje  ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
283    
284  #_debug(2);  #_debug(2);
285    
286  marc_repeatable_subfield('041','a',  marc_repeatable_subfield('041','a',
287          rec('101')          map { lc($_) } rec('101')
288  );  );
289    
290  #_debug(0);  #_debug(0);
291    
292    ### 044
293    ## kako dobiti zemlju izdavanja?
294    
295  ### 080  ### 080
296  # 675 podpolja c, d ... - što s njima ???  ## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu
297    
298  marc('080','a',  marc('080','a',
299          rec('675','a')          rec('675','a')
300  );  );
301    
302    marc('080','a',
303            rec('675','b')
304    );
305    
306  ### 084 - other classification (R)  marc('080','a',
307  # NSK ga koristi za stručnu oznaku NSK iz polja 681          rec('675','c')
308  # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom  );
 # polje 686 koristi FFPS  
309    
310    marc('080','a',
311            rec('675','d')
312    );
313    
314    
315    ### 084 - other classification (R)
316    ## NSK ga koristi za stručnu oznaku NSK iz polja 681
317    ## NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
318    ## polje 686 koristi FFPS. još netko?
319    
320  marc('084','a',  marc('084','a',
321          rec('686')          rec('686')
322  );  );
323    
324  ### 100  ### 100
325  # I1 = 0 ako je pseudonim (ima 700a, nema 700b)  ## I1 = 0 ako je pseudonim (ima 700a, nema 700b)
326    
327    if ( rec('700','a') && ! rec('700','b') ) {
328            marc_indicators('100', 0, ' ');
329    } else {
330            marc_indicators('100', 1, ' ');
331    }
332    
 marc_indicators('100', 1, ' ');  
333  marc('100','a',  marc('100','a',
334          join_with(', ',          join_with(', ',
335                  rec('700', 'a'),                  rec('700', 'a'),
# Line 131  marc('100','a', Line 337  marc('100','a',
337          )          )
338  );  );
339    
340    ### formalna odrednica - iz 503 u 110, i1=0, i2=1
341    
342  ### 111 i 110  ### 111 i 110
343  # provjeriti ispise naslova iz svake baze - moguće su greške.  ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguće su greške.
344    
345  if ( rec('710','f') ) {  # ovo vrijedi za FFSFB
346    if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
347    
348  marc_indicators('111', 2, ' ');  marc_indicators('111', 2, ' ');
 marc('111','a',  
         rec('710','a')  
 );  
   
 marc('111','c',  
         rec('710','e')  
 );  
   
 marc('111','d',  
         rec('710','f')  
 );  
   
 marc('111','e',  
         rec('710','b')  
 );  
349    
350  marc('111','n',  marc_compose('111',
351          rec('710','d')          'a', suffix(
352                    rec('710','b') ? '.' :
353                            '',
354                            rec('710','a'),
355            ),
356            'e', rec('710','b'),
357            'n', prefix(
358                    rec('710','d') ? '(' :
359                            '',
360                            rec('710','d')
361            ),
362            'd', prefix(
363                    ( ! rec('710','d') ) ? '(' :
364                    ( ! rec('710','e') ) ? '(' :
365                            '; ',
366                            rec('710','f'),
367            ),
368            'c', prefix(
369                    ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
370                    ( ! rec('710','d') && ! rec('710','f') )  ? '(' :
371                            '',
372                            rec('710','e'),
373            ),
374            '+',')',
375  );  );
376    
377    
378  } else {  } else {
379                    
380  marc_indicators('110', 2, ' ');  marc_indicators('110', 2, ' ');
381    
382  marc('110','a',  marc('110','a',
383          rec('710','a')          rec('710','a')
384  );  );
385    
386  marc('110','c',  marc('110','b',
387          rec('710','c')          rec('710','b')
388  );  );
389    
390  };          if ( rec('710','c') ) {
391            marc('110','c',
392                    surround('(', ')', rec('710','c'))
393            );
394            }
395    
396    }
397    
398    
399  ### 245 indikatori  ### 245 indikatori
400  # i1 = 1 za sve zapise  ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
401  # i2 = pretpostavlja se na temelju člana na početku naslova i jezika  ## i2 = pretpostavlja se na temelju člana na početku naslova i jezika
402  # treba nadopuniti i dati podatke na verifikaciju knjižničarima  ## treba provjeriti
403    
404    my $i1;
405    
406    if ( rec('700') || rec('710') ) {
407            $i1 = 1;
408    
409    } else {
410            $i1 = 0;
411    }
412            
413    marc_indicators('245', $i1, 0);
414    
415    if ( rec('200','a') =~ m/^Einen / ) {
416                    marc_indicators('245', $i1, 6);
417    }
418    
419    if ( rec('200','a') =~ m/^Eine / ) {
420                    marc_indicators('245', $i1, 5);
421    }
422    
423    if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
424                    marc_indicators('245', $i1, 4);
425    }
426    
427  marc_indicators('245', 1, 0);  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
428                    marc_indicators('245', $i1, 3);
429    }
430    
431  if (    ( rec('200','a') =~ m/^Die /) ||  if ( rec('200','a') =~ m/^(A|L) / ) {
432          ( rec('200','a') =~ m/^Das /) ||                  marc_indicators('245', $i1, 2);
         ( rec('200','a') =~ m/^The /) ) {  
                 marc_indicators('245', 1, 4);  
433  }  }
434    
435  if (    ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) )  if ( rec('200','a') =~ m/^L'/ ) {
436          {                  marc_indicators('245', $i1, 2);
                 marc_indicators('245', 1, 2);  
437  }  }
438    
439    
440  ### 245  ### 245
441  # redoslijed polja  ## potpolja i interpunkcije pripremljeni u modify
442    ## da li treba makivati razmake u inicijalima?
443    
444  #_debug(3);  #_debug(3);
445    
446  marc_compose('245',  marc_compose('245',
447          'a', suffix(          'a', suffix(
448                  rec('200','b') ? '. '   :                  ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :  
449                  rec('200','k') ? ' ; '  :                  ( rec('200','d') ) ? ' =' :
450                  rec('200','d') ? ' = '  :                  ( rec('200','e') ) ? ' :' :
451                  rec('200','e') ? ' : '  :                  ( rec('200','k') ) ? ' ;' :
452                  rec('200','f') ? ' / '  :                          '.',
453                                   '.',                          rec('200','a'),
                         rec('200','a')  
454          ),          ),
 #       'h', rec('200','b'),  
455          'b', suffix(          'b', suffix(
456                  ( rec('200','k') && rec('200','f') ) ? ' / ' :                  ( rec('200','d') && rec('200','f') ) ? ' /' :
457                                       ' ',                  ( rec('200','d') && rec('200','c') ) ? '.'  :
458                          join_with(' ; ',                          '',
459                                  rec('200','k'),                          rec('200','d'),
                         ),  
460          ),          ),
461          'b', suffix(          'b', suffix(
462                  ( rec('200','d') && rec('200','f') ) ? ' / ' :                  ( rec('200','e') && rec('200','f') ) ? ' /' :
463                                                         ' ',                  ( rec('200','e') && rec('200','c') ) ? '.'  :
464                                  rec('200','d'),                          '',
465                            rec('200','e'),
466          ),          ),
467          'b', suffix(          'b', suffix(
468                  ( rec('200','e') && rec('200','f') ) ? ' / ' :                  ( rec('200','k') && rec('200','f') ) ? ' /' :
469                                                         ' ',                  ( rec('200','k') && rec('200','c') ) ? '.'  :
470                          join_with(' : ',                          '',
471                                  rec('200','e'),                          rec('200','k'),
                         ),  
472          ),          ),
473            'c', suffix(
474          'c', rec('200','f'),                  ( rec('200','f') && rec('200','c') ) ? '.' :
475                            '',
476  # append to last subfield                          join_with(' ; ',
477          '+', prefix('. ',                                  regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
478                  rec('200','c')                                          rec('200','f'),
479                                    ),
480                                    regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
481                                            rec('200','g')
482                                    )
483                            )
484            ),
485            ## append to last subfield
486            '+', suffix('.',
487                    rec('200','c'),
488          ),          ),
489  );  );
490    
   
   
491  #_debug(0);  #_debug(0);
492    
493    ### 246
494    ## i1=1 ukoliko pravilo nalaze napomenu, ali napomenu necemo pisati ponovo u 500
495    ## i1=3 ako pravlo na nalze napomenu
496    ## vidi na wiki
497    ## i2 - pogledati za svaku bazu sto su ti naslovi, pa onda oderditi indikatoda oderditi indikatoree
498    
499    marc_indicators('246', 3, ' ');
500    marc('246','a',
501            rec('532')
502    );
503    
504  ### 250  ### 250
505    ## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
506    
507  marc('250','a',  marc_compose('250',
508          suffix(          'a',suffix(
509                  rec('205','f') ? ' / ' :                  rec('205','f') ? ' / ' :
510                                   ' '.                          '',
511                          rec('205','a')                          rec('205','a')
512          )          ),
513  );          'b', rec('205','f'),
   
 marc('250','b',  
         rec('205','f')  
514  );  );
515    
   
516  ### 260  ### 260
517  # ponovljiva potpolja u originalnom redosljedu  ## ponovljiva potpolja u originalnom redosljedu - priprema u modify
518    
519  marc_original_order('260', '210');          marc_original_order('260', '210');
520    
521    
522  ### 300  ### 300
523  # provjeriti interpunkcije !!  ## urediti interpunkcije za sve kombinacije
524    
525  marc('300','a',  marc('300','a',
526          suffix(          suffix(
527                  rec('215','c') ? ' : ' :                  rec('215','c') ? ' : ' :
528                  rec('215','d') ? ' ; ' :                  rec('215','d') ? ' ; ' :
529                  rec('215','e') ? ' + ' :                  rec('215','e') ? ' + ' :
530                                          ' ',                          '',
531                          rec('215','a')                          rec('215','a')
532          )          )
533  );  );
# Line 277  marc('300','b', Line 536  marc('300','b',
536          suffix(          suffix(
537                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :
538                  ( rec('215','c') && rec('215','e') ) ? ' + ' :                  ( rec('215','c') && rec('215','e') ) ? ' + ' :
539                                                                  ' ',                          '',
540                          rec('215','c')                          rec('215','c')
541          )          )
542  );  );
# Line 285  marc('300','b', Line 544  marc('300','b',
544  marc('300','c',  marc('300','c',
545          suffix(          suffix(
546                  rec('215','e') ? ' + ' :                  rec('215','e') ? ' + ' :
547                                   ' ',                          '.',
548                          rec('215','d')                          rec('215','d')
549          )          )
550  );  );
# Line 294  marc('300','e', Line 553  marc('300','e',
553          rec('215','e')          rec('215','e')
554  );  );
555    
556    ### 362 - brojčani podaci za nakladničku cjelinu - razjasniti upotrebu
557    
558  ### 440  # if ( ! rec('225','z')  ) {
559  # 2.ind. prema jeziku i članu  
560    # ako je naslov nakladničke cjeline složen, podatak se zapisuje u 490, s pripadajućim 830
561    
562    #if (  frec('225','a') =~ m/[\/=:]/  ) {
563    #
564    ##_debug(3);
565    #
566    #### 490
567    ### 490: Subfield _p is not allowed.
568    #
569    #marc_indicators('490','0',' ');
570    #
571    #marc_template(
572    #       from => 225, to => 490,
573    #       subfields_rename => [
574    #               'a' => 'a',
575    #               'x' => 'x',
576    #               'v' => 'v',
577    #               'h' => 'n',
578    #               'i' => 'p',
579    #               'w' => 'v',
580    #       ],
581    #       isis_template => [
582    #               'a',
583    #               'a ;|v',
584    #               'a,|x ;|v',
585    #               'a,|x ;|w',
586    #               'a,|x.|h ;|w',
587    #               'a.|h,|i ;|v',
588    #               'a ;|v.|i',
589    #               'a.|i ;|w',
590    #               'a,|x',
591    #               # greske:
592    #               'i ;|v',
593    #               'i'
594    #       ],
595    #);
596    
597    #marc_template(
598    #       from => 225, to => 490,
599    #         from => "{ z => 1 }",
600    #           to => "{ a => 1 }",
601    #
602    #       marc_template => [
603    #               'a',
604    #       ],
605    #);
606    
607    # marc_indicators('830',' ','0');
608    # i2 ovisi članu - popraviti
609    #
610    # marc('830','a',
611    #       regex('s/(^.*)\s\/\s(.*)/$1 ($2)/g',
612    #               rec('225','a')
613    #       )
614    # );
615    
616    
617    #} else {
618    
619    
620    ### 440 - indikatori
621    ## 2.ind. prema jeziku i članu, provjeriti
622    
623  marc_indicators('440', ' ', '0');  marc_indicators('440', ' ', '0');
624    
625  marc('440','a',  if ( rec('200','a') =~ m/^Einen / ) {
626          join_with(' : ',                  marc_indicators('440', ' ', 6);
627                  rec('225','a'),  }
                 rec('225','e')  
         )  
 ) ;  
628    
629  marc('440','n',  if ( rec('200','a') =~ m/^Eine / ) {
630          rec('225','h')                  marc_indicators('440', ' ', 5);
631  );  }
632    
633  marc('440','p',  if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
634          rec('225','i')                  marc_indicators('440', ' ', 4);
635  );  }
636    
637  marc('440','v',  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
638          join_with(', ',                  marc_indicators('440', ' ', 3);
639                  rec('225','v'),  }
640                  rec('225','w')  
641          ),  if ( rec('200','a') =~ m/^(A|L') / ) {
642  );                  marc_indicators('440', ' ', 2);
643    }
644    
645    ## 440v nije ponovljivo
646    
 marc('440','x',  
         rec('225','x')  
 );  
647    
648  marc('440','a',  marc_template(
649          rec('225','b'),          from => 225, to => 440,
650            subfields_rename => [
651                    'a' => 'a',
652                    'x' => 'x',
653                    'v' => 'v',
654                    'h' => 'n',
655                    'i' => 'p',
656                    'w' => 'v',
657            ],
658            isis_template => [
659                    'a',
660                    'a,|x',
661                    'a,|x ;|v',
662                    'a,|x.|i',
663                    'a,|x.|i ;|w',
664                    'a,|x.|h ;|w',
665                    'a,|x.|h,|i ;|w',
666                    'a,|x ;|v.|h ;|w',
667                    'a,|x ;|v.|h,|i ;|w',
668                    'a ;|v',
669                    'a ;|v.|i',
670                    'a ;|v.|h,|i',
671                    'a ;|w',
672                    'a ;|v.|i ;|w',
673                    'a ;|v.|h,|i ;|w',
674                    'a ;|v.|h ;|w',
675                    'a.|h,|i',
676                    'a.|h,|i ;|w',
677                    'a.|i',
678                    'a.|i ;|w',
679                    # greške
680                    'a ;|v ;|w',
681                    'a.|h',
682                    'a.|h ;|w',
683                    'a.|h ;|v',
684                    'h,|i',
685                    'h ;|v',
686                    'i ;|w',
687                    'v',    
688                    'w',
689    
690            ],
691  );  );
692    
693    #}
694    
695  ### 490  #marc_template(
696    #       from => 225, to => 490,
697    #       subfields_rename => [
698    #               'a' => 'a',
699    #               'x' => 'x',
700    #               'v' => 'v',
701    #               'h' => 'n',
702    #               'i' => 'p',
703    #               'w' => 'v',
704    #       ],
705    #       isis_template => [
706    #               'a.|h,|i ;|w',
707    #               'a.|h.|w',
708    #               'a.|i ;|w',
709    #               'a ;|v.|i',
710    #               'a ;|v.|i ;|w',
711    #               'a ;|v.|h,|i ;|w',
712    #               'a ;|v.|h ;|w',
713    #               'a ;|v ;|w',
714    #               #mozda greska:
715    #               'a ;|v,|x ;|w',
716    #               'a ;|v,|x.|p',
717    #               'a,|x ;|v',
718    #               'a,|x.|p ;|w',
719    #       ],
720    #         from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }",
721    #           to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }",
722  #  #
723  #marc('490','a',  #       marc_template => [
724  #       rec('225','a')  #               'a',
725    #               'a ;|v',
726    #               'a,|x',
727    #               'a.|n',         # mozda greska
728    #               'a.|n,|p',
729    #               'a.|p',
730    #               'a ;|v.|n',
731    #               'a ;|v.|n,|p',  # mozda greska
732    #               'n,|p',
733    #               'n ;|v',        # mozda greska
734    #               'p ;|v',
735    #               'v',
736    #               'x',
737    #               'x ;|v'         # greska
738    #       ],
739    #);
740    
741    
742    ## marc_compose za 440 radi samo kad polje ni potpolja nisu ponovljiva. ne zapisuje dobro drugo pojavljivanje ^v, tj. ^v iza ^p (iz 225^w)
743    
744    #marc_compose('440',
745    #       'a', suffix(
746    #               ( rec('225','v') ) ? ' ;' :
747    #               ( rec('225','w') ) ? ' ; ' :
748    #               ( rec('225','x') ) ? ',' :
749    #               ( rec('225','h') || rec('225','i') ) ? '.' :
750    #                       '.',
751    #                       frec('225','a')
752    #       ),
753    #       'x',suffix(
754    #               ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
755    #                       '',
756    #                       frec('225','x')
757    #       ),
758    #       'v',suffix(
759    #               ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
760    #               ( rec('225','v') && rec('225','w') ) ? ' ; ' :
761    #                       '',
762    #                       frec('225','v')
763    #       ),
764    #       'n',suffix(
765    #               ( rec('225','h') && rec('225','i') ) ? ',' :
766    #               ( rec('225','h') && rec('225','w') ) ? ' ; ' :
767    #                       '',
768    #                       frec('225','h')
769    #       ),
770    #       'p',suffix(
771    #               ( rec('225','i') && rec('225','w') ) ? ' ; ' :
772    #               ( rec('225','i') && rec('225','x') ) ? ',' :
773    #                       '',
774    #                       frec('225','i')
775    #       ),
776    ## 225w treba ici u 440v, na kraj
777    #       '+', join_with(' ; ',
778    #               rec('225','w'),
779    #       )
780  #);  #);
781    
782    #marc_original_order('440','225');
783    
784    
785    #if (
786    #       count( lookup(
787    #               sub { 1 },
788    #               'ffps','libri',
789    #               sub { rec('225','a') }
790    #       ) ) > 1
791    #) {
792    
793    
794    #_debug(0);
795    
796    
797  ### 500  ### 500
798    
# Line 356  marc('500','a', Line 812  marc('500','a',
812          rec('314')          rec('314')
813  );  );
814    
815    ### 502 - bilješka o disertacijama
816    ## odgovarajućeg polja nema u originalnim podacima. možda se može pretpostaviti?
817    
818  ### 504  ### 504
819    
820  marc('504','a',  marc('504','a',
821          rec('320')          rec('320')
822  );  );
823    
824  ## napomene uz konverziju polja 327 (sadrzaj):  ### 505
 # NSK konvertira 327 (NP) u 501 (R)  
 # u LOC konv. tablici stoji 327 (NP) u 505 (NR)  
 # standard i validacije dopuštaju 501 (R) i 505 (R)  
   
 ## 505  
825  ## FFPS 327 - sadrzaj  ## FFPS 327 - sadrzaj
826    ## NSK konvertira 327 (NP) u 501 (R)
827    ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)
828    ## standard i validacije dopuštaju 501 (R) i 505 (R)
829    
830  if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {  if ( config() =~ m/ffps|fftu/ ) {
831          marc_indicators('505', '0', ' ');          marc_indicators('505', '0', ' ');
832          marc('505','a',          marc('505','a',
833                  regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',                  regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
# Line 379  if ( config() =~ m/ffps/ || config() =~ Line 836  if ( config() =~ m/ffps/ || config() =~
836  );  );
837  }  }
838    
839    if ( config() =~ m/ffan/ ) {
840            marc_indicators('505', '0', ' ');
841            marc('505','a',
842                    regex('s/[<>]//g',
843                            rec('330')
844                    )      
845    );
846    }
847    
848    
 ## napomene uz konverziju polja 330:  
 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica  
849    
850    
851  ### 520  ### 520
852  # možda i polje 520y - jezik napomene ako je uvijek isti jezik  ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
853    ## FFPS 330 (NP) - sažetak
854    
 # FFPS 330 (NP) - sažetak  
855  if ( config() =~ m/ffps/ ) {  if ( config() =~ m/ffps/ ) {
856          marc('520','a',          marc('520','a',
857                  regex('s/[\\r\\n]+/. /g',                  regex('s/[\\r\\n]+/. /g',
# Line 397  if ( config() =~ m/ffps/ ) { Line 860  if ( config() =~ m/ffps/ ) {
860          );          );
861  }  }
862    
863  # FFTU 330 - ???  ### 526 - STUDY PROGRAM INFORMATION NOTE
864  if ( config() =~ m/fftu/ ) {  ## provjeriti za svaku bazu sta je u 996?
         marc('520','a',  
                 rec('330')  
         );  
 }  
865    
866    marc_indicators('526', 8, ' ');
867    
868  ### 538  marc('526','a',
869            rec('996')
 marc('538','a',  
         rec('337','a')  
870  );  );
871    
872    ### 538 - zahtjevi sustava
873    
874  ### 246  marc('538','a',
875            rec('337','a')
 marc_indicators('246', 1, 3);  
 marc('246','a',  
         rec('532')  
876  );  );
877    
878  ### 655  ### 655
# Line 427  marc('655','a', Line 883  marc('655','a',
883  );  );
884    
885  ### 653  ### 653
886    ## da li ponovljivo polje ili potpolje, pogledati u Koha tags
887    
888  marc_indicators('653', 0, ' ');  marc_indicators('653', ' ', ' ');
889  marc('653','a',  marc('653','a',
890          rec('610')          rec('610')
891  );  );
# Line 437  marc('653','a', Line 894  marc('653','a',
894    
895    
896  ### 700  ### 700
897    ## ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
898    
899  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
900    
 if ( rec('701') ) {  
 marc('700','4',  
         'aut'  
 );  
 }  
   
901  marc('700','a',  marc('700','a',
902          join_with(', ',          rec('701', 'a'),
                 rec('701', 'a'),  
                 rec('701', 'b')  
         )  
903  );  );
904    
905  marc('700','a',  marc('700','a',
# Line 476  marc('700','a', Line 925  marc('700','a',
925    
926    
927  marc('700','a',  marc('700','a',
928          rec('702','a'),                  rec('702', 'a'),
929  );  );
930    
   
 # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!  
   
   
931  marc('700','a',  marc('700','a',
932          join_with(', ',          join_with(', ',
933                  rec('702','c'),                  rec('702','c'),
# Line 504  marc('700','a', Line 949  marc('700','a',
949          )          )
950  );  );
951    
 ## treba provjeriti da li polje 330 sadrzi jos neke podatke koji mogu biti u <> ili su tu iskljucivo autori? da li samo autori ili neke druge osobe?  
 #  
 # marc('700','a',  
 #       rec('330','a')  
 # );  
 #  
 #  
 # marc('700','a',  
 #       rec('330','b')  
 # );  
 #  
 # marc('700','a',  
 #       rec('330','c')  
 # );  
 #  
 #  
 # marc('700','a',  
 #       rec('330','d')  
 # );  
 #  
 # marc('700','a',  
 #       rec('330','e')  
 # );  
 #  
 # marc('700','a',  
 #       rec('330','f')  
 # );  
   
952  #_debug(0);  #_debug(0);
953    
954    
955    ### 740 - nadopuniti
   
 ### 740  
956    
957  marc_indicators('740', 0, ' ');  marc_indicators('740', 0, ' ');
958    
# Line 546  marc_indicators('740', 0, ' '); Line 961  marc_indicators('740', 0, ' ');
961  #       rec('200','c')  #       rec('200','c')
962  # );  # );
963    
964   marc('740','a',  marc('740','a',
965          rec('200','k')          rec('200','k')
966   );  );
967    
968  # } else {  # } else {
969    
# Line 558  marc_indicators('740', 0, ' '); Line 973  marc_indicators('740', 0, ' ');
973    
974  # };  # };
975    
 ### generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim  
   
   
 my $series_key = join_with('',  
         rec('225','a'),  
         rec('210','a'),  
         rec('210','b'),  
 );  
   
 if ($series_key) {  
976    
977          marc_indicators('760', 0, ' ');  ### 760 w
978            ## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim
         marc('760','w',  
                 get( $series_key )  
         );  
979    
980  }  #if (
981    #       rec('225','a')  # da li je nakladnička cjelina?
982    #) {
983    
984    #my $series_key =
985    #join_with('',
986    #       rec('225','a'),
987    #       rec('210','a'),
988    #       rec('210','b'),
989    #);
990    #
991    #my $series = get( $series_key );
992    #
993    #if ($series) {
994    #       warn "nije novi";
995    #} else {
996    #
997    #$series = join_with('',
998    #       uc( config() ),
999    #       ' LS',
1000    #       rec('000')
1001    #);
1002    #
1003    #set( $series_key => $series );
1004    #
1005    #} # $series
1006    #} # nakladnička cjelina
1007    #
1008    #my $series_key = join_with('',
1009    #       rec('225','a'),
1010    #       rec('210','a'),
1011    #       rec('210','b'),
1012    #);
1013    #
1014    #if ($series_key) {
1015    #
1016    #       marc_indicators('760', 0, ' ');
1017    #      
1018    #       marc('760','t',
1019    #               rec('225','a')
1020    #       );
1021    #       marc('760','w',
1022    #               get( $series_key )
1023    #       );
1024    #}
1025    
1026  ### testing  # ## testing
1027  #  #
1028  # my $dup_key = join_with('',  # my $dup_key = join_with('',
1029  #       rec('200','a'),  #       rec('200','a'),
# Line 598  if ($series_key) { Line 1044  if ($series_key) {
1044  #  #
1045    
1046    
1047  ### višerazinci  ### 774 - Constituent Item Entry
1048  # odvojiti u posebnu datoteku i dokumentirati  ### 787 - Nonspecific Relationship Entry
1049    
1050    marc_indicators('787','0',' ');
1051    
1052  if ( rec('230') ) {  marc_compose('787',
1053            'g', rec('230','v'),
1054            't', rec('230','a'),
1055            'b', rec('240','a'),
1056            'd', rec('250','a'),
1057            'd', rec('250','d'),
1058            'h', rec('260','a'),
1059            'k', rec('270','a'),
1060            'n', join_with('. - ',
1061                    rec('280'),
1062            ),
1063            'x', rec('290'),
1064    );
1065    
1066          marc_duplicate();  marc_compose('787',
1067            'g', rec('231','v'),
1068            't', rec('231','a'),
1069            'b', rec('241','a'),
1070            'd', rec('251','a'),
1071            'd', rec('251','d'),
1072            'h', rec('261','a'),
1073            'k', rec('271','a'),
1074            'n', join_with('. - ',
1075                    rec('281'),
1076            ),
1077            'x', rec('291'),
1078    );
1079    
1080          marc_remove('035');  marc_compose('787',
1081          marc('035','6',          'g', rec('232','v'),
1082                  join_with('',          't', rec('232','a'),
1083                          config(),          'b', rec('242','a'),
1084                          rec('000'),          'd', rec('252','a'),
1085                          '-',          'd', rec('252','d'),
1086                          id(),          'h', rec('262','a'),
1087                  )          'k', rec('272','a'),
1088          );          'n', join_with('. - ',
1089                    rec('282'),
1090            ),
1091            'x', rec('292'),
1092    );
1093    
1094    marc_compose('787',
1095            'g', rec('233','v'),
1096            't', rec('233','a'),
1097            'b', rec('243','a'),
1098            'd', rec('253','a'),
1099            'h', rec('263','a'),
1100            'k', rec('273','a'),
1101            'n', join_with('. - ',
1102                    rec('283'),
1103            ),
1104            'x', rec('293'),
1105    );
1106    
         marc_remove('245');  
           
         if ( rec('230','a') ) {  
                 marc_compose('245',  
                 'a', suffix(  
                         rec('230','b') ? '. '   :  
                         rec('230','k') ? ' ; '  :  
                         rec('230','d') ? ' = '  :  
                         rec('230','e') ? ' : '  :  
                         rec('230','f') ? ' / '  :  
                                          '.',  
                                 rec('230','a')  
                 ),  
                 'b',  
                         join_with(' ; ',  
                                 rec('230','k'),  
                         ),  
                 'b', rec('230','d'),  
                 'b',  
                         join_with(' : ',  
                                 rec('230','e'),  
                         ),  
                 'c',  
                         join_with(' ; ',  
                                 rec('230','f'),  
                         ),  
         );  
           
         } else {  
           
                 marc_compose('245',  
                 'a', suffix(  
                         rec('230','b') ? '. '   :  
                         rec('230','k') ? ' ; '  :  
                         rec('230','d') ? ' = '  :  
                         rec('230','e') ? ' : '  :  
                         rec('230','f') ? ' / '  :  
                                          '.',  
                                 rec('200','a')  
                 ),  
                 'b',  
                         join_with(' ; ',  
                                 rec('230','k'),  
                         ),  
                 'b', rec('230','d'),  
                 'b',  
                         join_with(' : ',  
                                 rec('230','e'),  
                         ),  
                 'c',  
                         join_with(' ; ',  
                                 rec('230','f'),  
                         ),  
                 'n', rec('230','v'),  
         );  
           
         }  
1107    
         marc_remove('260');  
1108    
1109  #       marc_original_order('260', '250');  ### 852 - lokacija
1110    
         marc('260','c',  
                 rec1('251')  
         );  
1111    
1112    
1113  #       marc('260','a',  #marc('852','i',
1114  #               rec('251','a')  #      
1115  #       );  #);
 #       marc('260','b',  
 #               rec('251','c')  
 #       );  
 #       marc('260','c',  
 #               rec('251','d'),  
 #               rec1('251')  
 #       );  
1116    
1117          marc_remove('300');          
         marc('300','a',  
                 rec('260')  
         );  
1118    
1119          marc_remove('440');  ### 876 - item information - basic bibliographic unit
         marc('440','a',  
                 rec('270')  
         );  
1120    
1121          marc_remove('500');  marc('876','a',
1122          marc('500','a',          rec('991','t'),
1123                  rec('280')  );
         );  
1124    
1125          marc_remove('020');  ### 886 - former marc
         marc('020','a',  
                 rec('290')  
         );  
1126    
1127          marc_indicators('774', 0, ' ');  marc_indicators('886', 2, ' ');
         marc('774','g',  
                 rec('230','v')  
         );  
   
         marc('774','t',  
                 rec('200','a')  
         );  
           
         marc('774','w',  
                 join_with('',  
                         config(),  
                         rec('000')  
                 )  
         );  
1128    
1129    marc('886','2',
1130  }          'ffmarc'
1131    );
1132    
1133  ##################################  marc('886','a',
1134  ##                              ##          '994'
1135  ## pomoćni ispisi - privremeno! ##  );
 ##                              ##  
 ##################################  
   
 if ( ! rec('464') && rec('200','c') ) {  
         marc('002',  
                 'ima-200c-nema-464'  
         );  
 }  
1136    
1137  if ( ! rec('464') && rec('200','k') ) {  marc('886','b',
1138          marc('003',          join_with(''.
1139                  'ima-200k-nema-464'                  '##^a',
1140          );                  join_with('',
1141  }                          prefix('^a',
1142                                    rec('994','a'),
1143                            ),
1144                            prefix('^b',
1145                                    rec('994','b')
1146                            )
1147                    )
1148            )
1149    );
1150    
1151  if ( ! ( rec('200','c') || rec('200','k') ) && rec('464') ) {  ### KOHA
         marc('004',  
                 'ima-464-nema-200c-ili-200k'  
         );  
 }  
1152    
1153    marc('942','b',
1154            'LIB'
1155    );
1156    
1157    marc('942','c',
1158            'KNJ'
1159    );
1160    
1161  #_debug(2);  marc('942','d',
1162            join_with(' | ',
1163                    rec('990')
1164            )
1165    );      
1166    
1167  if ( rec('200') =~ m/prev/ ) {  if ( config() =~ m/ffiz/ ) {
1168          marc('005',          my $novasig1 =
1169                  'prijevod'                  lookup(
1170                            sub { rec('C') },
1171                            'ffiz','mapirano',
1172                            sub { rec('B') },
1173                            sub { rec('990') }
1174                    );
1175            my $novasig2 =
1176                    lookup(
1177                            sub { rec('C') . ' ' . rec('D') },
1178                            'ffiz','starasig',
1179                            sub { rec('A') },
1180                            sub { rec('000') },
1181                    );
1182            marc('942','h',
1183                    $novasig1
1184            );
1185            marc('942','i',
1186                    $novasig2
1187          );          );
1188  }  }
1189    
 #_debug(0);  
1190    
1191    #if ( config() =~ m/ffsf|ffpo/ ) {
1192    #       my $sig1 =
1193    #               lookup(
1194    #                       sub { rec('C') },
1195    #                       'ffiz','signature',
1196    #                       sub { rec('B') },
1197    #                       sub { frec('990') },
1198    #               );
1199    #       if ( rec('700','a') ) {
1200    #               marc('942','h',
1201    #                       $sig1,
1202    #               );
1203    #               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1204    #                       marc('942','i',
1205    #                               join_with(' ',
1206    #                                       regex('s/(^.{3}).*/$1/',
1207    #                                               uc ( rec('700','a') )
1208    #                                       ),
1209    #                                       regex('s/^.{4}(.{1}).*/$1/',
1210    #                                               lc ( rec('200','a') )
1211    #                                       )
1212    #                               )
1213    #                       );
1214    #               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1215    #                       marc('942','i',
1216    #                               join_with(' ',
1217    #                                       regex('s/(^.{3}).*/$1/',
1218    #                                               uc ( rec('700','a') )
1219    #                                       ),
1220    #                                       regex('s/^.{3}(.{1}).*/$1/',
1221    #                                               lc ( rec('200','a') )
1222    #                                       )
1223    #                               )
1224    #                       );
1225    #               } elsif ( rec('200','a') =~ m/^Eine / ) {
1226    #                       marc('942','i',
1227    #                               join_with(' ',
1228    #                                       regex('s/(^.{3}).*/$1/',
1229    #                                               uc ( rec('700','a') )
1230    #                                       ),
1231    #                                       regex('s/^.{5}(.{1}).*/$1/',
1232    #                                               lc ( rec('200','a') )
1233    #                                       )
1234    #                               )
1235    #                       );
1236    #               } elsif ( rec('200','a') =~ m/^Einen / ) {
1237    #                       marc('942','i',
1238    #                               join_with(' ',
1239    #                                       regex('s/(^.{3}).*/$1/',
1240    #                                               uc ( rec('700','a') )
1241    #                                       ),
1242    #                                       regex('s/^.{6}(.{1}).*/$1/',
1243    #                                               lc ( rec('200','a') )
1244    #                                       )
1245    #                               )
1246    #                       );
1247    #               } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1248    #                       marc('942','i',
1249    #                               join_with(' ',
1250    #                                       regex('s/(^.{3}).*/$1/',
1251    #                                               uc ( rec('700','a') )
1252    #                                       ),
1253    #                                       regex('s/^.{2}(.{1}).*/$1/',
1254    #                                               lc ( rec('200','a') )
1255    #                                       )
1256    #                               )
1257    #                       );
1258    #               } else {
1259    #                       marc('942','i',
1260    #                               join_with(' ',
1261    #                                       regex('s/(^.{3}).*/$1/',
1262    #                                               uc ( rec('700','a') )
1263    #                                       ),
1264    #                                       regex('s/(^.{1}).*/$1/',
1265    #                                               lc ( rec('200','a') )
1266    #                                       )
1267    #                               )
1268    #                       );
1269    #               }
1270    #       } elsif ( rec('710','a') ) {
1271    #               marc('942','h',
1272    #                       $sig1,
1273    #               );
1274    #               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1275    #                       marc('942','i',
1276    #                               join_with(' ',
1277    #                                       regex('s/(^.{3}).*/$1/',
1278    #                                               uc ( rec('710','a') )
1279    #                                       ),
1280    #                                       regex('s/^.{4}(.{1}).*/$1/',
1281    #                                               lc ( rec('200','a') )
1282    #                                       )
1283    #                               )
1284    #                       );
1285    #               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1286    #                       marc('942','i',
1287    #                               join_with(' ',
1288    #                                       regex('s/(^.{3}).*/$1/',
1289    #                                               uc ( rec('710','a') )
1290    #                                       ),
1291    #                                       regex('s/^.{3}(.{1}).*/$1/',
1292    #                                               lc ( rec('200','a') )
1293    #                                       )
1294    #                               )
1295    #                       );
1296    #               } elsif ( rec('200','a') =~ m/^Eine / ) {
1297    #                       marc('942','i',
1298    #                               join_with(' ',
1299    #                                       regex('s/(^.{3}).*/$1/',
1300    #                                               uc ( rec('710','a') )
1301    #                                       ),
1302    #                                       regex('s/^.{5}(.{1}).*/$1/',
1303    #                                               lc ( rec('200','a') )
1304    #                                       )
1305    #                               )
1306    #                       );
1307    #               } elsif ( rec('200','a') =~ m/^Einen / ) {
1308    #                       marc('942','i',
1309    #                               join_with(' ',
1310    #                                       regex('s/(^.{3}).*/$1/',
1311    #                                               uc ( rec('710','a') )
1312    #                                       ),
1313    #                                       regex('s/^.{6}(.{1}).*/$1/',
1314    #                                               lc ( rec('200','a') )
1315    #                                       )
1316    #                               )
1317    #                       );
1318    #               } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1319    #                       marc('942','i',
1320    #                               join_with(' ',
1321    #                                       regex('s/(^.{3}).*/$1/',
1322    #                                               uc ( rec('710','a') )
1323    #                                       ),
1324    #                                       regex('s/^.{2}(.{1}).*/$1/',
1325    #                                               lc ( rec('200','a') )
1326    #                                       )
1327    #                               )
1328    #                       );
1329    #               } else {
1330    #                       marc('942','i',
1331    #                               join_with(' ',
1332    #                                       regex('s/(^.{3}).*/$1/',
1333    #                                               uc ( rec('710','a') )
1334    #                                       ),
1335    #                                       regex('s/(^.{1}).*/$1/',
1336    #                                               lc ( rec('200','a') )
1337    #                                       )
1338    #                               )
1339    #                       );
1340    #               }
1341    #       } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1342    #               marc('942','h',
1343    #                       $sig1,
1344    #               );
1345    #               marc('942','i',
1346    #                       regex('s/^.{4}(.{3}).*/$1/',
1347    #                               uc ( rec('200','a') )
1348    #                       ),
1349    #               );
1350    #                      
1351    #       } else {
1352    #               marc('942','h',
1353    #                       $sig1,
1354    #               );
1355    #               marc('942','i',
1356    #                       regex('s/(^\w{3}).*/$1/',
1357    #                               uc ( rec('200','a') )
1358    #                       )
1359    #               )
1360    #       }
1361    #} # if config()
1362    
1363    marc('952','8',
1364            rec('991','8')
1365    );
1366    
1367    marc('952','a',
1368            rec('991','a')
1369    );
1370    
1371    marc('952','b',
1372            rec('991','b')
1373    );
1374    
1375    marc('952','c',
1376            rec('991','c'),
1377    );
1378    
1379    marc('952','i',
1380            rec('991','i')
1381    );
1382    
1383    marc('952','y',
1384            rec('991','y')
1385    );
1386    
1387    
1388  }  
1389    
1390    } # polje 200a
1391    # } sig

Legend:
Removed from v.792  
changed lines
  Added in v.1095

  ViewVC Help
Powered by ViewVC 1.1.26