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

Legend:
Removed from v.795  
changed lines
  Added in v.1102

  ViewVC Help
Powered by ViewVC 1.1.26