Пример #1
0
Файл: vsh.cpp Проект: garinh/cs
static void cmd_mount (char *args)
{
  char *vpath, *rpath;
  if (!get2args ("mount", args, vpath, rpath))
    return;

  if (!VFS->Mount (vpath, rpath))
    csPrintfErr ("mount: cannot mount \"%s\" to \"%s\"\n", rpath, vpath);
}
Пример #2
0
Файл: vsh.cpp Проект: garinh/cs
static void cmd_unmount (char *args)
{
  char *vpath, *rpath;
  if (!get2args ("unmount", args, vpath, rpath, false))
    return;

  if (!*rpath)
    rpath = 0;

  if (!VFS->Unmount (vpath, rpath))
    csPrintfErr ("unmount: cannot unmount \"%s\" from \"%s\"\n",
      rpath, vpath);
}
Пример #3
0
int
main( )
{
    int a, b, erg;
    int sel_op;
    int ende = FALSE;

    do
    {
        printf("Gewuenschte Operation?   \n");
        printf("   1: add    2: sub      \n");
        printf("   3: mult   4: div      \n");
        printf("   5: rest   6: rest_add \n");
        printf("   7: basis              \n");
        printf("  99: Programmende       \n\n");

        scanf("%d", &sel_op);
        switch (sel_op)
        {
        case 1:
            get2args( &a, &b );
            erg = add ( a, b );
            puterg2("add", a, b, erg);
            break;
        case 2:
            get2args( &a, &b );
            erg = sub( a, b );
            puterg2("sub", a, b, erg);
            break;
        case 3:
            get2args( &a, &b );
            erg = mult( a, b );
            puterg2("mult", a, b, erg);
            break;
        case 4:
            get2args( &a, &b );
            erg = div( a, b );
            puterg2("div", a, b, erg);
            break;
        case 5:
            getarg( &a );
            erg = rest( a );
            puterg1("rest", a, erg);
            break;
        case 6:
            get2args( &a, &b );
            erg = rest_add( a, b );
            puterg2("rest_add", a, b, erg);
            break;
        case 7:
            erg = basis( );
            puterg0("basis", erg);
            break;
        case 99:
            ende = TRUE;
            break;
        default:
            break;
        }
    } while ( !ende );

    return 0;
}
Пример #4
0
Файл: vsh.cpp Проект: garinh/cs
static void cmd_cp (char *args)
{
  bool onepass;
  get_option (args, onepass);

  char *src, *dst;
  if (!get2args ("cp", args, src, dst))
    return;

  csRef<iStringArray> fl (VFS->FindFiles (src));
  size_t i;
  for (i = 0; i < fl->GetSize () ; i++)
  {
    char destname [VFS_MAX_PATH_LEN + 1];
    src = (char *)fl->Get (i);

    if (fl->GetSize () > 1)
    {
      size_t dirlen = strlen (src);
      if (dirlen)
        dirlen--;
      while (dirlen && src [dirlen - 1] != VFS_PATH_SEPARATOR)
        dirlen--;
      strcpy (destname, dst);
      if (destname [0])
        if (destname [strlen (destname) - 1] != VFS_PATH_SEPARATOR)
          strcat (destname, "/");
      strcat (destname, src + dirlen);
      csPrintf ("%s -> %s\n", src, destname);
      dst = destname;
    }

    if (onepass)
    {
      csRef<iDataBuffer> data (VFS->ReadFile (src));
      if (!data)
      {
        csPrintfErr ("cp: cannot read file \"%s\"\n", src);
        return;
      }

      if (!VFS->WriteFile (dst, **data, data->GetSize ()))
        csPrintfErr ("cp: error writing to file \"%s\"\n", dst);
    }
    else
    {
      csRef<iFile> dF (VFS->Open (dst, VFS_FILE_WRITE));
      if (!dF)
      {
        csPrintfErr ("cp: cannot open destination file \"%s\"\n", dst);
        return;
      }
      csRef<iFile> sF (VFS->Open (src, VFS_FILE_READ));
      if (!sF)
      {
        csPrintfErr ("cp: cannot open source file \"%s\"\n", src);
        return;
      }
      while (!sF->AtEOF ())
      {
        char buff [123];
        size_t len = sF->Read (buff, sizeof (buff));
        if (dF->Write (buff, len) != len)
        {
          csPrintfErr ("cp: error writing to file \"%s\"\n", dst);
          break;
        }
      }
    }
  }
}