void nsCSSValueListRect::List(FILE* out, PRInt32 aIndent, const nsCSSProperty aTRBL[]) const { #if 0 for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; if (eCSSUnit_Null != mTop.GetUnit()) { buffer.AppendWithConversion(nsCSSProps::GetStringValue(aTRBL[0]).get()); buffer.AppendLiteral(": "); mTop.AppendToString(buffer); } if (eCSSUnit_Null != mRight.GetUnit()) { buffer.AppendWithConversion(nsCSSProps::GetStringValue(aTRBL[1]).get()); buffer.AppendLiteral(": "); mRight.AppendToString(buffer); } if (eCSSUnit_Null != mBottom.GetUnit()) { buffer.AppendWithConversion(nsCSSProps::GetStringValue(aTRBL[2]).get()); buffer.AppendLiteral(": "); mBottom.AppendToString(buffer); } if (eCSSUnit_Null != mLeft.GetUnit()) { buffer.AppendWithConversion(nsCSSProps::GetStringValue(aTRBL[3]).get()); buffer.AppendLiteral(": "); mLeft.AppendToString(buffer); } fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); #endif }
void nsCSSMargin::List(FILE* out, PRInt32 aIndent) const { { static const nsCSSProperty trbl[] = { eCSSProperty_margin_top, eCSSProperty_margin_right, eCSSProperty_margin_bottom, eCSSProperty_margin_left }; mMargin.List(out, aIndent, trbl); } { static const nsCSSProperty trbl[] = { eCSSProperty_padding_top, eCSSProperty_padding_right, eCSSProperty_padding_bottom, eCSSProperty_padding_left }; mPadding.List(out, aIndent, trbl); } { static const nsCSSProperty trbl[] = { eCSSProperty_border_top_width, eCSSProperty_border_right_width, eCSSProperty_border_bottom_width, eCSSProperty_border_left_width }; mBorderWidth.List(out, aIndent, trbl); } mBorderColor.List(out, eCSSProperty_border_color, aIndent); mBorderStyle.List(out, eCSSProperty_border_style, aIndent); { static const nsCSSProperty trbl[] = { eCSSProperty__moz_border_radius_topLeft, eCSSProperty__moz_border_radius_topRight, eCSSProperty__moz_border_radius_bottomRight, eCSSProperty__moz_border_radius_bottomLeft }; mBorderRadius.List(out, aIndent, trbl); } for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mOutlineWidth.AppendToString(buffer, eCSSProperty_outline_width); mOutlineColor.AppendToString(buffer, eCSSProperty_outline_color); mOutlineOffset.AppendToString(buffer, eCSSProperty_outline_offset); mOutlineStyle.AppendToString(buffer, eCSSProperty_outline_style); { static const nsCSSProperty trbl[] = { eCSSProperty__moz_outline_radius_topLeft, eCSSProperty__moz_outline_radius_topRight, eCSSProperty__moz_outline_radius_bottomRight, eCSSProperty__moz_outline_radius_bottomLeft }; mOutlineRadius.List(out, aIndent, trbl); } mFloatEdge.AppendToString(buffer, eCSSProperty_float_edge); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSAural::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mAzimuth.AppendToString(buffer, eCSSProperty_azimuth); mElevation.AppendToString(buffer, eCSSProperty_elevation); mCueAfter.AppendToString(buffer, eCSSProperty_cue_after); mCueBefore.AppendToString(buffer, eCSSProperty_cue_before); mPauseAfter.AppendToString(buffer, eCSSProperty_pause_after); mPauseBefore.AppendToString(buffer, eCSSProperty_pause_before); mPitch.AppendToString(buffer, eCSSProperty_pitch); mPitchRange.AppendToString(buffer, eCSSProperty_pitch_range); mRichness.AppendToString(buffer, eCSSProperty_richness); mSpeak.AppendToString(buffer, eCSSProperty_speak); mSpeakHeader.AppendToString(buffer, eCSSProperty_speak_header); mSpeakNumeral.AppendToString(buffer, eCSSProperty_speak_numeral); mSpeakPunctuation.AppendToString(buffer, eCSSProperty_speak_punctuation); mSpeechRate.AppendToString(buffer, eCSSProperty_speech_rate); mStress.AppendToString(buffer, eCSSProperty_stress); mVoiceFamily.AppendToString(buffer, eCSSProperty_voice_family); mVolume.AppendToString(buffer, eCSSProperty_volume); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSContent::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; nsCSSValueList* content = mContent; while (nsnull != content) { content->mValue.AppendToString(buffer, eCSSProperty_content); content = content->mNext; } nsCSSCounterData* counter = mCounterIncrement; while (nsnull != counter) { counter->mCounter.AppendToString(buffer, eCSSProperty_counter_increment); counter->mValue.AppendToString(buffer, eCSSProperty_UNKNOWN); counter = counter->mNext; } counter = mCounterReset; while (nsnull != counter) { counter->mCounter.AppendToString(buffer, eCSSProperty_counter_reset); counter->mValue.AppendToString(buffer, eCSSProperty_UNKNOWN); counter = counter->mNext; } mMarkerOffset.AppendToString(buffer, eCSSProperty_marker_offset); // XXX This prints the property name many times, but nobody cares. nsCSSQuotes* quotes = mQuotes; while (nsnull != quotes) { quotes->mOpen.AppendToString(buffer, eCSSProperty_quotes); quotes->mClose.AppendToString(buffer, eCSSProperty_quotes); quotes = quotes->mNext; } fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSText::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mWordSpacing.AppendToString(buffer, eCSSProperty_word_spacing); mLetterSpacing.AppendToString(buffer, eCSSProperty_letter_spacing); mDecoration.AppendToString(buffer, eCSSProperty_text_decoration); mVerticalAlign.AppendToString(buffer, eCSSProperty_vertical_align); mTextTransform.AppendToString(buffer, eCSSProperty_text_transform); mTextAlign.AppendToString(buffer, eCSSProperty_text_align); mTextIndent.AppendToString(buffer, eCSSProperty_text_indent); if (nsnull != mTextShadow) { if (mTextShadow->mXOffset.IsLengthUnit()) { nsCSSShadow* shadow = mTextShadow; // XXX This prints the property name many times, but nobody cares. while (nsnull != shadow) { shadow->mColor.AppendToString(buffer, eCSSProperty_text_shadow); shadow->mXOffset.AppendToString(buffer, eCSSProperty_text_shadow); shadow->mYOffset.AppendToString(buffer, eCSSProperty_text_shadow); shadow->mRadius.AppendToString(buffer, eCSSProperty_text_shadow); shadow = shadow->mNext; } } else { mTextShadow->mXOffset.AppendToString(buffer, eCSSProperty_text_shadow); } } mUnicodeBidi.AppendToString(buffer, eCSSProperty_unicode_bidi); mLineHeight.AppendToString(buffer, eCSSProperty_line_height); mWhiteSpace.AppendToString(buffer, eCSSProperty_white_space); mWordWrap.AppendToString(buffer, eCSSProperty_word_wrap); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
static void DumpAWebShell(nsIDocShellTreeItem* aShellItem, FILE* out, PRInt32 aIndent) { nsXPIDLString name; nsCOMPtr<nsIDocShellTreeItem> parent; PRInt32 i, n; for (i = aIndent; --i >= 0; ) fprintf(out, " "); fprintf(out, "%p '", NS_STATIC_CAST(void*, aShellItem)); aShellItem->GetName(getter_Copies(name)); aShellItem->GetSameTypeParent(getter_AddRefs(parent)); fputs(NS_LossyConvertUCS2toASCII(name).get(), out); fprintf(out, "' parent=%p <\n", NS_STATIC_CAST(void*, parent)); ++aIndent; nsCOMPtr<nsIDocShellTreeNode> shellAsNode(do_QueryInterface(aShellItem)); shellAsNode->GetChildCount(&n); for (i = 0; i < n; ++i) { nsCOMPtr<nsIDocShellTreeItem> child; shellAsNode->GetChildAt(i, getter_AddRefs(child)); if (child) { DumpAWebShell(child, out, aIndent); } } --aIndent; for (i = aIndent; --i >= 0; ) fprintf(out, " "); fputs(">\n", out); }
void SamplePrintWordWithBreak() { PRUint32 numOfFragment = sizeof(wb) / sizeof(char*); nsIWordBreakerFactory *t = NULL; nsresult res = CallGetService(kLWBrkCID, &t); nsIWordBreaker *wbk; nsAutoString wb_arg; res = t->GetBreaker(wb_arg, &wbk); nsAutoString result; nsAutoString tmp; for(PRUint32 i = 0; i < numOfFragment; i++) { nsAutoString fragText; fragText.AssignWithConversion(wb[i]); // nsBreakState bk(fragText.get(), fragText.Length()); PRUint32 cur = 0; PRBool done; res = wbk->NextWord(fragText.get(), fragText.Length(), cur, &cur, &done); PRUint32 start = 0; for(PRUint32 j = 0; ! done ; j++) { tmp.Truncate(); fragText.Mid(tmp, start, cur - start); result.Append(tmp); result.AppendLiteral("^"); start = cur; wbk->NextWord(fragText.get(), fragText.Length(), cur, &cur, &done); } tmp.Truncate(); fragText.Mid(tmp, start, fragText.Length() - start); result.Append(tmp); if( i != (numOfFragment -1 )) { nsAutoString nextFragText; nextFragText.AssignWithConversion(wb[i+1]); PRBool canBreak = PR_TRUE; res = wbk->BreakInBetween( fragText.get(), fragText.Length(), nextFragText.get(), nextFragText.Length(), &canBreak ); if(canBreak) result.AppendLiteral("^"); fragText = nextFragText; } } printf("Output From SamplePrintWordWithBreak() \n\n"); printf("[%s]\n", NS_LossyConvertUCS2toASCII(result).get()); }
void nsCSSFilter::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mValue.AppendToString(buffer, eCSSProperty_filter); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSColumn::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mColumnWidth.AppendToString(buffer, eCSSProperty__moz_column_width); mColumnGap.AppendToString(buffer, eCSSProperty__moz_column_gap); mColumnCount.AppendToString(buffer, eCSSProperty__moz_column_count); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSPage::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mMarks.AppendToString(buffer, eCSSProperty_marks); mSize.AppendToString(buffer, eCSSProperty_size); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSXUL::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mBoxAlign.AppendToString(buffer, eCSSProperty_box_align); mBoxDirection.AppendToString(buffer, eCSSProperty_box_direction); mBoxFlex.AppendToString(buffer, eCSSProperty_box_flex); mBoxOrient.AppendToString(buffer, eCSSProperty_box_orient); mBoxPack.AppendToString(buffer, eCSSProperty_box_pack); mBoxOrdinal.AppendToString(buffer, eCSSProperty_box_ordinal_group); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSDisplay::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mAppearance.AppendToString(buffer, eCSSProperty_appearance); mDirection.AppendToString(buffer, eCSSProperty_direction); mDisplay.AppendToString(buffer, eCSSProperty_display); mBinding.AppendToString(buffer, eCSSProperty_binding); mPosition.AppendToString(buffer, eCSSProperty_position); mFloat.AppendToString(buffer, eCSSProperty_float); mClear.AppendToString(buffer, eCSSProperty_clear); mVisibility.AppendToString(buffer, eCSSProperty_visibility); mOpacity.AppendToString(buffer, eCSSProperty_opacity); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); mClip.List(out, eCSSProperty_clip); buffer.SetLength(0); mOverflowX.AppendToString(buffer, eCSSProperty_overflow_x); mOverflowY.AppendToString(buffer, eCSSProperty_overflow_y); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSTable::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mBorderCollapse.AppendToString(buffer, eCSSProperty_border_collapse); mBorderSpacing.AppendToString(buffer, eCSSProperty_border_spacing); mCaptionSide.AppendToString(buffer, eCSSProperty_caption_side); mEmptyCells.AppendToString(buffer, eCSSProperty_empty_cells); mLayout.AppendToString(buffer, eCSSProperty_table_layout); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSFont::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mFamily.AppendToString(buffer, eCSSProperty_font_family); mStyle.AppendToString(buffer, eCSSProperty_font_style); mVariant.AppendToString(buffer, eCSSProperty_font_variant); mWeight.AppendToString(buffer, eCSSProperty_font_weight); mSize.AppendToString(buffer, eCSSProperty_font_size); mSizeAdjust.AppendToString(buffer, eCSSProperty_font_size_adjust); mStretch.AppendToString(buffer, eCSSProperty_font_stretch); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSBreaks::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mOrphans.AppendToString(buffer, eCSSProperty_orphans); mWidows.AppendToString(buffer, eCSSProperty_widows); mPage.AppendToString(buffer, eCSSProperty_page); // temp fix for bug 24000 //mPageBreakAfter.AppendToString(buffer, eCSSProperty_page_break_after); //mPageBreakBefore.AppendToString(buffer, eCSSProperty_page_break_before); mPageBreakInside.AppendToString(buffer, eCSSProperty_page_break_inside); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCommentNode::List(FILE* out, PRInt32 aIndent) const { NS_PRECONDITION(IsInDoc(), "bad content"); PRInt32 indx; for (indx = aIndent; --indx >= 0; ) fputs(" ", out); fprintf(out, "Comment@%p refcount=%d<!--", this, mRefCnt.get()); nsAutoString tmp; ToCString(tmp, 0, mText.GetLength()); fputs(NS_LossyConvertUCS2toASCII(tmp).get(), out); fputs("-->\n", out); }
void nsXMLCDATASection::List(FILE* out, PRInt32 aIndent) const { NS_PRECONDITION(IsInDoc(), "bad content"); PRInt32 index; for (index = aIndent; --index >= 0; ) fputs(" ", out); fprintf(out, "CDATASection refcount=%d<", mRefCnt.get()); nsAutoString tmp; ToCString(tmp, 0, mText.GetLength()); fputs(NS_LossyConvertUCS2toASCII(tmp).get(), out); fputs(">\n", out); }
void nsCSSRect::List(FILE* out, nsCSSProperty aPropID, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; if (eCSSProperty_UNKNOWN < aPropID) { buffer.AppendWithConversion(nsCSSProps::GetStringValue(aPropID).get()); buffer.AppendLiteral(": "); } mTop.AppendToString(buffer); mRight.AppendToString(buffer); mBottom.AppendToString(buffer); mLeft.AppendToString(buffer); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
nsresult nsTestUConv::DisplayDetectors() { char * trace = "DisplayDetectors"; mLog.AddTrace(trace); nsresult res = NS_OK; nsCOMPtr<nsICharsetConverterManager> ccMan = do_GetService(kCharsetConverterManagerCID, &res); if (NS_FAILED(res)) { mLog.PrintError("NS_WITH_SERVICE", res); return res; } // charset detectors nsCOMPtr<nsIUTF8StringEnumerator> detectors; res = ccMan->GetCharsetDetectorList(getter_AddRefs(detectors)); if (NS_FAILED(res)) { mLog.PrintError("GetCharsetDetectorList()", res); return res; } printf("***** Character Set Detectors *****\n"); PRBool hasMore; detectors->HasMore(&hasMore); while (hasMore) { nsCAutoString detectorName; res = detectors->GetNext(detectorName); if (NS_FAILED(res)) { mLog.PrintError("GetNext()", res); return res; } printf("%s", detectorName.get()); PrintSpaces(36 - detectorName.Length()); // align to hard coded column number nsAutoString title; res = ccMan->GetCharsetTitle(detectorName.get(), title); if (NS_FAILED(res)) title.SetLength(0); printf("\"%s\"\n", NS_LossyConvertUCS2toASCII(title).get()); } mLog.DelTrace(trace); return NS_OK; }
void nsCSSColor::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mColor.AppendToString(buffer, eCSSProperty_color); mBackColor.AppendToString(buffer, eCSSProperty_background_color); mBackImage.AppendToString(buffer, eCSSProperty_background_image); mBackRepeat.AppendToString(buffer, eCSSProperty_background_repeat); mBackAttachment.AppendToString(buffer, eCSSProperty_background_attachment); mBackPositionX.AppendToString(buffer, eCSSProperty_background_x_position); mBackPositionY.AppendToString(buffer, eCSSProperty_background_y_position); mBackClip.AppendToString(buffer, eCSSProperty__moz_background_clip); mBackOrigin.AppendToString(buffer, eCSSProperty__moz_background_origin); mBackInlinePolicy.AppendToString(buffer, eCSSProperty__moz_background_inline_policy); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSList::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mType.AppendToString(buffer, eCSSProperty_list_style_type); mImage.AppendToString(buffer, eCSSProperty_list_style_image); mPosition.AppendToString(buffer, eCSSProperty_list_style_position); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); static const nsCSSProperty trbl[] = { eCSSProperty_top, eCSSProperty_right, eCSSProperty_bottom, eCSSProperty_left }; mImageRegion.List(out, aIndent, trbl); }
void nsCSSUserInterface::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mUserInput.AppendToString(buffer, eCSSProperty_user_input); mUserModify.AppendToString(buffer, eCSSProperty_user_modify); mUserSelect.AppendToString(buffer, eCSSProperty_user_select); mUserFocus.AppendToString(buffer, eCSSProperty_user_focus); nsCSSValueList* cursor = mCursor; while (nsnull != cursor) { cursor->mValue.AppendToString(buffer, eCSSProperty_cursor); cursor = cursor->mNext; } mForceBrokenImageIcon.AppendToString(buffer,eCSSProperty_force_broken_image_icon); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
void nsCSSSVG::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mClipPath.AppendToString(buffer, eCSSProperty_clip_path); mClipRule.AppendToString(buffer, eCSSProperty_clip_rule); mDominantBaseline.AppendToString(buffer, eCSSProperty_dominant_baseline); mFill.AppendToString(buffer, eCSSProperty_fill); mFillOpacity.AppendToString(buffer, eCSSProperty_fill_opacity); mFillRule.AppendToString(buffer, eCSSProperty_fill_rule); mMarkerEnd.AppendToString(buffer, eCSSProperty_marker_end); mMarkerMid.AppendToString(buffer, eCSSProperty_marker_mid); mMarkerStart.AppendToString(buffer, eCSSProperty_marker_start); mPointerEvents.AppendToString(buffer, eCSSProperty_pointer_events); mShapeRendering.AppendToString(buffer, eCSSProperty_shape_rendering); mStopColor.AppendToString(buffer, eCSSProperty_stop_color); mStopOpacity.AppendToString(buffer, eCSSProperty_stop_opacity); mStroke.AppendToString(buffer, eCSSProperty_stroke); // XXX This prints the property name many times, but nobody cares. nsCSSValueList *value = mStrokeDasharray; while (value) { value->mValue.AppendToString(buffer, eCSSProperty_stroke_dasharray); value = value->mNext; if (value) buffer.AppendLiteral(","); } mStrokeDashoffset.AppendToString(buffer, eCSSProperty_stroke_dashoffset); mStrokeLinecap.AppendToString(buffer, eCSSProperty_stroke_linecap); mStrokeLinejoin.AppendToString(buffer, eCSSProperty_stroke_linejoin); mStrokeMiterlimit.AppendToString(buffer, eCSSProperty_stroke_miterlimit); mStrokeOpacity.AppendToString(buffer, eCSSProperty_stroke_opacity); mStrokeWidth.AppendToString(buffer, eCSSProperty_stroke_width); mTextAnchor.AppendToString(buffer, eCSSProperty_text_anchor); mTextRendering.AppendToString(buffer, eCSSProperty_text_rendering); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); }
NS_IMETHODIMP nsAbIPCCard::Copy(nsIAbCard *srcCard) { NS_ENSURE_ARG_POINTER(srcCard); nsresult rv; nsCOMPtr<nsIAbMDBCard> dbCard; dbCard = do_QueryInterface(srcCard, &rv); if(NS_SUCCEEDED(rv) && dbCard) { nsXPIDLString palmIDStr; nsresult rv = dbCard->GetStringAttribute(CARD_ATTRIB_PALMID, getter_Copies(palmIDStr)); if(NS_SUCCEEDED(rv) && palmIDStr.get()) { PRFloat64 f = PR_strtod(NS_LossyConvertUCS2toASCII(palmIDStr).get(), nsnull); PRInt64 l; LL_D2L(l, f); LL_L2UI(mRecordId, l); } else mRecordId = 0; // set tableID, RowID and Key for the card PRUint32 tableID=0; dbCard->GetDbTableID(&tableID); SetDbTableID(tableID); PRUint32 rowID=0; dbCard->GetDbRowID(&rowID); SetDbRowID(rowID); PRUint32 key; dbCard->GetKey(&key); SetKey(key); } PRUint32 lastModifiedDate = 0; srcCard->GetLastModifiedDate(&lastModifiedDate); mStatus = (lastModifiedDate) ? ATTR_MODIFIED : ATTR_NEW; rv = nsAbCardProperty::Copy(srcCard); // do we need to join the work and home addresses? // or split them? return rv; }
PRBool nsAbIPCCard::Same(nsIAbCard *card) { if(!card) return PR_FALSE; nsresult rv; nsCOMPtr<nsIAbMDBCard> dbCard; dbCard = do_QueryInterface(card, &rv); if(NS_SUCCEEDED(rv)) { // first check the palmID for the cards if they exist nsXPIDLString palmIDStr; rv = dbCard->GetStringAttribute(CARD_ATTRIB_PALMID, getter_Copies(palmIDStr)); if(NS_SUCCEEDED(rv) && palmIDStr.get()) { PRInt32 palmID=0; PRFloat64 f = PR_strtod(NS_LossyConvertUCS2toASCII(palmIDStr).get(), nsnull); PRInt64 l; LL_D2L(l, f); LL_L2UI(palmID, l); if(palmID && mRecordId) return mRecordId == palmID; } } nsXPIDLString str; card->GetFirstName(getter_Copies(str)); if (Compare(str, m_FirstName, nsCaseInsensitiveStringComparator())) return PR_FALSE; card->GetLastName(getter_Copies(str)); if (Compare(str, m_LastName, nsCaseInsensitiveStringComparator())) return PR_FALSE; card->GetDisplayName(getter_Copies(str)); if (Compare(str, m_DisplayName, nsCaseInsensitiveStringComparator())) return PR_FALSE; card->GetNickName(getter_Copies(str)); if (Compare(str, m_NickName, nsCaseInsensitiveStringComparator())) return PR_FALSE; return PR_TRUE; }
void nsCSSPosition::List(FILE* out, PRInt32 aIndent) const { for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out); nsAutoString buffer; mWidth.AppendToString(buffer, eCSSProperty_width); mMinWidth.AppendToString(buffer, eCSSProperty_min_width); mMaxWidth.AppendToString(buffer, eCSSProperty_max_width); mHeight.AppendToString(buffer, eCSSProperty_height); mMinHeight.AppendToString(buffer, eCSSProperty_min_height); mMaxHeight.AppendToString(buffer, eCSSProperty_max_height); mBoxSizing.AppendToString(buffer, eCSSProperty_box_sizing); mZIndex.AppendToString(buffer, eCSSProperty_z_index); fputs(NS_LossyConvertUCS2toASCII(buffer).get(), out); static const nsCSSProperty trbl[] = { eCSSProperty_top, eCSSProperty_right, eCSSProperty_bottom, eCSSProperty_left }; mOffset.List(out, aIndent, trbl); }
void SampleFindWordBreakFromPosition(PRUint32 fragN, PRUint32 offset) { PRUint32 numOfFragment = sizeof(wb) / sizeof(char*); nsIWordBreakerFactory *t = NULL; nsresult res = CallGetService(kLWBrkCID, &t); nsIWordBreaker *wbk; nsAutoString wb_arg; res = t->GetBreaker(wb_arg, &wbk); nsAutoString fragText; fragText.AssignWithConversion(wb[fragN]); PRUint32 begin, end; nsAutoString result; res = wbk->FindWord(fragText.get(), fragText.Length(), offset, &begin, &end); PRBool canbreak; fragText.Mid(result, begin, end-begin); if((PRUint32)fragText.Length() == end) // if we hit the end of the fragment { nsAutoString curFragText = fragText; for(PRUint32 p = fragN +1; p < numOfFragment ;p++) { nsAutoString nextFragText; nextFragText.AssignWithConversion(wb[p]); res = wbk->BreakInBetween(curFragText.get(), curFragText.Length(), nextFragText.get(), nextFragText.Length(), &canbreak); if(canbreak) break; PRUint32 b, e; res = wbk->FindWord(nextFragText.get(), nextFragText.Length(), 0, &b, &e); nsAutoString tmp; nextFragText.Mid(tmp,b,e-b); result.Append(tmp); if((PRUint32)nextFragText.Length() != e) break; nextFragText = curFragText; } } if(0 == begin) // if we hit the beginning of the fragment { nsAutoString curFragText = fragText; for(PRUint32 p = fragN ; p > 0 ;p--) { nsAutoString prevFragText; prevFragText.AssignWithConversion(wb[p-1]); res = wbk->BreakInBetween(prevFragText.get(), prevFragText.Length(), curFragText.get(), curFragText.Length(), &canbreak); if(canbreak) break; PRUint32 b, e; res = wbk->FindWord(prevFragText.get(), prevFragText.Length(), prevFragText.Length(), &b, &e); nsAutoString tmp; prevFragText.Mid(tmp,b,e-b); result.Insert(tmp,0); if(0 != b) break; prevFragText = curFragText; } } printf("Output From SamplePrintWordWithBreak() \n\n"); printf("[%s]\n", NS_LossyConvertUCS2toASCII(result).get()); }
NS_IMETHODIMP nsHTMLURIRefObject::GetNextURI(nsAString & aURI) { if (!mNode) return NS_ERROR_NOT_INITIALIZED; nsAutoString tagName; nsresult rv = mNode->GetNodeName(tagName); if (NS_FAILED(rv)) return rv; // Loop over attribute list: if (!mAttributes) { nsCOMPtr<nsIDOMElement> element (do_QueryInterface(mNode)); if (!element) return NS_ERROR_INVALID_ARG; mCurAttrIndex = 0; mNode->GetAttributes(getter_AddRefs(mAttributes)); if (!mAttributes) return NS_ERROR_NOT_INITIALIZED; rv = mAttributes->GetLength(&mAttributeCnt); NS_ENSURE_SUCCESS(rv, rv); if (!mAttributeCnt) return NS_ERROR_FAILURE; mCurAttrIndex = 0; } #ifdef DEBUG_akkana printf("Looking at tag '%s'\n", NS_LossyConvertUCS2toASCII(tagName).get()); #endif while (mCurAttrIndex < mAttributeCnt) { nsCOMPtr<nsIDOMNode> attrNode; rv = mAttributes->Item(mCurAttrIndex++, getter_AddRefs(attrNode)); // XXX Does Item() addref, or not? // The comparable code in nsEditor assumes it doesn't. NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_ARG_POINTER(attrNode); nsCOMPtr<nsIDOMAttr> curAttrNode (do_QueryInterface(attrNode)); NS_ENSURE_ARG_POINTER(curAttrNode); nsString curAttr; rv = curAttrNode->GetName(curAttr); NS_ENSURE_SUCCESS(rv, rv); // href >> A, AREA, BASE, LINK #ifdef DEBUG_akkana printf("Trying to match attribute '%s'\n", NS_LossyConvertUCS2toASCII(curAttr).get()); #endif if (MATCHES(curAttr, "href")) { if (!MATCHES(tagName, "a") && !MATCHES(tagName, "area") && !MATCHES(tagName, "base") && !MATCHES(tagName, "link")) continue; rv = curAttrNode->GetValue(aURI); NS_ENSURE_SUCCESS(rv, rv); nsString uri (aURI); // href pointing to a named anchor doesn't count if (aURI.First() != PRUnichar('#')) return NS_OK; aURI.Truncate(); return NS_ERROR_INVALID_ARG; } // src >> FRAME, IFRAME, IMG, INPUT, SCRIPT else if (MATCHES(curAttr, "src")) { if (!MATCHES(tagName, "img") && !MATCHES(tagName, "frame") && !MATCHES(tagName, "iframe") && !MATCHES(tagName, "input") && !MATCHES(tagName, "script")) continue; return curAttrNode->GetValue(aURI); } //<META http-equiv="refresh" content="3,http://www.acme.com/intro.html"> else if (MATCHES(curAttr, "content")) { if (!MATCHES(tagName, "meta")) continue; } // longdesc >> FRAME, IFRAME, IMG else if (MATCHES(curAttr, "longdesc")) { if (!MATCHES(tagName, "img") && !MATCHES(tagName, "frame") && !MATCHES(tagName, "iframe")) continue; } // usemap >> IMG, INPUT, OBJECT else if (MATCHES(curAttr, "usemap")) { if (!MATCHES(tagName, "img") && !MATCHES(tagName, "input") && !MATCHES(tagName, "object")) continue; } // action >> FORM else if (MATCHES(curAttr, "action")) { if (!MATCHES(tagName, "form")) continue; } // background >> BODY else if (MATCHES(curAttr, "background")) { if (!MATCHES(tagName, "body")) continue; } // codebase >> OBJECT, APPLET else if (MATCHES(curAttr, "codebase")) { if (!MATCHES(tagName, "meta")) continue; } // classid >> OBJECT else if (MATCHES(curAttr, "classid")) { if (!MATCHES(tagName, "object")) continue; } // data >> OBJECT else if (MATCHES(curAttr, "data")) { if (!MATCHES(tagName, "object")) continue; } // cite >> BLOCKQUOTE, DEL, INS, Q else if (MATCHES(curAttr, "cite")) { if (!MATCHES(tagName, "blockquote") && !MATCHES(tagName, "q") && !MATCHES(tagName, "del") && !MATCHES(tagName, "ins")) continue; } // profile >> HEAD else if (MATCHES(curAttr, "profile")) { if (!MATCHES(tagName, "head")) continue; } // archive attribute on APPLET; warning, it contains a list of URIs. else if (MATCHES(curAttr, "archive")) { if (!MATCHES(tagName, "applet")) continue; } } // Return a code to indicate that there are no more, // to distinguish that case from real errors. return NS_ERROR_NOT_AVAILABLE; }
/** * Returns an InputStream for the file represented by the href * argument * @param href the href of the file to get the input stream for. * @return an InputStream to the desired resource * @exception java.io.FileNotFoundException when the file could not be * found **/ istream* URIUtils::getInputStream(const nsAString& href, nsAString& errMsg) { return new ifstream(NS_LossyConvertUCS2toASCII(href).get(), ios::in); } //-- getInputStream
NS_IMETHODIMP nsInternetCiter::Rewrap(const nsAString& aInString, PRUint32 aWrapCol, PRUint32 aFirstLineOffset, PRBool aRespectNewlines, nsAString& aOutString) { // There shouldn't be returns in this string, only dom newlines. // Check to make sure: #ifdef DEBUG PRInt32 cr = aInString.FindChar(PRUnichar('\r')); NS_ASSERTION((cr < 0), "Rewrap: CR in string gotten from DOM!\n"); #endif /* DEBUG */ aOutString.Truncate(); nsCOMPtr<nsILineBreaker> lineBreaker; nsILineBreakerFactory *lf; nsresult rv; rv = CallGetService(NS_LWBRK_CONTRACTID, &lf); if (NS_SUCCEEDED(rv)) { nsAutoString lbarg; lf->GetBreaker(lbarg, getter_AddRefs(lineBreaker)); NS_RELEASE(lf); } // Loop over lines in the input string, rewrapping each one. PRUint32 length; PRUint32 posInString = 0; PRUint32 outStringCol = 0; PRUint32 citeLevel = 0; const nsPromiseFlatString &tString = PromiseFlatString(aInString); length = tString.Length(); #ifdef DEBUG_wrapping int loopcount = 0; #endif while (posInString < length) { #ifdef DEBUG_wrapping printf("Outer loop: '%s'\n", NS_LossyConvertUCS2toASCII(Substring(tString, posInString, length-posInString)).get()); printf("out string is now: '%s'\n", NS_LossyConvertUCS2toASCII(aOutString).get()); #endif // Get the new cite level here since we're at the beginning of a line PRUint32 newCiteLevel = 0; while (posInString < length && tString[posInString] == gt) { ++newCiteLevel; ++posInString; while (posInString < length && tString[posInString] == space) ++posInString; } if (posInString >= length) break; // Special case: if this is a blank line, maintain a blank line // (retain the original paragraph breaks) if (tString[posInString] == nl && !aOutString.IsEmpty()) { if (aOutString.Last() != nl) aOutString.Append(nl); AddCite(aOutString, newCiteLevel); aOutString.Append(nl); ++posInString; outStringCol = 0; continue; } // If the cite level has changed, then start a new line with the // new cite level (but if we're at the beginning of the string, // don't bother). if (newCiteLevel != citeLevel && posInString > newCiteLevel+1 && outStringCol != 0) { BreakLine(aOutString, outStringCol, 0); } citeLevel = newCiteLevel; // Prepend the quote level to the out string if appropriate if (outStringCol == 0) { AddCite(aOutString, citeLevel); outStringCol = citeLevel + (citeLevel ? 1 : 0); } // If it's not a cite, and we're not at the beginning of a line in // the output string, add a space to separate new text from the // previous text. else if (outStringCol > citeLevel) { aOutString.Append(space); ++outStringCol; } // find the next newline -- don't want to go farther than that PRInt32 nextNewline = tString.FindChar(nl, posInString); if (nextNewline < 0) nextNewline = length; // For now, don't wrap unquoted lines at all. // This is because the plaintext edit window has already wrapped them // by the time we get them for rewrap, yet when we call the line // breaker, it will refuse to break backwards, and we'll end up // with a line that's too long and gets displayed as a lone word // on a line by itself. Need special logic to detect this case // and break it ourselves without resorting to the line breaker. if (citeLevel == 0) { aOutString.Append(Substring(tString, posInString, nextNewline-posInString)); outStringCol += nextNewline - posInString; if (nextNewline != (PRInt32)length) { aOutString.Append(nl); outStringCol = 0; } posInString = nextNewline+1; continue; } // Otherwise we have to use the line breaker and loop // over this line of the input string to get all of it: while ((PRInt32)posInString < nextNewline) { #ifdef DEBUG_wrapping if (++loopcount > 1000) NS_ASSERTION(PR_FALSE, "possible infinite loop in nsInternetCiter\n"); printf("Inner loop: '%s'\n", NS_LossyConvertUCS2toASCII(Substring(tString, posInString, nextNewline-posInString)).get()); #endif // Skip over initial spaces: while ((PRInt32)posInString < nextNewline && nsCRT::IsAsciiSpace(tString[posInString])) ++posInString; // If this is a short line, just append it and continue: if (outStringCol + nextNewline - posInString <= aWrapCol-citeLevel-1) { // If this short line is the final one in the in string, // then we need to include the final newline, if any: if (nextNewline+1 == (PRInt32)length && tString[nextNewline-1] == nl) ++nextNewline; // Trim trailing spaces: PRInt32 lastRealChar = nextNewline; while ((PRUint32)lastRealChar > posInString && nsCRT::IsAsciiSpace(tString[lastRealChar-1])) --lastRealChar; aOutString += Substring(tString, posInString, lastRealChar - posInString); outStringCol += lastRealChar - posInString; posInString = nextNewline + 1; continue; } PRInt32 eol = posInString + aWrapCol - citeLevel - outStringCol; // eol is the prospective end of line. // We'll first look backwards from there for a place to break. // If it's already less than our current position, // then our line is already too long, so break now. if (eol <= (PRInt32)posInString) { BreakLine(aOutString, outStringCol, citeLevel); continue; // continue inner loop, with outStringCol now at bol } PRUint32 breakPt; rv = NS_ERROR_BASE; if (lineBreaker) { PRBool needMore; rv = lineBreaker->Prev(tString.get() + posInString, length - posInString, eol + 1 - posInString, &breakPt, &needMore); if (NS_FAILED(rv) || needMore) { // if we couldn't find a breakpoint looking backwards, // and we're not starting a new line, then end this line // and loop around again: if (outStringCol > citeLevel + 1) { BreakLine(aOutString, outStringCol, citeLevel); continue; // continue inner loop, with outStringCol now at bol } // Else try looking forwards: rv = lineBreaker->Next(tString.get() + posInString, length - posInString, eol - posInString, &breakPt, &needMore); if (needMore) rv = NS_ERROR_BASE; } } // If rv is okay, then breakPt is the place to break. // If we get out here and rv is set, something went wrong with line // breaker. Just break the line, hard. if (NS_FAILED(rv)) { #ifdef DEBUG_akkana printf("nsInternetCiter: LineBreaker not working -- breaking hard\n"); #endif breakPt = eol; } // Special case: maybe we should have wrapped last time. // If the first breakpoint here makes the current line too long, // then if we already have text on the current line, // break and loop around again. // If we're at the beginning of the current line, though, // don't force a break since the long word might be a url // and breaking it would make it unclickable on the other end. const int SLOP = 6; if (outStringCol + breakPt > aWrapCol + SLOP && outStringCol > citeLevel+1) { BreakLine(aOutString, outStringCol, citeLevel); continue; } nsAutoString sub (Substring(tString, posInString, breakPt)); // skip newlines or whitespace at the end of the string PRInt32 subend = sub.Length(); while (subend > 0 && IsSpace(sub[subend-1])) --subend; sub.Left(sub, subend); aOutString += sub; outStringCol += sub.Length(); // Advance past the whitespace which caused the wrap: posInString += breakPt; while (posInString < length && IsSpace(tString[posInString])) ++posInString; // Add a newline and the quote level to the out string if (posInString < length) // not for the last line, though BreakLine(aOutString, outStringCol, citeLevel); } // end inner loop within one line of aInString #ifdef DEBUG_wrapping printf("---------\nEnd inner loop: out string is now '%s'\n-----------\n", NS_LossyConvertUCS2toASCII(aOutString).get()); #endif } // end outer loop over lines of aInString #ifdef DEBUG_wrapping printf("Final out string is now: '%s'\n", NS_LossyConvertUCS2toASCII(aOutString).get()); #endif return NS_OK; }