@@ -3,7 +3,9 @@ BeginPackage["CoffeeLiqueur`Notebook`FileFormat`"];
33readNotebook ;
44writeNotebook ;
55
6- endOfLine = EndOfLine ;
6+ endOfLine = EndOfLine | "\r " ;
7+ newLine [1 ] = "\n " | "\r\n " ;
8+ newLine [2 ] = "\n\n " | "\r\n\r\n " ;
79
810Begin ["`Private`" ];
911
@@ -301,7 +303,7 @@ readNotebook[stream_, timeout_:10] := Module[
301303 With [
302304 {
303305 testIfEnd = Function [p ,
304- StringMatchQ [ReadString [file , " \n " , TimeConstraint -> timeout ], StartOfString ~~ p ~~ "%" ~~ ___ ]
306+ StringMatchQ [ReadString [file , newLine [ 1 ] , TimeConstraint -> timeout ], StartOfString ~~ p ~~ "%" ~~ ___ ]
305307 ]
306308 }
307309 ,
@@ -341,7 +343,7 @@ readNotebook[stream_, timeout_:10] := Module[
341343 ReadString [
342344 file
343345 ,
344- StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ "Cells" ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n " ..
346+ StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ "Cells" ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ] ..
345347 ,
346348 TimeConstraint -> timeout
347349 ]
@@ -355,7 +357,7 @@ readNotebook[stream_, timeout_:10] := Module[
355357 ReadString [
356358 file
357359 ,
358- StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n "
360+ StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ]
359361 ,
360362 TimeConstraint -> timeout
361363 ]
@@ -366,7 +368,7 @@ readNotebook[stream_, timeout_:10] := Module[
366368 Return [$Failed ]
367369 ];
368370 temp = parseMiniYAML [StringTrim [temp ]];
369- buffer = ReadString [file , " \n\n " ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
371+ buffer = ReadString [file , newLine [ 2 ] ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
370372 If [FailureQ [buffer ],
371373 Return [$Failed ]
372374 ];
@@ -378,7 +380,7 @@ readNotebook[stream_, timeout_:10] := Module[
378380 ReadString [
379381 file
380382 ,
381- StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n "
383+ StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ]
382384 ,
383385 TimeConstraint -> timeout
384386 ]
@@ -389,7 +391,7 @@ readNotebook[stream_, timeout_:10] := Module[
389391 Return [$Failed ]
390392 ];
391393 temp = parseMiniYAML [StringTrim [temp ]];
392- buffer = ReadString [file , " \n\n " ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
394+ buffer = ReadString [file , newLine [ 2 ] ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
393395 If [FailureQ [buffer ],
394396 Return [$Failed ]
395397 ];
@@ -408,7 +410,7 @@ readNotebook[stream_, timeout_:10] := Module[
408410 ReadString [
409411 file
410412 ,
411- StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ field ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n " ..
413+ StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ field ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ] ..
412414 ,
413415 TimeConstraint -> timeout
414416 ]
@@ -422,7 +424,7 @@ readNotebook[stream_, timeout_:10] := Module[
422424 ReadString [
423425 file
424426 ,
425- (StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n " ) | (StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%EndOf" ~~ field ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n " )
427+ (StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ] ) | (StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%EndOf" ~~ field ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ] )
426428 ,
427429 TimeConstraint -> timeout
428430 ]
@@ -436,7 +438,7 @@ readNotebook[stream_, timeout_:10] := Module[
436438 keys [field ] = Association []; Continue [];
437439 ];
438440 temp = parseMiniYAML [StringTrim [temp ]];
439- buffer = ReadString [file , " \n\n " ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
441+ buffer = ReadString [file , newLine [ 2 ] ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
440442 If [FailureQ [buffer ],
441443 Return [$Failed ]
442444 ];
@@ -448,7 +450,7 @@ readNotebook[stream_, timeout_:10] := Module[
448450 ReadString [
449451 file
450452 ,
451- StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ " \n "
453+ StartOfLine ~~ "%" ~~ Repeated ["-" , {17 , 100 }] ~~ Repeated ["-" , {17 , 100 }] ~~ "%" ~~ endOfLine ~~ newLine [ 1 ]
452454 ,
453455 TimeConstraint -> timeout
454456 ]
@@ -459,7 +461,7 @@ readNotebook[stream_, timeout_:10] := Module[
459461 Return [$Failed ]
460462 ];
461463 temp = parseMiniYAML [StringTrim [temp ]];
462- buffer = ReadString [file , " \n\n " ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
464+ buffer = ReadString [file , newLine [ 2 ] ~~ StartOfLine ~~ "%" ~~ Repeated ["-" , {16 , 100 }] ~~ "%" , TimeConstraint -> timeout ];
463465 If [FailureQ [buffer ],
464466 Return [$Failed ]
465467 ];
0 commit comments