Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-5276

PATCH: cmd: replace FILE IO with Memory IO functions for batch files

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 0.4.0
    • Component/s: Shell
    • Labels:
      None
    • Environment:

      Operating System: ReactOS
      Platform: x86 Hardware

      Description

      Created an attachment (id=5593)
      modified files base/shell/cmd

      I wanted to prevent FILE IO and keeping batch files locked during execution.
      Also when goto or internal calls are being used, currently a new filehandle gets opened in order to keep track of the position it is executing

      I changed the way batch files are read and keep track of its position by reading the full batch file into memory and from that point only use memory instead of file IO.
      During execution of a batch file, the file is now no longer accessed or locked

      Downside it costs you some extra memory, advantage no locked files and less FILE IO.

      Changes:
      batch.h:
      removed HBatchFile handle and added some mem vars

      batch.c:

      • added functions:
        ClearBatch: remove some redundant code in ExitBatch and Batch for freeing mem
        BatchFile2Mem : load the batchfile into memory
        BatchGetString: Same as FileGetString, but now using the mem vars in the bc structure.
      • changed functions:
        ExitBatch: now uses ClearBatch for freeing memory
        Batch: determine is same filename is used as current (goto or internal call)
        Uses ClearBatch to free the bc memory (same as ExitBatch)
        Add logic to copy mem vars to new bc structure if filename is the same
        If different filename is used, open file, load into mem, close file
        ReadBatchLine: replaced FileGetString with BatchGetString

      goto.c:
      in function cmd_goto, changed the SetFilePointer code and replaced the FileGetString with BatchGetString

      Attached are the modified files (from version 3.12)

        Attachments

          Activity

            People

            • Assignee:
              bug zilla Bug Zilla
              Reporter:
              hansh Hans Harder
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: