Aros/Developer/Docs/Devices/Console

From Wikibooks, open books for an open world
Jump to: navigation, search
Navbar for the Aros wikibook
Aros User Docs
Aros User Docs
Aros User FAQs
Aros User Applications
Aros User DOS Shell
Aros/User/AmigaLegacy
Aros Dev Docs
Aros Developer Docs
Porting Software from AmigaOS/SDL
For Zune Beginners
Zune .MUI Classes
For SDL Beginners
Aros Developer BuildSystem
Specific platforms
68k Support
PPC Power Architecture Support
Arm Raspberry Pi Support
Android support
Linux and FreeBSD Support
Windows Mingw and MacOSX Support
Aros x86 Installing
Aros x86 Audio/Video Support
Aros x86 Network Support
Aros x86 Complete System HCL
Aros Storage Support IDE SATA etc
Aros Poseidon USB Support
x86-64 Support
misc
Aros Public License


Introduction[edit]

Reference[edit]

There should be Shell support for the '_pchar' and '_mchar' variables. If it can be added _pchar and _mchar support, then C:Pipe command can be added to support it. BTW: Open("PIPE:*",...) now opens an automatically named piped.

Use NameFromFH() to get the name of its opposite. ie to implement something similar to the Unix pipe() call:

BOOL Pipe(BPTR pipe[2])
{
  char buff[64];
  pipe[1]=Open("PIPE:*", MODE_NEWFILE);
  if (pipe[1]) {
      char buff[64];
      if (NameFromFH(fh_write, buff, sizeof(buff)) != 0) {
          pipe[0] = Open(buff, MODE_OLDFILE);
          if (pipe[0])
              return DOSTRUE;
      }
      Close(pipe[1]);
  }
  return DOSFALSE;
}

I did some attempts but there is something strange going on with AOS _mchar.. (OS3.9+BB2)

_mchar set and command line including _mchar character: PIPE is inserted as command (just like _pchar). Even single shell line containing _mchar runs PIPE.

I didn't even have C:PIPE so I only got PIPE not found error.. how is this supposed to work?

Does this mean it is actually C:PIPE that handles both _pchar and _mchar and not shell? Shell's only task is to check if _mchar or _pchar is found in command line and inserting PIPE at the beginning of command if found?

I can implement shell change but first I need to know how to handle _mchar. It relies upon the new 'PIPE:*' autonamed pipe feature, so keep that in mind if anyone is interested in porting this back to ABI_V0.

PIPE seems to be a shell expansion that was never fully finished by commodore in 2.0, and was forgotten in later versions.

I noticed that C:Type and C:Sort can't take stdin as input.

<snip> 1> Pipe List: SYS: NOHEAD | Sort IN: OUT: | More

Notice how Sort needs `IN:' and `OUT:'. These devices don't actually exist, but the Pipe command simulates them with the PIPE:. This is necessary because C:Sort can not use the `standard IO', but insists on files. </snip>

I guess this needs to be implemented too.