VirtualBox

儲存庫 vbox 的更動 67399


忽略:
時間撮記:
2017-6-14 下午12:59:37 (7 年 以前)
作者:
vboxsync
訊息:

IPRT: More ISO maker code.

位置:
trunk/src/VBox/Runtime/common/fs
檔案:
修改 3 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Runtime/common/fs/iso9660vfs.cpp

    r67394 r67399  
    675675        if (pShared)
    676676        {
     677            LogFlow(("rtFsIso9660File_New: cbObject=%#RX64 First Extent: off=%#RX64 cb=%#RX64\n",
     678                     pShared->Core.cbObject, pShared->Core.FirstExtent.offDisk, pShared->Core.FirstExtent.cbExtent));
    677679            pNewFile->offFile = 0;
    678680            pNewFile->pShared = pShared;
  • trunk/src/VBox/Runtime/common/fs/isomaker.cpp

    r67393 r67399  
    14581458                                                      char *pszDst, size_t cbDst, size_t *pcchDst, size_t *pcbInDirRec)
    14591459{
    1460     AssertReturn(cbDst > ISO9660_MAX_NAME_LEN, VERR_INTERNAL_ERROR_3);
     1460    AssertReturn(cbDst > ISO9660_MAX_NAME_LEN + 2, VERR_INTERNAL_ERROR_3);
    14611461
    14621462    /* Skip leading dots. */
     
    15221522    }
    15231523
     1524    /* Append version if not directory */
     1525    if (!fIsDir)
     1526    {
     1527        pszDst[cchDst++] = ';';
     1528        pszDst[cchDst++] = '1';
     1529        pszDst[cchDst]   = '\0';
     1530    }
     1531
    15241532    /*
    15251533     * Unique name?
     
    19161924        size_t offNext = cchComponent;
    19171925        while (RTPATH_IS_SLASH(ch))
    1918             ch = pszPath[offNext++];
     1926            ch = pszPath[++offNext];
    19191927
    19201928        if (ch == '\0')
     
    19851993                    AssertReturn(pChild != NULL, VERR_INTERNAL_ERROR_4);
    19861994                }
     1995                pParent = pChild;
    19871996            }
    19881997        }
     
    38593868            pDir = RTListGetNext(&pFinalizedDirs->FinalizedDirs, pDir, RTFSISOMAKERNAMEDIR, FinalizedEntry);
    38603869            AssertReturnStmt(pDir, *pbBuf = 0xff, 1);
    3861         } while (offInTable - pDir->offPathTable < RTFSISOMAKER_CALC_PATHREC_SIZE(pDir->pName->cbNameInDirRec));
     3870        } while (offInTable - pDir->offPathTable >= RTFSISOMAKER_CALC_PATHREC_SIZE(pDir->pName->cbNameInDirRec));
    38623871    /* Back to the start: */
    38633872    else if (offInTable == 0)
     
    38723881            pDir = RTListGetPrev(&pFinalizedDirs->FinalizedDirs, pDir, RTFSISOMAKERNAMEDIR, FinalizedEntry);
    38733882            AssertReturnStmt(pDir, *pbBuf = 0xff, 1);
    3874         } while (offInTable - pDir->offPathTable < RTFSISOMAKER_CALC_PATHREC_SIZE(pDir->pName->cbNameInDirRec));
     3883        } while (offInTable - pDir->offPathTable >= RTFSISOMAKER_CALC_PATHREC_SIZE(pDir->pName->cbNameInDirRec));
    38753884
    38763885    /*
     
    40964105            pDir = RTListGetNext(&pFinalizedDirs->FinalizedDirs, pDir, RTFSISOMAKERNAMEDIR, FinalizedEntry);
    40974106            AssertReturnStmt(pDir, *pbBuf = 0xff, 1);
    4098         } while ((offInDir64 = offUnsigned - pDir->offDir) < RT_ALIGN_32(pDir->cbDir, RTFSISOMAKER_SECTOR_SIZE));
     4107        } while ((offInDir64 = offUnsigned - pDir->offDir) >= RT_ALIGN_32(pDir->cbDir, RTFSISOMAKER_SECTOR_SIZE));
    40994108    /* Back to the start: */
    41004109    else if (pFinalizedDirs->offDirs / RTFSISOMAKER_SECTOR_SIZE == offUnsigned / RTFSISOMAKER_SECTOR_SIZE)
     
    41094118            pDir = RTListGetPrev(&pFinalizedDirs->FinalizedDirs, pDir, RTFSISOMAKERNAMEDIR, FinalizedEntry);
    41104119            AssertReturnStmt(pDir, *pbBuf = 0xff, 1);
    4111         } while ((offInDir64 = offUnsigned - pDir->offDir) < RT_ALIGN_32(pDir->cbDir, RTFSISOMAKER_SECTOR_SIZE));
     4120        } while ((offInDir64 = offUnsigned - pDir->offDir) >= RT_ALIGN_32(pDir->cbDir, RTFSISOMAKER_SECTOR_SIZE));
    41124121
    41134122    /*
  • trunk/src/VBox/Runtime/common/fs/isomakercmd.cpp

    r67381 r67399  
    897897            return rtFsIsoMakerCmdSyntaxError(pOpts, "too many name specifiers (max %d)", RT_ELEMENTS(pOpts->afNameSpecifiers));
    898898        pOpts->afNameSpecifiers[iNameSpecifier] = fNameSpecifier;
     899        iNameSpecifier++;
     900
     901        /*
     902         * Next, if any.
     903         */
     904        if (pszSpec[offSpec] == ',')
     905            offSpec++;
    899906    } while (pszSpec[offSpec] != '\0');
    900907
     
    10571064        }
    10581065
    1059         for (uint32_t iDst = cParsedNames; iDst < pOpts->cNameSpecifiers; iDst++)
     1066        for (uint32_t iDst = iSrc + 1; iDst < pOpts->cNameSpecifiers; iDst++)
    10601067            aParsedNames[iDst] = aParsedNames[iSrc];
    10611068        cParsedNames = pOpts->cNameSpecifiers + 1;
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette