add Edit and HexEdit commands.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11436 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2011-03-25 21:15:07 +00:00
parent 5a0fe66eda
commit 632820d1cf
28 changed files with 14014 additions and 0 deletions

View File

@ -0,0 +1,92 @@
/** @file
Implementation of various string and line routines.
Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#include "TextEditor.h"
#include "Misc.h"
/**
Duplicate a EFI_EDITOR_LINE structure.
@param Src The line structure to copy from.
@retval NULL A memory allocation failed.
@return a pointer to the newly allcoated line.
**/
EFI_EDITOR_LINE *
EFIAPI
LineDup (
IN EFI_EDITOR_LINE *Src
)
{
EFI_EDITOR_LINE *Dest;
//
// allocate for the line structure
//
Dest = AllocateZeroPool (sizeof (EFI_EDITOR_LINE));
if (Dest == NULL) {
return NULL;
}
//
// allocate and set the line buffer
//
Dest->Buffer = CatSPrint (NULL, L"%s", Src->Buffer);
if (Dest->Buffer == NULL) {
FreePool (Dest);
return NULL;
}
//
// set the other structure members
//
Dest->Signature = LINE_LIST_SIGNATURE;
Dest->Size = Src->Size;
Dest->TotalSize = Dest->Size;
Dest->Type = Src->Type;
Dest->Link = Src->Link;
return Dest;
}
/**
Free a EFI_EDITOR_LINE structure.
@param Src The line structure to free.
**/
VOID
EFIAPI
LineFree (
IN EFI_EDITOR_LINE *Src
)
{
if (Src == NULL) {
return ;
}
//
// free the line buffer and then the line structure itself
//
SHELL_FREE_NON_NULL (Src->Buffer);
SHELL_FREE_NON_NULL (Src);
}