1- using System . Diagnostics ;
1+ using System . Collections . Concurrent ;
2+ using System . Diagnostics ;
23using System . Reflection ;
4+ using System . Text ;
35using Kantan . Text ;
6+ using Novus . Streams ;
7+ using SixLabors . ImageSharp ;
8+ using SixLabors . ImageSharp . Formats ;
49using Spectre . Console ;
510using Spectre . Console . Cli ;
611using SmartImage . Rdx . Shell ;
@@ -27,6 +32,54 @@ public static async Task<int> Main(string[] args)
2732 Debug . WriteLine ( AConsole . Profile . Height ) ;
2833 Debug . WriteLine ( Console . BufferHeight ) ;
2934
35+ if ( Console . IsInputRedirected ) {
36+ // using var str = Console.OpenStandardInput(500);
37+ Stream stdin = Console . OpenStandardInput ( 1000 ) ;
38+ /*byte[] inBuffer = new byte[1_000_000];
39+
40+ int outLen = stdin.Read(inBuffer, 0, inBuffer.Length);
41+ char[] chars = Encoding.ASCII.GetChars(inBuffer, 0, outLen);
42+ var cmd = new string(chars);
43+ if ((cmd[cmd.Length - 2] == '\r') && (cmd[cmd.Length - 1] == '\n'))
44+ {
45+ cmd = cmd.Substring(0, cmd.Length - 2);
46+ }*/
47+ var sr = new StreamReader ( stdin ) ;
48+ int n1 = 0 , n2 = 0 ;
49+ var sb = new char [ 8_000_000 ] ;
50+
51+ while ( ! sr . EndOfStream ) {
52+ /*if (sb[^2] == '\r' && sb[^1] == '\n') {
53+ break;
54+ }*/
55+ n1 += ( n2 = sr . Read ( sb , n1 , sb . Length - n1 ) ) ;
56+
57+ if ( n2 == 0 ) {
58+ break ;
59+ }
60+
61+ }
62+
63+ sb = sb [ ..n1 ] ;
64+
65+ if ( sb [ ^ 2 ] == '\r ' && sb [ ^ 1 ] == '\n ' ) {
66+ sb = sb [ 0 ..^ 2 ] ;
67+ }
68+
69+ IImageFormat fmt ;
70+ AConsole . WriteLine ( $ "{ sb . Length } ") ;
71+
72+ /*try {
73+ fmt = await Image.DetectFormatAsync();
74+ }
75+ catch (Exception e) {
76+ AConsole.WriteLine($"{e.Message}");
77+ }
78+ finally {
79+ str.TrySeek();
80+ }*/
81+ }
82+
3083 var ff = CliFormat . LoadFigletFontFromResource ( nameof ( R2 . Fg_larry3d ) , out var ms ) ;
3184
3285 // ms?.Dispose();
0 commit comments