Search code examples
javascripthtmlcvs

Why does CVS expand javascript call?


Why is CVS expanding the SetDropdownList call below

from

SetDropdownList('BillPay', 'BillingState', '$State$');

to

SetDropdownList('BillPay', 'BillingState', '$State: Exp $');

in the javascript below?

Should I be converting html files to binary?

I have tried the following steps to investigate this problem. I copied the html file (in which the javascript function resides) to a safe place; deleted the file; entered the CVS delete command to remove the CVS element; and then recreated the CVS element from the saved copy, using add and commit.

Despite this, SetDropdownList was still expanded as shown above.

function EnterPage()
{
var ElemID;

// Set the payment type and credit card radio buttons to their correct initial
// state (ACH payment, credit card choice 0).
SetRadioButton('BillPay', 'PaymentTypeID', 1);
SetRadioButton('BillPay', 'CCTypeID', 0);

// Make the credit card fields invisible.  ACH is the default.
if (document.all && !document.getElementById) ElemID = document.all['CCTable'];
else ElemID = document.getElementById('CCTable');

ElemID.style.display = 'none';

// Fill in the various fields of the form that we know about.  Note that we use
// double quotes, in case there are any apostrophes in the names.
document.forms['BillPay'].elements['ACHNameOnAccount'].value = "$FullName$";
document.forms['BillPay'].elements['CCNameOnCard'].value = "$FullName$";
document.forms['BillPay'].elements['BillingAddress1'].value = "$Address1$";
document.forms['BillPay'].elements['BillingAddress2'].value = "$Address2$";
document.forms['BillPay'].elements['BillingCity'].value = "$City$";
SetDropdownList('BillPay', 'BillingState', '$State$');
document.forms['BillPay'].elements['BillingZipcode'].value = "$Zipcode$";
document.forms['BillPay'].elements['Location'].value = "$Location$";
document.forms['BillPay'].elements['AcctType'].value = "$AcctType$";
document.forms['BillPay'].elements['BillYear'].value = "$BillYear$";
document.forms['BillPay'].elements['AcctNum'].value = "$AcctNum$";
document.forms['BillPay'].elements['BillAmount'].value = "$AmountPaid$";
document.forms['BillPay'].elements['ScholarAmount'].value = "$ScholarAmt$";
document.forms['BillPay'].elements['AmountPaid'].value = "$TotalAmt$";

// Make the scholarship donation visible, if there is one.
if (document.all && !document.getElementById)
  ElemID = document.all['ScholarDonat'];
else ElemID = document.getElementById('ScholarDonat');

if ('$ScholarAmt$' != '0.00') ElemID.style.visibility = 'visible';

// The page is set up.
return;
}

Solution

  • $State is a CVS keyword, see http://csg.sph.umich.edu/docs/unix/cvs/cvsref-card.html and https://www.cs.utah.edu/dept/old/texinfo/cvs/cvs_16.html

    "By default, CVS performs keyword expansion unless you tell it to stop. You can permanently suppress keyword expansion for a file with the -k option when you add the file to the project", see http://durak.org/sean/pubs/software/cvsbook/Controlling-Keyword-Expansion.html

    The command line example it gives for suppressing keyword expansion is:

    $ cvs add -ko chapter-9.sgml
    

    I don't know what to suggest if you are using TortoiseCVS, presumably they have a comparable option to control keyword expansion