Sort strings in double linked list. (Optimize code)

I have a struct with different members and the ones I want to sort is int and string. The sorting will only affect one member of the struct and the hole linked list. As it is now I have one sorting function for every variable and I want one sorting function for all the variables. The difference in code are minimal but I can't seem to figure out how to only have one sorting function.

The only difference between the functions are the highlighted variable.

Ex function 1.

Code:

void sortDiscID(sCdPost *CdRoot)

{

sCdPost *current;

bool swap = true;

current = CdRoot;

if (current->pNext)

current = current->pNext;

while (swap || current->pNext != CdRoot)

{

swap = false;

while (current->pNext != CdRoot)

{

if (current->discID > current->pNext->discID)

{

current->pPrev->pNext = current->pNext;

current->pNext->pNext->pPrev = current;

current->pNext->pPrev = current->pPrev;

current->pPrev = current->pNext;

current->pNext = current->pNext->pNext;

current = current->pPrev;

current->pNext = current->pNext->pPrev;

swap = true;

}

current = current->pNext;

}

if (swap)

current = CdRoot->pNext;

}

}//sortDiscID